Patch "dmaengine: qcom: gpi: Set link_rx bit on GO TRE for rx operation" has been added to the 6.1-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

    dmaengine: qcom: gpi: Set link_rx bit on GO TRE for rx operation

to the 6.1-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:
     dmaengine-qcom-gpi-set-link_rx-bit-on-go-tre-for-rx-.patch
and it can be found in the queue-6.1 subdirectory.

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



commit 373ea6409d4c4f1e38d3cbacf49181d8146a753b
Author: Vijaya Krishna Nivarthi <quic_vnivarth@xxxxxxxxxxx>
Date:   Fri Dec 16 23:08:13 2022 +0530

    dmaengine: qcom: gpi: Set link_rx bit on GO TRE for rx operation
    
    [ Upstream commit 25e8ac233d24051e2c4ff64c34f60609b0988568 ]
    
    Rx operation on SPI GSI DMA is currently not working.
    As per GSI spec, link_rx bit is to be set on GO TRE on tx
    channel whenever there is going to be a DMA TRE on rx
    channel. This is currently set for duplex operation only.
    
    Set the bit for rx operation as well.
    This is part of changes required to bring up Rx.
    
    Fixes: 94b8f0e58fa1 ("dmaengine: qcom: gpi: set chain and link flag for duplex")
    Signed-off-by: Vijaya Krishna Nivarthi <quic_vnivarth@xxxxxxxxxxx>
    Reviewed-by: Douglas Anderson <dianders@xxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/1671212293-14767-1-git-send-email-quic_vnivarth@xxxxxxxxxxx
    Signed-off-by: Vinod Koul <vkoul@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/dma/qcom/gpi.c b/drivers/dma/qcom/gpi.c
index 3f56514bbef8..98d45ee4b4e3 100644
--- a/drivers/dma/qcom/gpi.c
+++ b/drivers/dma/qcom/gpi.c
@@ -1756,6 +1756,7 @@ static int gpi_create_spi_tre(struct gchan *chan, struct gpi_desc *desc,
 		tre->dword[3] = u32_encode_bits(TRE_TYPE_GO, TRE_FLAGS_TYPE);
 		if (spi->cmd == SPI_RX) {
 			tre->dword[3] |= u32_encode_bits(1, TRE_FLAGS_IEOB);
+			tre->dword[3] |= u32_encode_bits(1, TRE_FLAGS_LINK);
 		} else if (spi->cmd == SPI_TX) {
 			tre->dword[3] |= u32_encode_bits(1, TRE_FLAGS_CHAIN);
 		} else { /* SPI_DUPLEX */



[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