dmaengine Archive on lore.kernel.org
 help / color / Atom feed
From: Lubomir Rintel <lkundrak@v3.sk>
To: Vinod Koul <vkoul@kernel.org>
Cc: Dan Williams <dan.j.williams@intel.com>,
	dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org,
	Lubomir Rintel <lkundrak@v3.sk>
Subject: [PATCH 4/7] dmaengine: mmp_tdma: Reset channel error on release
Date: Sun, 19 Apr 2020 18:49:09 +0200
Message-ID: <20200419164912.670973-5-lkundrak@v3.sk> (raw)
In-Reply-To: <20200419164912.670973-1-lkundrak@v3.sk>

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>
---
 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 d574641791598..0b1aa6eab1801 100644
--- a/drivers/dma/mmp_tdma.c
+++ b/drivers/dma/mmp_tdma.c
@@ -370,6 +370,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.26.0


  parent reply index

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-19 16:49 [PATCH 0/7] dmaengine: mmp_tdma: Make the driver actually work Lubomir Rintel
2020-04-19 16:49 ` [PATCH 1/7] dmaengine: mmp_tdma: Do not ignore slave config validation errors Lubomir Rintel
2020-04-23  7:13   ` Vinod Koul
2020-04-19 16:49 ` [PATCH 2/7] dmaengine: mmp_tdma: Drop "mmp_tdma: from error messages Lubomir Rintel
2020-04-23  7:13   ` Vinod Koul
2020-04-19 16:49 ` [PATCH 3/7] dmaengine: mmp_tdma: Validate the transfer direction Lubomir Rintel
2020-04-23  7:06   ` Vinod Koul
2020-04-19 16:49 ` Lubomir Rintel [this message]
2020-04-23  7:14   ` [PATCH 4/7] dmaengine: mmp_tdma: Reset channel error on release Vinod Koul
2020-04-19 16:49 ` [PATCH 5/7] dmaengine: mmp_tdma: Log an error if channel is in wrong state Lubomir Rintel
2020-04-23  7:15   ` Vinod Koul
2020-04-19 16:49 ` [PATCH 6/7] dmaengine: mmp_tdma: Fill in slave capabilities Lubomir Rintel
2020-04-23  7:16   ` Vinod Koul
2020-04-19 16:49 ` [PATCH 7/7] dmaengine: mmp_tdma: Remove the MMP_SRAM dependency Lubomir Rintel
2020-04-23  7:16   ` Vinod Koul

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200419164912.670973-5-lkundrak@v3.sk \
    --to=lkundrak@v3.sk \
    --cc=dan.j.williams@intel.com \
    --cc=dmaengine@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=vkoul@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

dmaengine Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/dmaengine/0 dmaengine/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dmaengine dmaengine/ https://lore.kernel.org/dmaengine \
		dmaengine@vger.kernel.org
	public-inbox-index dmaengine

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.dmaengine


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git