From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Phil Edworthy <phil.edworthy@renesas.com>
Cc: Miquel Raynal <miquel.raynal@bootlin.com>,
Viresh Kumar <vireshk@kernel.org>, Vinod Koul <vkoul@kernel.org>,
Geert Uytterhoeven <geert+renesas@glider.be>,
Magnus Damm <magnus.damm@gmail.com>,
Michael Turquette <mturquette@baylibre.com>,
Stephen Boyd <sboyd@kernel.org>, Rob Herring <robh+dt@kernel.org>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"dmaengine@vger.kernel.org" <dmaengine@vger.kernel.org>,
"linux-renesas-soc@vger.kernel.org"
<linux-renesas-soc@vger.kernel.org>,
"linux-clk@vger.kernel.org" <linux-clk@vger.kernel.org>,
Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
Milan Stevanovic <milan.stevanovic@se.com>,
Jimmy Lalande <jimmy.lalande@se.com>,
Laetitia MARIOTTINI <laetitia.mariottini@se.com>
Subject: Re: [PATCH 5/8] dma: dw: Avoid partial transfers
Date: Mon, 21 Feb 2022 18:52:55 +0200 [thread overview]
Message-ID: <YhPDZ4yb50sMdVgV@smile.fi.intel.com> (raw)
In-Reply-To: <TYYPR01MB7086F412B035A09AED2037A9F53A9@TYYPR01MB7086.jpnprd01.prod.outlook.com>
On Mon, Feb 21, 2022 at 08:14:47AM +0000, Phil Edworthy wrote:
> Hi Andy,
>
> I wrote the patch a few years ago, but didn't get the time to upstream it.
>
> I am not aware of a HW integration bug on the RZ/N1 device but can't rule it
> out. I am struggling to see what kind of HW issue this could be as, iirc,
> word accesses work fine when the size of the transfer is a multiple of the
> MEM width.
>
> I found the issue when testing DMA with the UART transferring different amounts of data.
Can you tell more about the setup and test cases?
Also, which version of the DW DMAC IP is being used in this SoC?
...
> > > + if (sconfig->dst_addr_width && sconfig->dst_addr_width <
> > data_width)
> > > + data_width = sconfig->dst_addr_width;
> >
> > But here no check that you do it for explicitly peripheral to memory, so
> > this
> > will affect memory to peripheral transfers as well.
> No, this should be ok as this change is within:
> case DMA_DEV_TO_MEM:
Ah, it's better. But still unclear to me why we need this.
P.S. Please avoid top-postings.
> > -----Original Message-----
> > From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > Sent: 20 February 2022 10:50
> > On Fri, Feb 18, 2022 at 07:12:23PM +0100, Miquel Raynal wrote:
> > > Pausing a partial transfer only causes data to be written to mem that is
> > > a multiple of the memory width setting.
> > >
> > > However, when a DMA client driver finishes DMA early, e.g. due to UART
> > > char timeout interrupt, all data read from the DEV must be written to
> > MEM.
> > >
> > > Therefore, allow the slave to limit the memory width to ensure all data
> > > read from the DEV is written to MEM when DMA is paused.
> >
> > Is this a fix?
> > What happens to the data if you don't do this?
> > As far as I understood the Synopsys DesignWare specification the DMA
> > controller
> > is capable of flushing FIFO in that case on byte-by-byte basis. Do you
> > have an
> > HW integration bug?
> >
> > TL;DR: tell us more about this.
> >
> > ...
> >
> > > + if (sconfig->dst_addr_width && sconfig->dst_addr_width <
> > data_width)
> > > + data_width = sconfig->dst_addr_width;
> >
> > But here no check that you do it for explicitly peripheral to memory, so
> > this
> > will affect memory to peripheral transfers as well.
--
With Best Regards,
Andy Shevchenko
next prev parent reply other threads:[~2022-02-21 16:53 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-18 18:12 [PATCH 0/8] RZN1 DMA support Miquel Raynal
2022-02-18 18:12 ` [PATCH 1/8] dt-bindings: dma: Introduce RZN1 dmamux bindings Miquel Raynal
2022-02-18 18:12 ` [PATCH 2/8] dt-bindings: dma: Introduce RZN1 DMA compatible Miquel Raynal
2022-02-21 2:36 ` Rob Herring
2022-02-21 14:24 ` Miquel Raynal
2022-02-18 18:12 ` [PATCH 3/8] soc: renesas: rzn1-sysc: Export function to set dmamux Miquel Raynal
2022-02-20 18:16 ` kernel test robot
2022-02-20 19:28 ` kernel test robot
2022-02-21 9:16 ` Geert Uytterhoeven
2022-02-21 15:01 ` Miquel Raynal
2022-02-25 18:32 ` Rob Herring
2022-02-27 14:09 ` Miquel Raynal
2022-02-18 18:12 ` [PATCH 4/8] dma: dmamux: Introduce RZN1 DMA router support Miquel Raynal
2022-02-20 10:56 ` Andy Shevchenko
2022-02-21 15:13 ` Miquel Raynal
2022-02-21 16:47 ` Andy Shevchenko
2022-02-20 21:22 ` kernel test robot
2022-02-21 4:15 ` kernel test robot
2022-02-18 18:12 ` [PATCH 5/8] dma: dw: Avoid partial transfers Miquel Raynal
2022-02-20 10:49 ` Andy Shevchenko
2022-02-21 8:14 ` Phil Edworthy
2022-02-21 12:59 ` Miquel Raynal
2022-02-21 16:52 ` Andy Shevchenko [this message]
2022-02-23 7:45 ` Phil Edworthy
2022-02-23 8:01 ` Phil Edworthy
2022-02-23 13:38 ` Andy Shevchenko
2022-02-18 18:12 ` [PATCH 6/8] dma: dw: Add RZN1 compatible Miquel Raynal
2022-02-18 18:12 ` [PATCH 7/8] ARM: dts: r9a06g032: Add the two DMA nodes Miquel Raynal
2022-02-18 18:12 ` [PATCH 8/8] ARM: dts: r9a06g032: Describe the DMA router Miquel Raynal
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=YhPDZ4yb50sMdVgV@smile.fi.intel.com \
--to=andriy.shevchenko@linux.intel.com \
--cc=devicetree@vger.kernel.org \
--cc=dmaengine@vger.kernel.org \
--cc=geert+renesas@glider.be \
--cc=jimmy.lalande@se.com \
--cc=laetitia.mariottini@se.com \
--cc=linux-clk@vger.kernel.org \
--cc=linux-renesas-soc@vger.kernel.org \
--cc=magnus.damm@gmail.com \
--cc=milan.stevanovic@se.com \
--cc=miquel.raynal@bootlin.com \
--cc=mturquette@baylibre.com \
--cc=phil.edworthy@renesas.com \
--cc=robh+dt@kernel.org \
--cc=sboyd@kernel.org \
--cc=thomas.petazzoni@bootlin.com \
--cc=vireshk@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