All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jon Hunter <jon-hunter@ti.com>
To: Vinod Koul <vinod.koul@linux.intel.com>
Cc: Stephen Warren <swarren@nvidia.com>,
	Benoit Cousson <b-cousson@ti.com>, Arnd Bergmann <arnd@arndb.de>,
	Stephen Warren <swarren@wwwdotorg.org>,
	device-tree <devicetree-discuss@lists.ozlabs.org>,
	Nicolas Ferre <nicolas.ferre@atmel.com>,
	Rob Herring <rob.herring@calxeda.com>,
	Grant Likely <grant.likely@secretlab.ca>,
	Jassi Brar <jaswinder.singh@linaro.org>,
	Russell King - ARM Linux <linux@arm.linux.org.uk>,
	dan.j.williams@intel.com, linux-omap <linux-omap@vger.kernel.org>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH V3 1/2] of: Add generic device tree DMA helpers
Date: Thu, 26 Jul 2012 12:43:31 -0500	[thread overview]
Message-ID: <501181C3.1020301@ti.com> (raw)
In-Reply-To: <1343284960.1726.8978.camel@vkoul-udesk3>


On 07/26/2012 01:42 AM, Vinod Koul wrote:
> On Tue, 2012-07-24 at 14:07 -0500, Jon Hunter wrote:
>> Hi Vinod,
>>>>>> Required property:
>>>>>>     dmas: list of one or more dma specifiers, each consisting of
>>>>>>      - phandle pointing to dma controller node
>>>>>>      - flags word, a bit map that can hold these flags
>>>>>>        * 0x00000001 channel can be used for transfer from device
>>>>>>        * 0x00000002 channel can be user for transfer to device
>>>>>
>>>>> Is this for identifying which channel is for TX and RX? If not I am not
>>>>> sure I understood it well
>>>>
>>>> Yes, but we can potentially add more flags here.
>>>>
>>>> The argument we had when coming up with this was roughly:
>>>>
>>>> * we need to identify which specifiers are referring to the same
>>>>   conceptual channel and can be used as alternatives
>>>> * this could be done just using the dma-names property, but making
>>>>   dma-names mandatory adds complexity for everyone.
>>>> * Most devices have just one or two channels, and if they have two,
>>>>   there is usually one input and one output.
>>>>
>>>> => if the common dmaengine code can find out whether a channel is
>>>>   input or output without looking at the dmac driver specific configuration,
>>>>   we don't need to add dma-names in most cases, but just let the client
>>>>   driver ask for "give me a channel with these flags".
>>> No we don't export the direction of the channel and usually channel can
>>> be configured either way.
>>
>> So yes I can see that a channel itself could be configured to support a
>> given direction, but when we ask for a channel via dma_request_channel()
>> we are going to get a channel that matches the criteria we pass using
>> the filter parameter. So here the thinking was that "flags" is a filter
>> parameter that the user could specify and one example being direction
>> but it could be something else too.
> Yes that can be done, but I am leaning towards clients not have to do
> anything :) DMAEngine needs to know mapping and when
> dma_request_channel() is called it _always_ gives you the right channel.

Ok, so are you proposing to remove the filter function and parameter
from the dma_request_channel()?

> Maybe for slave case we need to create dma_request_slave_channel() which
> has additional arguments for dmaengine to do the filtering.

Ok, so what is not clear to me is if you envision that
dma_request_slave_channel() is using a mapping table based look-up or
the DT scheme or both.

As Arnd highlighted the DT convention is to store the DMA info in each
of the device nodes and not store in a global mapping table which
conflicts with having a mapping table approach for non-DT usage. So I am
still not sure how you envision this function working for both the
non-DT and DT use-cases.

Jon

WARNING: multiple messages have this Message-ID (diff)
From: jon-hunter@ti.com (Jon Hunter)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH V3 1/2] of: Add generic device tree DMA helpers
Date: Thu, 26 Jul 2012 12:43:31 -0500	[thread overview]
Message-ID: <501181C3.1020301@ti.com> (raw)
In-Reply-To: <1343284960.1726.8978.camel@vkoul-udesk3>


On 07/26/2012 01:42 AM, Vinod Koul wrote:
> On Tue, 2012-07-24 at 14:07 -0500, Jon Hunter wrote:
>> Hi Vinod,
>>>>>> Required property:
>>>>>>     dmas: list of one or more dma specifiers, each consisting of
>>>>>>      - phandle pointing to dma controller node
>>>>>>      - flags word, a bit map that can hold these flags
>>>>>>        * 0x00000001 channel can be used for transfer from device
>>>>>>        * 0x00000002 channel can be user for transfer to device
>>>>>
>>>>> Is this for identifying which channel is for TX and RX? If not I am not
>>>>> sure I understood it well
>>>>
>>>> Yes, but we can potentially add more flags here.
>>>>
>>>> The argument we had when coming up with this was roughly:
>>>>
>>>> * we need to identify which specifiers are referring to the same
>>>>   conceptual channel and can be used as alternatives
>>>> * this could be done just using the dma-names property, but making
>>>>   dma-names mandatory adds complexity for everyone.
>>>> * Most devices have just one or two channels, and if they have two,
>>>>   there is usually one input and one output.
>>>>
>>>> => if the common dmaengine code can find out whether a channel is
>>>>   input or output without looking at the dmac driver specific configuration,
>>>>   we don't need to add dma-names in most cases, but just let the client
>>>>   driver ask for "give me a channel with these flags".
>>> No we don't export the direction of the channel and usually channel can
>>> be configured either way.
>>
>> So yes I can see that a channel itself could be configured to support a
>> given direction, but when we ask for a channel via dma_request_channel()
>> we are going to get a channel that matches the criteria we pass using
>> the filter parameter. So here the thinking was that "flags" is a filter
>> parameter that the user could specify and one example being direction
>> but it could be something else too.
> Yes that can be done, but I am leaning towards clients not have to do
> anything :) DMAEngine needs to know mapping and when
> dma_request_channel() is called it _always_ gives you the right channel.

Ok, so are you proposing to remove the filter function and parameter
from the dma_request_channel()?

> Maybe for slave case we need to create dma_request_slave_channel() which
> has additional arguments for dmaengine to do the filtering.

Ok, so what is not clear to me is if you envision that
dma_request_slave_channel() is using a mapping table based look-up or
the DT scheme or both.

As Arnd highlighted the DT convention is to store the DMA info in each
of the device nodes and not store in a global mapping table which
conflicts with having a mapping table approach for non-DT usage. So I am
still not sure how you envision this function working for both the
non-DT and DT use-cases.

Jon

  parent reply	other threads:[~2012-07-26 17:43 UTC|newest]

Thread overview: 258+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-30 21:17 [PATCH V3 1/2] of: Add generic device tree DMA helpers Jon Hunter
2012-04-30 21:17 ` Jon Hunter
2012-05-03 22:26 ` Stephen Warren
2012-05-03 22:26   ` Stephen Warren
     [not found]   ` <4FA30604.1030401-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-05-03 23:25     ` Russell King - ARM Linux
2012-05-03 23:25       ` Russell King - ARM Linux
2012-05-04 12:39     ` Arnd Bergmann
2012-05-04 12:39       ` Arnd Bergmann
2012-05-04 15:06   ` Jon Hunter
2012-05-04 15:06     ` Jon Hunter
     [not found]     ` <4FA3F08D.7030603-l0cyMroinI0@public.gmane.org>
2012-05-04 15:14       ` Russell King - ARM Linux
2012-05-04 15:14         ` Russell King - ARM Linux
2012-05-04 18:21     ` Stephen Warren
2012-05-04 18:21       ` Stephen Warren
2012-05-04 19:19       ` Jon Hunter
2012-05-04 19:19         ` Jon Hunter
2012-05-04  6:56 ` Jassi Brar
2012-05-04  6:56   ` Jassi Brar
2012-05-04 15:17   ` Jon Hunter
2012-05-04 15:17     ` Jon Hunter
2012-05-04 19:01     ` Jassi Brar
2012-05-04 19:01       ` Jassi Brar
2012-05-04 19:23       ` Arnd Bergmann
2012-05-04 19:23         ` Arnd Bergmann
2012-05-05 17:10         ` Jassi Brar
2012-05-05 17:10           ` Jassi Brar
2012-05-07 15:53           ` Stephen Warren
2012-05-07 15:53             ` Stephen Warren
2012-05-07 17:19             ` Jassi Brar
2012-05-07 17:19               ` Jassi Brar
2012-05-08 16:35               ` Stephen Warren
2012-05-08 16:35                 ` Stephen Warren
2012-05-08 19:09                 ` Jassi Brar
2012-05-08 19:09                   ` Jassi Brar
2012-05-09 12:30                   ` Arnd Bergmann
2012-05-09 12:30                     ` Arnd Bergmann
2012-05-09 19:10                   ` Stephen Warren
2012-05-09 19:10                     ` Stephen Warren
2012-05-09 21:38                     ` Jassi Brar
2012-05-09 21:38                       ` Jassi Brar
2012-05-10 17:00                       ` Stephen Warren
2012-05-10 17:00                         ` Stephen Warren
2012-05-10 19:59                         ` Jassi Brar
2012-05-10 19:59                           ` Jassi Brar
2012-05-11 19:28                           ` Stephen Warren
2012-05-11 19:28                             ` Stephen Warren
2012-05-11 21:06                             ` Jassi Brar
2012-05-11 21:06                               ` Jassi Brar
2012-05-11 23:51                               ` Stephen Warren
2012-05-11 23:51                                 ` Stephen Warren
2012-05-12 13:40                                 ` Jassi Brar
2012-05-12 13:40                                   ` Jassi Brar
2012-05-16  1:05                                   ` Jon Hunter
2012-05-16  1:05                                     ` Jon Hunter
2012-05-17 13:18                         ` Russell King - ARM Linux
2012-05-17 13:18                           ` Russell King - ARM Linux
2012-05-07 17:21             ` Arnd Bergmann
2012-05-07 17:21               ` Arnd Bergmann
2012-05-16  1:11       ` Jon Hunter
2012-05-16  1:11         ` Jon Hunter
2012-05-16 12:37         ` Jassi Brar
2012-05-16 12:37           ` Jassi Brar
2012-05-16 13:15           ` Jon Hunter
2012-05-16 13:15             ` Jon Hunter
2012-05-16 15:44             ` Stephen Warren
2012-05-16 15:44               ` Stephen Warren
2012-05-16 16:04               ` Jon Hunter
2012-05-16 16:04                 ` Jon Hunter
2012-05-16 16:01             ` Jon Hunter
2012-05-16 16:01               ` Jon Hunter
2012-05-16 16:15               ` Stephen Warren
2012-05-16 16:15                 ` Stephen Warren
2012-05-16 16:22                 ` Jassi Brar
2012-05-16 16:22                   ` Jassi Brar
2012-05-16 17:09                   ` Jon Hunter
2012-05-16 17:09                     ` Jon Hunter
2012-05-16 19:42                   ` Arnd Bergmann
2012-05-16 19:42                     ` Arnd Bergmann
2012-05-16 21:16                     ` Jassi Brar
2012-05-16 21:16                       ` Jassi Brar
2012-05-17 19:32                       ` Stephen Warren
2012-05-17 19:32                         ` Stephen Warren
2012-05-18 17:12                         ` Jassi Brar
2012-05-18 17:12                           ` Jassi Brar
2012-05-18 21:04                       ` Arnd Bergmann
2012-05-18 21:04                         ` Arnd Bergmann
2012-05-16 23:59                     ` Stephen Warren
2012-05-16 23:59                       ` Stephen Warren
2012-05-17  4:05                       ` Jassi Brar
2012-05-17  4:05                         ` Jassi Brar
2012-05-18 20:49                       ` Arnd Bergmann
2012-05-18 20:49                         ` Arnd Bergmann
2012-05-18 21:07                         ` Stephen Warren
2012-05-18 21:07                           ` Stephen Warren
2012-05-18 21:43                           ` Arnd Bergmann
2012-05-18 21:43                             ` Arnd Bergmann
2012-05-18 22:20                             ` Stephen Warren
2012-05-18 22:20                               ` Stephen Warren
2012-05-19  8:44                               ` Arnd Bergmann
2012-05-19  8:44                                 ` Arnd Bergmann
2012-05-21 17:33                                 ` Stephen Warren
2012-05-21 17:33                                   ` Stephen Warren
2012-05-21 18:18                                   ` Arnd Bergmann
2012-05-21 18:18                                     ` Arnd Bergmann
2012-05-21 20:32                                     ` Stephen Warren
2012-05-21 20:32                                       ` Stephen Warren
2012-06-08 19:04                                       ` Jon Hunter
2012-06-08 19:04                                         ` Jon Hunter
2012-06-09  0:04                                         ` Arnd Bergmann
2012-06-09  0:04                                           ` Arnd Bergmann
2012-06-13 22:32                                           ` Jon Hunter
2012-06-13 22:32                                             ` Jon Hunter
2012-06-14  4:45                                             ` Jassi Brar
2012-06-14  4:45                                               ` Jassi Brar
2012-06-14 11:48                                             ` Arnd Bergmann
2012-06-14 11:48                                               ` Arnd Bergmann
2012-06-14 15:39                                               ` Jon Hunter
2012-06-14 15:39                                                 ` Jon Hunter
2012-06-15  8:40                                                 ` Arnd Bergmann
2012-06-15  8:40                                                   ` Arnd Bergmann
2012-06-22 22:52                                               ` Jon Hunter
2012-06-22 22:52                                                 ` Jon Hunter
     [not found]                                                 ` <4FE4F718.3080204-l0cyMroinI0@public.gmane.org>
2012-06-22 23:12                                                   ` Russell King - ARM Linux
2012-06-22 23:12                                                     ` Russell King - ARM Linux
2012-06-25 16:51                                                     ` Jon Hunter
2012-06-25 16:51                                                       ` Jon Hunter
2012-06-25 18:04                                                       ` Vinod Koul
2012-06-25 18:04                                                         ` Vinod Koul
2012-06-25 20:30                                                         ` Arnd Bergmann
2012-06-25 20:30                                                           ` Arnd Bergmann
2012-06-26  9:40                                                           ` Vinod Koul
2012-06-26  9:40                                                             ` Vinod Koul
2012-06-26 14:59                                                             ` Arnd Bergmann
2012-06-26 14:59                                                               ` Arnd Bergmann
2012-06-26 17:50                                                               ` Vinod Koul
2012-06-26 17:50                                                                 ` Vinod Koul
2012-06-26 20:27                                                                 ` Arnd Bergmann
2012-06-26 20:27                                                                   ` Arnd Bergmann
2012-06-27 13:45                                                                   ` Vinod Koul
2012-06-27 13:45                                                                     ` Vinod Koul
2012-06-27 15:20                                                                     ` Arnd Bergmann
2012-06-27 15:20                                                                       ` Arnd Bergmann
2012-07-13  6:45                                                                       ` Vinod Koul
2012-07-13  6:45                                                                         ` Vinod Koul
2012-07-13 21:52                                                                         ` Guennadi Liakhovetski
2012-07-13 21:52                                                                           ` Guennadi Liakhovetski
2012-07-17 19:24                                                                         ` Arnd Bergmann
2012-07-17 19:24                                                                           ` Arnd Bergmann
2012-07-20  4:00                                                                           ` Vinod Koul
2012-07-20  4:00                                                                             ` Vinod Koul
2012-07-20  8:39                                                                             ` Arnd Bergmann
2012-07-20  8:39                                                                               ` Arnd Bergmann
2012-07-20  9:37                                                                               ` Vinod Koul
2012-07-20  9:37                                                                                 ` Vinod Koul
2012-07-24 19:07                                                                                 ` Jon Hunter
2012-07-24 19:07                                                                                   ` Jon Hunter
2012-07-24 19:27                                                                                   ` Arnd Bergmann
2012-07-24 19:27                                                                                     ` Arnd Bergmann
2012-07-26  6:42                                                                                   ` Vinod Koul
2012-07-26  6:42                                                                                     ` Vinod Koul
2012-07-26  7:14                                                                                     ` Arnd Bergmann
2012-07-26  7:14                                                                                       ` Arnd Bergmann
2012-07-26 11:28                                                                                       ` Vinod Koul
2012-07-26 11:28                                                                                         ` Vinod Koul
2012-07-26 15:53                                                                                         ` Jon Hunter
2012-07-26 15:53                                                                                           ` Jon Hunter
     [not found]                                                                                           ` <5011680A.6040400-l0cyMroinI0@public.gmane.org>
2012-07-31 11:06                                                                                             ` Vinod Koul
2012-07-31 11:06                                                                                               ` Vinod Koul
2012-07-26 17:43                                                                                     ` Jon Hunter [this message]
2012-07-26 17:43                                                                                       ` Jon Hunter
2012-07-31 11:12                                                                                       ` Vinod Koul
2012-07-31 11:12                                                                                         ` Vinod Koul
2012-08-01 20:43                                                                                         ` Jon Hunter
2012-08-01 20:43                                                                                           ` Jon Hunter
2012-08-03  9:55                                                                                           ` Vinod Koul
2012-08-03  9:55                                                                                             ` Vinod Koul
2012-07-20  9:08                                                                             ` Robert Jarzmik
2012-07-20  9:08                                                                               ` Robert Jarzmik
2012-07-20  9:41                                                                               ` Vinod Koul
2012-07-20  9:41                                                                                 ` Vinod Koul
2012-07-26  4:56                                                                             ` zhangfei gao
2012-07-26  4:56                                                                               ` zhangfei gao
2012-07-23 21:29                                                                           ` Stephen Warren
2012-07-23 21:29                                                                             ` Stephen Warren
2012-07-24  7:19                                                                             ` Arnd Bergmann
2012-07-24  7:19                                                                               ` Arnd Bergmann
2012-07-24 16:04                                                                               ` Stephen Warren
2012-07-24 16:04                                                                                 ` Stephen Warren
2012-07-24 18:55                                                                                 ` Arnd Bergmann
2012-07-24 18:55                                                                                   ` Arnd Bergmann
2012-07-24 12:54                                                                             ` Sergei Shtylyov
2012-07-24 12:54                                                                               ` Sergei Shtylyov
2012-07-06 11:36                                                           ` Guennadi Liakhovetski
2012-07-06 11:36                                                             ` Guennadi Liakhovetski
     [not found]                                                             ` <Pine.LNX.4.64.1207061315470.29809-0199iw4Nj15frtckUFj5Ag@public.gmane.org>
2012-07-06 15:28                                                               ` Arnd Bergmann
2012-07-06 15:28                                                                 ` Arnd Bergmann
     [not found]                                                                 ` <201207061528.58291.arnd-r2nGTMty4D4@public.gmane.org>
2012-07-06 15:43                                                                   ` Guennadi Liakhovetski
2012-07-06 15:43                                                                     ` Guennadi Liakhovetski
2012-07-06 17:31                                                                     ` Arnd Bergmann
2012-07-06 17:31                                                                       ` Arnd Bergmann
2012-07-06 21:01                                                                     ` Russell King - ARM Linux
2012-07-06 21:01                                                                       ` Russell King - ARM Linux
2012-07-06 20:57                                                               ` Russell King - ARM Linux
2012-07-06 20:57                                                                 ` Russell King - ARM Linux
2012-07-06 22:49                                                                 ` Guennadi Liakhovetski
2012-07-06 22:49                                                                   ` Guennadi Liakhovetski
2012-07-13  6:51                                                             ` Vinod Koul
2012-07-13  6:51                                                               ` Vinod Koul
2012-06-14 15:17                                           ` Guennadi Liakhovetski
2012-06-14 15:17                                             ` Guennadi Liakhovetski
2012-06-14 21:52                                             ` Jon Hunter
2012-06-14 21:52                                               ` Jon Hunter
2012-06-15  8:41                                               ` Guennadi Liakhovetski
2012-06-15  8:41                                                 ` Guennadi Liakhovetski
2012-06-15  9:00                                               ` Arnd Bergmann
2012-06-15  9:00                                                 ` Arnd Bergmann
2012-06-15  9:18                                                 ` Guennadi Liakhovetski
2012-06-15  9:18                                                   ` Guennadi Liakhovetski
2012-06-15 11:27                                                   ` Arnd Bergmann
2012-06-15 11:27                                                     ` Arnd Bergmann
     [not found]                                                     ` <201206151127.24386.arnd-r2nGTMty4D4@public.gmane.org>
2012-06-15 16:11                                                       ` Mitch Bradley
2012-06-15 16:11                                                         ` Mitch Bradley
     [not found]                                                         ` <4FDB5ECF.3000701-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2012-06-16  6:56                                                           ` Arnd Bergmann
2012-06-16  6:56                                                             ` Arnd Bergmann
2012-06-21 11:21                                                     ` Guennadi Liakhovetski
2012-06-21 11:21                                                       ` Guennadi Liakhovetski
2012-06-21 14:56                                                       ` Arnd Bergmann
2012-06-21 14:56                                                         ` Arnd Bergmann
     [not found]                     ` <201205161942.20296.arnd-r2nGTMty4D4@public.gmane.org>
2012-05-17 13:22                       ` Russell King - ARM Linux
2012-05-17 13:22                         ` Russell King - ARM Linux
2012-05-17 13:52                         ` Mark Brown
2012-05-17 13:52                           ` Mark Brown
2012-05-17 14:16                           ` Russell King - ARM Linux
2012-05-17 14:16                             ` Russell King - ARM Linux
2012-05-16 16:16               ` Jassi Brar
2012-05-16 16:16                 ` Jassi Brar
2012-05-16 17:12                 ` Jon Hunter
2012-05-16 17:12                   ` Jon Hunter
2012-05-16 17:24                   ` Jassi Brar
2012-05-16 17:24                     ` Jassi Brar
2012-05-16 17:37                     ` Jon Hunter
2012-05-16 17:37                       ` Jon Hunter
2012-05-16 17:46                       ` Stephen Warren
2012-05-16 17:46                         ` Stephen Warren
2012-05-16 18:03                         ` Jon Hunter
2012-05-16 18:03                           ` Jon Hunter
2012-05-04 15:22   ` Jon Hunter
2012-05-04 15:22     ` Jon Hunter
2012-05-04 15:56 ` Arnd Bergmann
2012-05-04 15:56   ` Arnd Bergmann
2012-05-04 17:19   ` Jon Hunter
2012-05-04 17:19     ` Jon Hunter
2012-05-04 19:06     ` Arnd Bergmann
2012-05-04 19:06       ` Arnd Bergmann
2012-05-04 19:26       ` Jon Hunter
2012-05-04 19:26         ` Jon Hunter
2012-05-04 18:30   ` Stephen Warren
2012-05-04 18:30     ` Stephen Warren

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=501181C3.1020301@ti.com \
    --to=jon-hunter@ti.com \
    --cc=arnd@arndb.de \
    --cc=b-cousson@ti.com \
    --cc=dan.j.williams@intel.com \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=grant.likely@secretlab.ca \
    --cc=jaswinder.singh@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=nicolas.ferre@atmel.com \
    --cc=rob.herring@calxeda.com \
    --cc=swarren@nvidia.com \
    --cc=swarren@wwwdotorg.org \
    --cc=vinod.koul@linux.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 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.