From: arnd@arndb.de (Arnd Bergmann)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 06/12] dma: mmp_pdma: make the controller a DMA provider
Date: Fri, 9 Aug 2013 23:08:45 +0200 [thread overview]
Message-ID: <201308092308.45922.arnd@arndb.de> (raw)
In-Reply-To: <CAMj5Bkj5PmvdOV307PSpXvTomJsad_7G91X-UFxYJ2KukcqX6g@mail.gmail.com>
On Friday 09 August 2013, zhangfei gao wrote:
> On Fri, Aug 9, 2013 at 9:10 PM, Daniel Mack <zonque@gmail.com> wrote:
> > On 07.08.2013 18:12, Arnd Bergmann wrote:
> >
> > I had another look at that and Zhangfei's case is not really applicable
> > to mine, unfortunately.
> >
> > In his case, one specific out of many channels has to be used, depending
> > on the first argument of the phandle. In my case though, the pdma
> > controller may just take any of its channels, and just assign the
> > correct DMA request to it.
This should still be fine since your driver can keep track of which
channels are currently in use. The locking can be done inside of the
dmaengine core, but you might have to retry if the channel is getting
acquired between your lookup and the lock.
> Though any physical channel is workable, the virtual channel does not.
> Each device has to set specific request line.
>
> pdma.c
> chan->drcmr = cfg->slave_id;
> nand.c
> conf.slave_id = info->drcmr_dat;
>
> The specific virtual channel can be directly specificied by request line.
> While pdma.c choose the free physical channel inside, which is
> transparent to client.
It is a bug to override the slave_id value from the dma slave driver when
using dma_request_slave_channel, and the dmaengine driver should not allow
that. The slave_config function should only be used to set the configuration
parts that the slave driver knows about, which does not include the
slave_id in this case (since there is no platform data).
Arnd
next prev parent reply other threads:[~2013-08-09 21:08 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-07 10:19 [PATCH 00/12] dma: pdma: some patches needed for PXA DT environments Daniel Mack
2013-08-07 10:19 ` [PATCH 01/12] dma: mmp_pdma: add protect when alloc/free phy channels Daniel Mack
2013-08-07 12:40 ` Ezequiel Garcia
2013-08-07 12:42 ` Daniel Mack
2013-08-08 8:35 ` Daniel Mack
2013-08-07 10:19 ` [PATCH 02/12] dma: mmp_pdma: clear DRCMR when free a phy channel Daniel Mack
2013-08-07 10:19 ` [PATCH 03/12] dma: mmp_pdma: factor out DRCMR register calculation Daniel Mack
2013-08-07 10:19 ` [PATCH 04/12] dma: mmp_pdma: fix maximum transfer length Daniel Mack
2013-08-07 10:19 ` [PATCH 05/12] dma: mmp_pdma: add filter function Daniel Mack
2013-08-07 10:19 ` [PATCH 06/12] dma: mmp_pdma: make the controller a DMA provider Daniel Mack
2013-08-07 16:12 ` Arnd Bergmann
2013-08-07 16:17 ` Daniel Mack
2013-08-07 20:17 ` Arnd Bergmann
2013-08-08 8:38 ` Daniel Mack
2013-08-09 13:10 ` Daniel Mack
2013-08-09 14:32 ` zhangfei gao
2013-08-09 21:08 ` Arnd Bergmann [this message]
2013-08-07 10:19 ` [PATCH 07/12] dma: mmp_pdma: print the number of channels at probe time Daniel Mack
2013-08-07 10:19 ` [PATCH 08/12] dma: mmp_pdma: remove duplicate assignment Daniel Mack
2013-08-07 10:19 ` [PATCH 09/12] dma: mmp_pdma: add support for byte-aligned transfers Daniel Mack
2013-08-08 9:04 ` Xiang Wang
2013-08-08 9:11 ` Daniel Mack
2013-08-16 8:05 ` Xiang Wang
2013-08-07 10:19 ` [PATCH 10/12] dma: mmp_pdma: implement DMA_PAUSE and DMA_RESUME Daniel Mack
2013-08-07 10:19 ` [PATCH 11/12] dma: mmp_pdma: add support for residue reporting Daniel Mack
2013-08-07 10:19 ` [PATCH 12/12] dma: mmp_pdma: add support for cyclic DMA descriptors Daniel Mack
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=201308092308.45922.arnd@arndb.de \
--to=arnd@arndb.de \
--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.