spi: spi-zynqmp-gqspi: transmit dummy circles by using the controller's internal...
authorQuanyang Wang <quanyang.wang@windriver.com>
Thu, 8 Apr 2021 04:02:22 +0000 (12:02 +0800)
committerMark Brown <broonie@kernel.org>
Fri, 9 Apr 2021 12:40:49 +0000 (13:40 +0100)
commit8ad07d79bd56a531990a1a3f3f1c0eb19d2de806
tree57e0b680947e148b883c5c82f1a6cbc6f5034ee8
parenta0f65be6e880a14d3445b75e7dc03d7d015fc922
spi: spi-zynqmp-gqspi: transmit dummy circles by using the controller's internal functionality

There is a data corruption issue that occurs in the reading operation
(cmd:0x6c) when transmitting common data as dummy circles.

The gqspi controller has the functionality to send dummy clock circles.
When writing data with the fields [receive, transmit, data_xfer] = [0,0,1]
to the Generic FIFO, and configuring the correct SPI mode, the controller
will transmit dummy circles.

So let's switch to hardware dummy cycles transfer to fix this issue.

Fixes: 1c26372e5aa9 ("spi: spi-zynqmp-gqspi: Update driver to use spi-mem framework")
Signed-off-by: Quanyang Wang <quanyang.wang@windriver.com>
Reviewed-by: Amit Kumar Mahapatra <amit.kumar-mahapatra@xilinx.com>
Link: https://lore.kernel.org/r/20210408040223.23134-4-quanyang.wang@windriver.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-zynqmp-gqspi.c