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>
This commit is contained in:
parent
54efdfeb49
commit
3d0b6087f3
|
@ -413,6 +413,11 @@ static void poll_transfer(struct dw_spi *dws)
|
||||||
{
|
{
|
||||||
while (dws->write(dws))
|
while (dws->write(dws))
|
||||||
dws->read(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);
|
||||||
|
|
||||||
transfer_complete(dws);
|
transfer_complete(dws);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue