lkml.org 
[lkml]   [2020]   [May]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 24/80] dmaengine: mmp_tdma: Reset channel error on release
    Date
    From: Lubomir Rintel <lkundrak@v3.sk>

    [ Upstream commit 0c89446379218698189a47871336cb30286a7197 ]

    When a channel configuration fails, the status of the channel is set to
    DEV_ERROR so that an attempt to submit it fails. However, this status
    sticks until the heat end of the universe, making it impossible to
    recover from the error.

    Let's reset it when the channel is released so that further use of the
    channel with correct configuration is not impacted.

    Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
    Link: https://lore.kernel.org/r/20200419164912.670973-5-lkundrak@v3.sk
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/dma/mmp_tdma.c | 2 ++
    1 file changed, 2 insertions(+)

    diff --git a/drivers/dma/mmp_tdma.c b/drivers/dma/mmp_tdma.c
    index 13c68b6434ce2..15b4a44e60069 100644
    --- a/drivers/dma/mmp_tdma.c
    +++ b/drivers/dma/mmp_tdma.c
    @@ -362,6 +362,8 @@ static void mmp_tdma_free_descriptor(struct mmp_tdma_chan *tdmac)
    gen_pool_free(gpool, (unsigned long)tdmac->desc_arr,
    size);
    tdmac->desc_arr = NULL;
    + if (tdmac->status == DMA_ERROR)
    + tdmac->status = DMA_COMPLETE;

    return;
    }
    --
    2.20.1


    \
     
     \ /
      Last update: 2020-05-18 19:52    [W:4.073 / U:0.128 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site