Patch "spi: spi-rspi: Fix PIO fallback on RZ platforms" has been added to the 5.10-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    spi: spi-rspi: Fix PIO fallback on RZ platforms

to the 5.10-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     spi-spi-rspi-fix-pio-fallback-on-rz-platforms.patch
and it can be found in the queue-5.10 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 5881656670eb52efd0d981c50779669681607922
Author: Biju Das <biju.das.jz@xxxxxxxxxxxxxx>
Date:   Thu Jul 21 15:34:49 2022 +0100

    spi: spi-rspi: Fix PIO fallback on RZ platforms
    
    [ Upstream commit b620aa3a7be346f04ae7789b165937615c6ee8d3 ]
    
    RSPI IP on RZ/{A, G2L} SoC's has the same signal for both interrupt
    and DMA transfer request. Setting DMARS register for DMA transfer
    makes the signal to work as a DMA transfer request signal and
    subsequent interrupt requests to the interrupt controller
    are masked.
    
    PIO fallback does not work as interrupt signal is disabled.
    
    This patch fixes this issue by re-enabling the interrupts by
    calling dmaengine_synchronize().
    
    Signed-off-by: Biju Das <biju.das.jz@xxxxxxxxxxxxxx>
    Reviewed-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
    Link: https://lore.kernel.org/r/20220721143449.879257-1-biju.das.jz@xxxxxxxxxxxxxx
    Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/spi/spi-rspi.c b/drivers/spi/spi-rspi.c
index ea03cc589e61..4600e3c9e49e 100644
--- a/drivers/spi/spi-rspi.c
+++ b/drivers/spi/spi-rspi.c
@@ -612,6 +612,10 @@ static int rspi_dma_transfer(struct rspi_data *rspi, struct sg_table *tx,
 					       rspi->dma_callbacked, HZ);
 	if (ret > 0 && rspi->dma_callbacked) {
 		ret = 0;
+		if (tx)
+			dmaengine_synchronize(rspi->ctlr->dma_tx);
+		if (rx)
+			dmaengine_synchronize(rspi->ctlr->dma_rx);
 	} else {
 		if (!ret) {
 			dev_err(&rspi->ctlr->dev, "DMA timeout\n");



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux