From: Paul Cercueil <paul@crapouillou.net>
To: Vinod Koul <vkoul@kernel.org>, Rob Herring <robh+dt@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Ralf Baechle <ralf@linux-mips.org>,
Paul Burton <paul.burton@mips.com>,
James Hogan <jhogan@kernel.org>,
Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
Cc: Paul Cercueil <paul@crapouillou.net>,
dmaengine@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-mips@linux-mips.org,
Daniel Silsby <dansilsby@gmail.com>
Subject: [PATCH v4 14/18] dmaengine: dma-jz4780: Further residue status fix
Date: Tue, 7 Aug 2018 13:42:14 +0200 [thread overview]
Message-ID: <20180807114218.20091-15-paul@crapouillou.net> (raw)
In-Reply-To: <20180807114218.20091-1-paul@crapouillou.net>
From: Daniel Silsby <dansilsby@gmail.com>
Func jz4780_dma_desc_residue() expects the index to the next hw
descriptor as its last parameter. Caller func jz4780_dma_tx_status(),
however, applied modulus before passing it. When the current hw
descriptor was last in the list, the index passed became zero.
The resulting excess of reported residue especially caused problems
with cyclic DMA transfer clients, i.e. ALSA AIC audio output, which
rely on this for determining current DMA location within buffer.
Combined with the recent and related residue-reporting fixes, spurious
ALSA audio underruns on jz4770 hardware are now fixed.
Signed-off-by: Daniel Silsby <dansilsby@gmail.com>
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Tested-by: Mathieu Malaterre <malat@debian.org>
---
drivers/dma/dma-jz4780.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
v2: No change
v3: No change
v4: Add my Signed-off-by
diff --git a/drivers/dma/dma-jz4780.c b/drivers/dma/dma-jz4780.c
index d03711834a44..351dc8268515 100644
--- a/drivers/dma/dma-jz4780.c
+++ b/drivers/dma/dma-jz4780.c
@@ -653,7 +653,7 @@ static enum dma_status jz4780_dma_tx_status(struct dma_chan *chan,
to_jz4780_dma_desc(vdesc), 0);
} else if (cookie == jzchan->desc->vdesc.tx.cookie) {
txstate->residue = jz4780_dma_desc_residue(jzchan, jzchan->desc,
- (jzchan->curr_hwdesc + 1) % jzchan->desc->count);
+ jzchan->curr_hwdesc + 1);
} else
txstate->residue = 0;
--
2.11.0
next prev parent reply other threads:[~2018-08-07 11:42 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-07 11:42 [PATCH v4 00/18] JZ47xx DMA patchset v4 Paul Cercueil
2018-08-07 11:42 ` [PATCH v4 01/18] doc: dt-bindings: jz4780-dma: Update bindings to reflect driver changes Paul Cercueil
2018-08-07 15:01 ` Rob Herring
2018-08-07 11:42 ` [PATCH v4 02/18] dmaengine: dma-jz4780: Return error if not probed from DT Paul Cercueil
2018-08-07 11:42 ` [PATCH v4 03/18] dmaengine: dma-jz4780: Avoid hardcoding number of channels Paul Cercueil
2018-08-07 11:42 ` [PATCH v4 04/18] dmaengine: dma-jz4780: Separate chan/ctrl registers Paul Cercueil
2018-08-07 11:42 ` [PATCH v4 05/18] dmaengine: dma-jz4780: Use 4-word descriptors Paul Cercueil
2018-08-07 11:42 ` [PATCH v4 06/18] dmaengine: dma-jz4780: Don't depend on MACH_JZ4780 Paul Cercueil
2018-08-07 11:42 ` [PATCH v4 07/18] dmaengine: dma-jz4780: Add support for the JZ4770 SoC Paul Cercueil
2018-08-07 11:42 ` [PATCH v4 08/18] dmaengine: dma-jz4780: Add support for the JZ4740 SoC Paul Cercueil
2018-08-07 11:42 ` [PATCH v4 09/18] dmaengine: dma-jz4780: Add support for the JZ4725B SoC Paul Cercueil
2018-08-07 11:42 ` [PATCH v4 10/18] dmaengine: dma-jz4780: Enable Fast DMA to the AIC Paul Cercueil
2018-08-07 11:42 ` [PATCH v4 11/18] dmaengine: dma-jz4780: Add missing residue DTC mask Paul Cercueil
2018-08-27 5:00 ` Vinod
2018-08-07 11:42 ` [PATCH v4 12/18] dmaengine: dma-jz4780: Simplify jz4780_dma_desc_residue() Paul Cercueil
2018-08-07 11:42 ` [PATCH v4 13/18] dmaengine: dma-jz4780: Set DTCn register explicitly Paul Cercueil
2018-08-07 11:42 ` Paul Cercueil [this message]
2018-08-07 11:42 ` [PATCH v4 15/18] dmaengine: dma-jz4780: Use dma_set_residue() Paul Cercueil
2018-08-07 11:42 ` [PATCH v4 16/18] MIPS: JZ4780: DTS: Update DMA node to match driver changes Paul Cercueil
2018-08-07 11:42 ` [PATCH v4 17/18] MIPS: JZ4770: DTS: Add DMA nodes Paul Cercueil
2018-08-07 11:42 ` [PATCH v4 18/18] MIPS: JZ4740: " Paul Cercueil
2018-08-27 5:14 ` [PATCH v4 00/18] JZ47xx DMA patchset v4 Vinod
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=20180807114218.20091-15-paul@crapouillou.net \
--to=paul@crapouillou.net \
--cc=Zubair.Kakakhel@imgtec.com \
--cc=dansilsby@gmail.com \
--cc=devicetree@vger.kernel.org \
--cc=dmaengine@vger.kernel.org \
--cc=jhogan@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@linux-mips.org \
--cc=mark.rutland@arm.com \
--cc=paul.burton@mips.com \
--cc=ralf@linux-mips.org \
--cc=robh+dt@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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox