dw_spi: Fix missing final read in some polling situations
PATCH 1/1 dw_spi: Fix missing final read in some polling situations
From: Major Lee <[email protected]>
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.
Patch is against mainline (2.6.37-rc5).
Verified on SPI touch screen device.
Signed-off-by Major Lee <[email protected]>
Signed-off-by Alan Cox <alan-VuQAYsv1563Yd54FQh9/[email protected]>
---
drivers/spi/dw_spi.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-)
drivers/spi/dw_spi.c +5 -0
@@ -419,6 +419,11 @@ static void poll_transfer(struct dw_spi *dws) {while (dws->write (dws)) dws->read (dws); +/* +* There is a possibility that the last word of a transaction +* will be lost if data is not ready. Re-read to solve this issue. +*/ + dws->read (dws);dw_spi_xfer_done (dws); }
------------------------------------------------------------------------------