spi: img-spfi: finish every transfer cleanly

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>
1 file changed
tree: 6de24397074bee814f7b8ea3b3a332bf8bfc3b0c
  1. arch/
  2. block/
  3. crypto/
  4. Documentation/
  5. drivers/
  6. firmware/
  7. fs/
  8. include/
  9. init/
  10. ipc/
  11. kernel/
  12. lib/
  13. mm/
  14. net/
  15. samples/
  16. scripts/
  17. security/
  18. sound/
  19. tools/
  20. usr/
  21. virt/
  22. .gitignore
  23. .mailmap
  26. Kbuild
  27. Kconfig
  29. Makefile
  30. README
  31. README.md


This is linux kernel branch with linux-4.1.13 as a base. This branch is hosted for creating kernel patches, which are used by CreatorKit's OpenWrt.

Please refer this to know how to create kernel patch(es)