From: Russell King - ARM Linux <linux@arm.linux.org.uk>
To: Daniel Walker <dwalker@fifo99.com>
Cc: David Brown <davidb@codeaurora.org>,
Ravi Kumar V <kumarrav@codeaurora.org>,
vinod.koul@intel.com, dan.j.williams@intel.com, arnd@arndb.de,
linux-arch@vger.kernel.org, bryanh@codeaurora.org,
tsoni@qualcomm.com, johlstei@qualcomm.com,
linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
Nicolas Ferre <nicolas.ferre@atmel.com>
Subject: Re: [PATCH v2 2/2] msm: DMAEngine: Add DMAEngine driver based on old MSM DMA APIs
Date: Sun, 8 Jan 2012 00:21:04 +0000 [thread overview]
Message-ID: <20120108002104.GC13181@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <1325981636.16037.6.camel@m0nster>
On Sat, Jan 07, 2012 at 04:13:56PM -0800, Daniel Walker wrote:
> On Sat, 2012-01-07 at 19:21 +0000, Russell King - ARM Linux wrote:
> > Please refer to the DMA engine documentation, found here:
> >
> > Documentation/dmaengine.txt
> >
> > section 3:
> >
> > Note:
> > Although the async_tx API specifies that completion callback
> > routines cannot submit any new operations, this is not the
> > case for slave/cyclic DMA.
> >
> > For slave DMA, the subsequent transaction may not be available
> > for submission prior to callback function being invoked, so
> > slave DMA callbacks are permitted to prepare and submit a new
> > transaction.
> >
> > For cyclic DMA, a callback function may wish to terminate the
> > DMA via dmaengine_terminate_all().
> >
> > * Therefore, it is important that DMA engine drivers drop any
> > * locks before calling the callback function which may cause a
> > * deadlock.
>
> Here's the comment from at_hdmac.c .
>
> /*
> * The API requires that no submissions are done from a
> * callback, so we don't need to drop the lock here
> */
> if (callback)
> callback(param);
>
> I don't know much about the DMA engine, but maybe there is some special
> case here that makes this ok.. (CC'ed Nicolas Ferre)
If you read the note fully, you'll notice that there's a difference
between the async_tx API and the slave/cyclic DMA API (it's covered
in the first paragraph.)
Plus that documentation was written by me, reviewed by Dan and Vinod
and accepted. You can treat it as authoritive, and take from it that
at_hdmac.c is buggy.
next prev parent reply other threads:[~2012-01-08 0:21 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-06 12:47 [PATCH v2 0/2] Add Qualcomm MSM ADM DMAEngine driver Ravi Kumar V
2012-01-06 12:47 ` Ravi Kumar V
2012-01-06 12:47 ` [PATCH v2 1/2] dmaengine: Add support for per xfer specific privatedata & box dma Ravi Kumar V
2012-01-06 12:47 ` Ravi Kumar V
2012-01-07 0:02 ` David Brown
2012-01-17 13:53 ` Vinod Koul
2012-01-20 12:33 ` Ravi Kumar V
2012-01-20 12:33 ` Ravi Kumar V
2012-01-06 12:47 ` [PATCH v2 2/2] msm: DMAEngine: Add DMAEngine driver based on old MSM DMA APIs Ravi Kumar V
2012-01-06 12:47 ` Ravi Kumar V
2012-01-07 1:59 ` Daniel Walker
2012-01-07 1:59 ` Daniel Walker
2012-01-07 18:54 ` David Brown
2012-01-07 18:54 ` David Brown
2012-01-07 19:21 ` Russell King - ARM Linux
2012-01-08 0:13 ` Daniel Walker
2012-01-08 0:21 ` Russell King - ARM Linux [this message]
2012-01-09 11:11 ` Ravi Kumar V
2012-01-17 6:26 ` Ravi Kumar V
2012-01-17 6:32 ` Ravi Kumar V
2012-01-17 14:35 ` Vinod Koul
2012-01-20 12:47 ` Ravi Kumar V
2012-01-20 12:47 ` Ravi Kumar V
2012-01-17 14:31 ` Vinod Koul
2012-01-17 14:31 ` Vinod Koul
2012-01-20 12:46 ` Ravi Kumar V
2012-01-20 12:46 ` Ravi Kumar V
2012-01-17 13:45 ` [PATCH v2 0/2] Add Qualcomm MSM ADM DMAEngine driver Vinod Koul
2012-01-20 12:30 ` Ravi Kumar V
2012-01-20 12:30 ` Ravi Kumar V
2012-01-20 13:31 ` Vinod Koul
2012-01-20 13:31 ` Vinod Koul
2012-01-23 11:11 ` Ravi Kumar V
2012-01-23 11:11 ` Ravi Kumar V
2012-01-23 13:51 ` Vinod Koul
2012-01-23 13:51 ` Vinod Koul
2012-01-25 13:11 ` Ravi Kumar V
2012-01-25 13:11 ` Ravi Kumar V
2012-01-30 7:53 ` Ravi Kumar V
2012-01-30 8:15 ` Vinod Koul
2012-01-30 8:15 ` Vinod Koul
2012-01-31 5:59 ` Ravi Kumar V
2012-01-31 6:09 ` Vinod Koul
2012-01-31 6:09 ` Vinod Koul
2012-02-01 6:16 ` Ravi Kumar V
2012-02-01 6:16 ` Ravi Kumar V
2012-02-01 8:29 ` Vinod Koul
2012-02-01 8:38 ` Ravi Kumar V
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=20120108002104.GC13181@n2100.arm.linux.org.uk \
--to=linux@arm.linux.org.uk \
--cc=arnd@arndb.de \
--cc=bryanh@codeaurora.org \
--cc=dan.j.williams@intel.com \
--cc=davidb@codeaurora.org \
--cc=dwalker@fifo99.com \
--cc=johlstei@qualcomm.com \
--cc=kumarrav@codeaurora.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nicolas.ferre@atmel.com \
--cc=tsoni@qualcomm.com \
--cc=vinod.koul@intel.com \
/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;
as well as URLs for NNTP newsgroup(s).