Commit 3d0b6087f3f2c88caef25e1455ff8db0816d4e11
Committed by
Linus Torvalds
1 parent
54efdfeb49
Exists in
master
and in
41 other branches
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 | } |