All of lore.kernel.org
 help / color / mirror / Atom feed
From: vinod.koul@intel.com (Vinod Koul)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] Documentation: dmaengine: Add a documentation for the dma controller API
Date: Tue, 19 Aug 2014 19:15:07 +0530	[thread overview]
Message-ID: <20140819134507.GJ13288@intel.com> (raw)
In-Reply-To: <20140814085753.GS30401@n2100.arm.linux.org.uk>

On Thu, Aug 14, 2014 at 09:57:53AM +0100, Russell King - ARM Linux wrote:
> On Thu, Aug 14, 2014 at 10:53:01AM +0200, Ludovic Desroches wrote:
> > On Wed, Jul 30, 2014 at 06:03:13PM +0200, Maxime Ripard wrote:
> > > The dmaengine is neither trivial nor properly documented at the moment, which
> > > means a lot of trial and error development, which is not that good for such a
> > > central piece of the system.
> > > 
> > > Attempt at making such a documentation.
> > 
> > Good idea, many questions are asked when writing a new dmaengine driver.
> > 
> > For instance I didn't find how to use the DMA_CTRL_ACK flags.
> > 
> > - How this flag has to be managed? For instance, async_tx_ack is used in
> > dmaengine driver but also in some devices.
> > - Is it mandatory to deal with this flag? It seems some dmaengine
> > drivers don't care about it.
> This is one part of the DMA engine API that even I don't understand.
> 
> It's got something to do with the async engine API, and seems to be
> something to do with whether a descriptor can have other transactions
> added to it, and whether a descriptor can be re-used (async-tx engines
> typically allocate a fixed set of descriptors and recycle them.)
Yes this is my understanding too. Async API IIUC can reuse descriptors and
if engine doesnt support this is a way to tell them please do use that.

For slave dmanegine API we need to ignore it.
> 
> I was never able to get to the bottom of what that flag meant or how
> it should be used with the DMA slave API (and I suspect everyone else
> just gave up trying to understand it as well.)

-- 
~Vinod

WARNING: multiple messages have this Message-ID (diff)
From: Vinod Koul <vinod.koul@intel.com>
To: Russell King - ARM Linux <linux@arm.linux.org.uk>
Cc: "Ludovic Desroches" <ludovic.desroches@atmel.com>,
	"Maxime Ripard" <maxime.ripard@free-electrons.com>,
	"Dan Williams" <dan.j.williams@intel.com>,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, dmaengine@vger.kernel.org,
	"Arnd Bergmann" <arnd@arndb.de>,
	"Antoine Ténart" <antoine@free-electrons.com>,
	"Thomas Petazzoni" <thomas@free-electrons.com>,
	"Alexandre Belloni" <alexandre.belloni@free-electrons.com>,
	"Boris Brezillon" <boris@free-electrons.com>,
	"Matt Porter" <matt.porter@linaro.org>,
	laurent.pinchart@ideasonboard.com,
	"Gregory Clement" <gregory.clement@free-electrons.com>,
	"Nicolas Ferre" <nicolas.ferre@atmel.com>
Subject: Re: [PATCH] Documentation: dmaengine: Add a documentation for the dma controller API
Date: Tue, 19 Aug 2014 19:15:07 +0530	[thread overview]
Message-ID: <20140819134507.GJ13288@intel.com> (raw)
In-Reply-To: <20140814085753.GS30401@n2100.arm.linux.org.uk>

On Thu, Aug 14, 2014 at 09:57:53AM +0100, Russell King - ARM Linux wrote:
> On Thu, Aug 14, 2014 at 10:53:01AM +0200, Ludovic Desroches wrote:
> > On Wed, Jul 30, 2014 at 06:03:13PM +0200, Maxime Ripard wrote:
> > > The dmaengine is neither trivial nor properly documented at the moment, which
> > > means a lot of trial and error development, which is not that good for such a
> > > central piece of the system.
> > > 
> > > Attempt at making such a documentation.
> > 
> > Good idea, many questions are asked when writing a new dmaengine driver.
> > 
> > For instance I didn't find how to use the DMA_CTRL_ACK flags.
> > 
> > - How this flag has to be managed? For instance, async_tx_ack is used in
> > dmaengine driver but also in some devices.
> > - Is it mandatory to deal with this flag? It seems some dmaengine
> > drivers don't care about it.
> This is one part of the DMA engine API that even I don't understand.
> 
> It's got something to do with the async engine API, and seems to be
> something to do with whether a descriptor can have other transactions
> added to it, and whether a descriptor can be re-used (async-tx engines
> typically allocate a fixed set of descriptors and recycle them.)
Yes this is my understanding too. Async API IIUC can reuse descriptors and
if engine doesnt support this is a way to tell them please do use that.

For slave dmanegine API we need to ignore it.
> 
> I was never able to get to the bottom of what that flag meant or how
> it should be used with the DMA slave API (and I suspect everyone else
> just gave up trying to understand it as well.)

-- 
~Vinod

  reply	other threads:[~2014-08-19 13:45 UTC|newest]

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-30 16:03 [PATCH] Documentation: dmaengine: Add a documentation for the dma controller API Maxime Ripard
2014-07-30 16:03 ` Maxime Ripard
2014-07-30 16:06 ` Vinod Koul
2014-07-30 16:06   ` Vinod Koul
2014-07-31  7:44   ` Maxime Ripard
2014-07-31  7:44     ` Maxime Ripard
2014-07-31 11:56     ` Vinod Koul
2014-07-31 11:56       ` Vinod Koul
2014-07-31 16:23       ` Maxime Ripard
2014-07-31 16:23         ` Maxime Ripard
2014-08-01 17:13         ` Vinod Koul
2014-08-01 17:13           ` Vinod Koul
2014-08-02 14:49           ` Maxime Ripard
2014-08-02 14:49             ` Maxime Ripard
2014-08-02 15:17             ` Russell King - ARM Linux
2014-08-02 15:17               ` Russell King - ARM Linux
2014-08-02 19:06               ` Maxime Ripard
2014-08-02 19:06                 ` Maxime Ripard
2014-08-05 16:25             ` Vinod Koul
2014-08-05 16:25               ` Vinod Koul
2014-07-31 12:44     ` Lars-Peter Clausen
2014-07-31 12:44       ` Lars-Peter Clausen
2014-07-31 16:13       ` Maxime Ripard
2014-07-31 16:13         ` Maxime Ripard
2014-07-31 16:54         ` Lars-Peter Clausen
2014-07-31 16:54           ` Lars-Peter Clausen
2014-07-31 17:37           ` Maxime Ripard
2014-07-31 17:37             ` Maxime Ripard
2014-08-01  8:00             ` Lars-Peter Clausen
2014-08-01  8:00               ` Lars-Peter Clausen
2014-08-01  8:57               ` Maxime Ripard
2014-08-01  8:57                 ` Maxime Ripard
2014-08-01 17:15                 ` Vinod Koul
2014-08-01 17:15                   ` Vinod Koul
2014-08-01 18:09                   ` Lars-Peter Clausen
2014-08-01 18:09                     ` Lars-Peter Clausen
2014-08-02 15:13                     ` Maxime Ripard
2014-08-02 15:13                       ` Maxime Ripard
2014-08-04  7:16                       ` Lars-Peter Clausen
2014-08-04  7:16                         ` Lars-Peter Clausen
2014-07-31 13:22     ` Russell King - ARM Linux
2014-07-31 13:22       ` Russell King - ARM Linux
2014-07-31 16:41       ` Maxime Ripard
2014-07-31 16:41         ` Maxime Ripard
2014-08-01 14:53         ` Russell King - ARM Linux
2014-08-01 14:53           ` Russell King - ARM Linux
2014-08-02 15:11           ` Maxime Ripard
2014-08-02 15:11             ` Maxime Ripard
2014-08-02 15:29             ` Russell King - ARM Linux
2014-08-02 15:29               ` Russell King - ARM Linux
2014-08-02 19:05               ` Maxime Ripard
2014-08-02 19:05                 ` Maxime Ripard
2014-08-01 17:22       ` Vinod Koul
2014-08-01 17:22         ` Vinod Koul
2014-08-05  8:16 ` Geert Uytterhoeven
2014-08-05  8:16   ` Geert Uytterhoeven
2014-08-14  8:53 ` Ludovic Desroches
2014-08-14  8:53   ` Ludovic Desroches
2014-08-14  8:57   ` Russell King - ARM Linux
2014-08-14  8:57     ` Russell King - ARM Linux
2014-08-19 13:45     ` Vinod Koul [this message]
2014-08-19 13:45       ` Vinod Koul
2014-08-19 14:44       ` Russell King - ARM Linux
2014-08-19 14:44         ` Russell King - ARM Linux
2014-08-19 14:57         ` Vinod Koul
2014-08-19 14:57           ` 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=20140819134507.GJ13288@intel.com \
    --to=vinod.koul@intel.com \
    --cc=linux-arm-kernel@lists.infradead.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.