CreatorDev / linux-old

Linux kernel sources for Ci40 port
Other
1 stars 7 forks source link

spi: img-spfi: finish every transfer cleanly #5

Closed abhijit-mahajani-imgtec closed 8 years ago

abhijit-mahajani-imgtec commented 8 years ago

Before this change, the interrupt status bit that signaled the end of a tranfers was cleared in the wait_all_done function. That functionality triggered issues for DMA duplex transactions where the wait function was called twice, in both the TX and RX callbacks.

In order to fix the issue, clear all interrupt data bits at the end of a PIO transfer or at the end of both TX and RX duplex transfers, if the transfer is not a pending tranfer (command waiting for data). After that, the status register is checked for new incoming data or new data requests to be signaled. If SPFI finished cleanly, no new interrupt data bits should be set.

Change-Id: I8f46a199ad4e0a43a2a32cacaf4569cbce598f15 Signed-off-by: Ionela Voinescu ionela.voinescu@imgtec.com