dw_spi: Fix missing final read in some polling situations

There is a possibility that the last word of a transaction will be lost
if data is not ready. Re-read in poll_transfer() to solve this issue
when poll_mode is enabled.

Verified on SPI touch screen device.

Signed-off-by: Major Lee <major_lee@wistron.com>
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by Major Lee and committed by Linus Torvalds 3d0b6087 54efdfeb

+5
+5
drivers/spi/dw_spi.c
··· 413 { 414 while (dws->write(dws)) 415 dws->read(dws); 416 417 transfer_complete(dws); 418 }
··· 413 { 414 while (dws->write(dws)) 415 dws->read(dws); 416 + /* 417 + * There is a possibility that the last word of a transaction 418 + * will be lost if data is not ready. Re-read to solve this issue. 419 + */ 420 + dws->read(dws); 421 422 transfer_complete(dws); 423 }