Commit 3d0b6087f3f2c88caef25e1455ff8db0816d4e11

Authored by Major Lee
Committed by Linus Torvalds
1 parent 54efdfeb49

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>

Showing 1 changed file with 5 additions and 0 deletions Side-by-side Diff

drivers/spi/dw_spi.c
... ... @@ -413,6 +413,11 @@
413 413 {
414 414 while (dws->write(dws))
415 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);
416 421  
417 422 transfer_complete(dws);
418 423 }