lkml.org 
[lkml]   [2020]   [Nov]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.9 197/391] spi: sprd: Release DMA channel also on probe deferral
    Date
    From: Krzysztof Kozlowski <krzk@kernel.org>

    commit 687a2e76186dcfa42f22c14b655c3fb159839e79 upstream.

    If dma_request_chan() for TX channel fails with EPROBE_DEFER, the RX
    channel would not be released and on next re-probe it would be requested
    second time.

    Fixes: 386119bc7be9 ("spi: sprd: spi: sprd: Add DMA mode support")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
    Acked-by: Chunyan Zhang <zhang.lyra@gmail.com>
    Link: https://lore.kernel.org/r/20200901152713.18629-1-krzk@kernel.org
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/spi/spi-sprd.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/drivers/spi/spi-sprd.c
    +++ b/drivers/spi/spi-sprd.c
    @@ -563,11 +563,11 @@ static int sprd_spi_dma_request(struct s

    ss->dma.dma_chan[SPRD_SPI_TX] = dma_request_chan(ss->dev, "tx_chn");
    if (IS_ERR_OR_NULL(ss->dma.dma_chan[SPRD_SPI_TX])) {
    + dma_release_channel(ss->dma.dma_chan[SPRD_SPI_RX]);
    if (PTR_ERR(ss->dma.dma_chan[SPRD_SPI_TX]) == -EPROBE_DEFER)
    return PTR_ERR(ss->dma.dma_chan[SPRD_SPI_TX]);

    dev_err(ss->dev, "request TX DMA channel failed!\n");
    - dma_release_channel(ss->dma.dma_chan[SPRD_SPI_RX]);
    return PTR_ERR(ss->dma.dma_chan[SPRD_SPI_TX]);
    }


    \
     
     \ /
      Last update: 2020-11-03 21:46    [W:4.044 / U:0.000 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site