From: Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>
To: Shawn Guo <shawn.guo-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
Cc: Guo Shawn-R65073 <r65073-KZfg59tc24xl57MIdRCFDg@public.gmane.org>,
devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org,
Tabi Timur-B04825
<B04825-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
Subject: Re: Is there a binding for IORESOURCE_DMA population?
Date: Sat, 16 Jul 2011 14:09:46 +0200 [thread overview]
Message-ID: <201107161409.46719.arnd@arndb.de> (raw)
In-Reply-To: <20110716075748.GI1840-+NayF8gZjK2ctlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
On Saturday 16 July 2011 09:57:49 Shawn Guo wrote:
> If I understand this correctly, this is something I demonstrated in
> the initial message. I do not think we always have individual
> device_node for each channel (struct dma_chan). The most common
> situation is all channels are backed by one device_node (dmaengine).
>
> As I stated in the initial message, (for i.mx sdma example) the
> problem is 'struct dma_chan' stands for a physical dma channel, while
> all platform_device has is a virtual channel number (known as sdma
> event) assigned by hardware. This virtual channel can only be
> dynamically mapped to a physical one by sdma driver. That said there
> is no way for us to specify a physical channel in device tree. We can
> only specify the virtual one there. (I think this is kinda common,
> and sdma is just one example.)
My assumption was that you would create a device_node for each channel
in the device tree source, but not necessarily have a platform_device
for each of them.
> i.mx sdma has 32 physically channels and 48 virtual ones (events).
> If we go the way you are suggesting, we will have to have 48 nodes
> under sdma node just for giving event number, and then have
> dma-channels property of device specifying the phanldles to these
> event nodes belonging to it.
>
> So we get something like below, which looks silly to me.
>
> sdma@83fb0000 {
> #address-cells = <1>;
> #size-cells = <0>;
> compatible = "fsl,imx51-sdma", "fsl,imx35-sdma";
> reg = <0x83fb0000 0x4000>;
> interrupts = <6>;
> fsl,sdma-ram-script-name = "sdma-imx51.bin";
>
> dma00: dma-channel@0 {
> compatible = "fsl,sdma-channel";
> reg = <0>;
> };
>
> dma01: dma-channel@1 {
> compatible = "fsl,sdma-channel";
> reg = <1>;
> };
>
> ......
>
> dma47: dma-channel@47 {
> compatible = "fsl,sdma-channel";
> reg = <47>;
> };
> };
>
> ssi@83fcc000 { /* SSI1 */
> compatible = "fsl,imx51-ssi", "fsl,imx1-ssi";
> reg = <0x83fcc000 0x4000>;
> interrupts = <29>;
> fsl,ssi-uses-dma;
> dma-channels = <&dma00, &dma01>;
> };
>
> Did I state the problem clear? Or am I missing anything?
Right, this is what I had in mind. I think this is reasonable.
If you need so many channels, the device tree will be huge already,
so this doesn't add that much bloat either.
Another option would be to add a 'dma-parent' property akin to the
interrupt-parent property and then just refer to the channel
numbers within the parent dma controller.
I guess you would prefer something like that in order to keep the
device tree source more compact, right?
The only disadvantage I can see there is slighty more complex code
that is needed to find the appropriate channel, but certainly not
out of the ordinary.
Arnd
next prev parent reply other threads:[~2011-07-16 12:09 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-07-15 16:32 Is there a binding for IORESOURCE_DMA population? Shawn Guo
[not found] ` <20110715163254.GG1840-+NayF8gZjK2ctlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2011-07-15 16:45 ` Tabi Timur-B04825
[not found] ` <CAOZdJXVeM4Axf=TC4qKNHyqb=iDoDceGr-xjLNpD20WfL2h46Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-07-15 18:11 ` Arnd Bergmann
[not found] ` <201107152011.41546.arnd-r2nGTMty4D4@public.gmane.org>
2011-07-15 23:49 ` Grant Likely
2011-07-16 7:57 ` Shawn Guo
[not found] ` <20110716075748.GI1840-+NayF8gZjK2ctlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2011-07-16 12:09 ` Arnd Bergmann [this message]
[not found] ` <201107161409.46719.arnd-r2nGTMty4D4@public.gmane.org>
2011-07-16 12:55 ` Tabi Timur-B04825
[not found] ` <4E218A4C.8000603-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2011-07-16 14:40 ` Shawn Guo
[not found] ` <20110716144026.GB2374-+NayF8gZjK2ctlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2011-07-16 14:38 ` Tabi Timur-B04825
[not found] ` <4E21A252.4060606-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2011-07-17 7:18 ` Shawn Guo
2011-07-16 19:16 ` Rob Herring
[not found] ` <4E21E398.4060808-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2011-07-17 7:30 ` Shawn Guo
2011-07-16 20:18 ` Tabi Timur-B04825
[not found] ` <4E21F22C.3020804-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2011-07-16 20:44 ` Arnd Bergmann
[not found] ` <201107162244.47740.arnd-r2nGTMty4D4@public.gmane.org>
2011-07-16 20:54 ` Tabi Timur-B04825
[not found] ` <4E21FA7C.2000602-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2011-07-17 7:38 ` Shawn Guo
2011-07-16 14:34 ` Shawn Guo
[not found] ` <20110716143456.GA2374-+NayF8gZjK2ctlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2011-07-16 14:43 ` Tabi Timur-B04825
[not found] ` <4E21A392.3010608-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2011-07-17 7:41 ` Shawn Guo
[not found] ` <20110717074159.GF2374-+NayF8gZjK2ctlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2011-07-17 13:41 ` Tabi Timur-B04825
[not found] ` <4E22E66D.5010809-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2011-07-17 14:28 ` Shawn Guo
[not found] ` <20110717142838.GI2374-+NayF8gZjK2ctlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2011-07-17 14:57 ` Tabi Timur-B04825
[not found] ` <4E22F867.5090707-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2011-07-17 15:47 ` Shawn Guo
[not found] ` <20110717154730.GK2374-+NayF8gZjK2ctlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2011-07-17 16:04 ` Tabi Timur-B04825
[not found] ` <4E230802.9030805-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2011-07-19 15:16 ` Arnd Bergmann
[not found] ` <201107191716.56203.arnd-r2nGTMty4D4@public.gmane.org>
2011-07-20 2:53 ` Shawn Guo
2011-07-17 15:04 ` Arnd Bergmann
[not found] ` <201107171704.17779.arnd-r2nGTMty4D4@public.gmane.org>
2011-07-17 15:41 ` Shawn Guo
2011-07-18 4:39 ` Grant Likely
[not found] ` <20110718043940.GD15023-e0URQFbLeQY2iJbIjFUEsiwD8/FfD2ys@public.gmane.org>
2011-07-18 11:19 ` Tabi Timur-B04825
2011-07-16 15:19 ` Arnd Bergmann
[not found] ` <201107161719.32543.arnd-r2nGTMty4D4@public.gmane.org>
2011-07-16 15:27 ` Tabi Timur-B04825
[not found] ` <4E21ADC5.5010205-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2011-07-16 17:33 ` Arnd Bergmann
2011-07-17 8:02 ` Shawn Guo
2011-07-17 7:59 ` Shawn Guo
2011-07-18 4:34 ` Grant Likely
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=201107161409.46719.arnd@arndb.de \
--to=arnd-r2ngtmty4d4@public.gmane.org \
--cc=B04825-KZfg59tc24xl57MIdRCFDg@public.gmane.org \
--cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
--cc=r65073-KZfg59tc24xl57MIdRCFDg@public.gmane.org \
--cc=shawn.guo-KZfg59tc24xl57MIdRCFDg@public.gmane.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.