linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Vinod Koul <vinod.koul@intel.com>
To: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [PATCH/RFC] dmaengine: add a slave parameter to __dma_request_channel()
Date: Tue, 06 Mar 2012 17:38:59 +0530	[thread overview]
Message-ID: <1331035739.24656.201.camel@vkoul-udesk3> (raw)
In-Reply-To: <Pine.LNX.4.64.1203060935460.9300@axis700.grange>

On Tue, 2012-03-06 at 09:53 +0100, Guennadi Liakhovetski wrote:
> Hi Vinod
> 
> Thanks for your review.
> 
> On Tue, 6 Mar 2012, Vinod Koul wrote:
> 
> > On Fri, 2012-03-02 at 14:21 +0100, Guennadi Liakhovetski wrote:
> > > Hi Vinod
> > > 
> > > On Wed, 1 Feb 2012, Guennadi Liakhovetski wrote:
> > sorry I thought I had replied, but looks like it got missed!
> > > 
> > > > When performing slame DMA some dmaengine drivers need additional data from
> > typo		  ^^^^^^^^^
> > > > client drivers to find out, whether they can support that specific client
> > > > and to configure the DMA channel for it. This additional data has to be
> > > > supplied by client drivers during channel allocation, i.e., with the
> > > > __dma_request_channel() function. This patch adds a new
> > > > struct dma_slave_desc with some basic data in it, further this struct can
> > > > be embedded in hardware-specific types to supply any auxiliary
> > > > configuration.
> > counter arguing shouldn't the client drivers find out of the channel
> > requested is capable or not, that can be alternate approach as well.
> > That way people implement this in the filer functions and find if this
> > is the channel we need rather than dmac finding out if it can service
> > the client or not.
> 
> How shall clients find this out? This is system- and DMAC-specific, this 
> has nothing to do with the client functionality. The proposed approach is:
> 
> * a client driver (MMC, USB, anything else) is capable to use DMA uses the 
> standard dmaengine API to transfer the data
> 
> * if the platform, where it's running, is supplying any auxiliary data, 
> that it has to pass to the DMAC driver, it can do so, without getting 
> involved in the details, just passing a pointer
> 
> * the most natural location to do this is IMHO when requesting a DMA 
> channel
and in that case why do you need the new parameters to be passed back in
filter function. What is the role of filter in this case ?

> 
> Now, on sh-mobile platforms you can realistically have around 5 DMAC 
> instances with 2 or 6 channels each, of which, say, 3 controllers are 
> suitable for MMC and 2 are not. How shall the filter function find this 
> out? Call some ugly platform callback? Traverse some platform-specific 
> lists? Or use a fixed channel, thus significantly reducing flexibility? 
> Sorry, none of these options seems very attractive to me.
well you can counter argue that dmac does not have this information
either.

Bigger question is who knows about this mapping and how do we
incorporate this mapping into channel allocation
> 
> > Frankly I prefer former model, as that way dmacs will present channel
> > capabilities, and clients can use as they deem fit.
> > > > 
> > > > Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
> 
> [snip]



-- 
~Vinod


  reply	other threads:[~2012-03-06 12:04 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-01 15:26 [PATCH/RFC] dmaengine: add a slave parameter to __dma_request_channel() Guennadi Liakhovetski
2012-03-02 13:21 ` Guennadi Liakhovetski
2012-03-06  8:30   ` Vinod Koul
2012-03-06  8:53     ` Guennadi Liakhovetski
2012-03-06 12:08       ` Vinod Koul [this message]
2012-03-06 13:03         ` Guennadi Liakhovetski
2012-03-07  6:28           ` Vinod Koul
2012-03-07  9:18             ` Guennadi Liakhovetski
2012-03-07  9:30               ` Russell King - ARM Linux
2012-03-07  9:55                 ` Linus Walleij
2012-03-07 10:02                 ` Guennadi Liakhovetski
2012-03-07 10:31                   ` Russell King - ARM Linux
2012-03-07 12:30                     ` Guennadi Liakhovetski
2012-03-07 12:45                       ` Guennadi Liakhovetski
2012-03-07 12:46                       ` Russell King - ARM Linux
2012-03-07 13:49                         ` Guennadi Liakhovetski
2012-03-07 14:26                           ` Russell King - ARM Linux
2012-03-07 15:44                             ` Guennadi Liakhovetski
2012-03-07 16:27                               ` Russell King - ARM Linux
2012-03-07 18:21                                 ` Guennadi Liakhovetski
2012-03-08  6:30                                   ` Vinod Koul
2012-03-08 10:16                                     ` Guennadi Liakhovetski
2012-03-08 10:55                                       ` Vinod Koul
2012-03-08 11:22                                         ` Guennadi Liakhovetski
2012-03-08 11:34                                           ` Vinod Koul
2012-03-08 12:58                                             ` Vinod Koul
2012-03-08 13:18                                               ` Guennadi Liakhovetski
2012-03-09  9:21                                                 ` Vinod Koul
2012-03-09  9:24                                                   ` Guennadi Liakhovetski
2012-03-09  9:39                                                     ` Vinod Koul
2012-03-09 12:20                                                       ` Guennadi Liakhovetski
2012-03-09 14:07                                                         ` Russell King - ARM Linux
2012-03-09 14:15                                                           ` Guennadi Liakhovetski
2012-03-12  2:47                                                         ` Vinod Koul
2012-03-12 19:47                                                           ` Linus Walleij
2012-03-16  9:36                                                           ` Guennadi Liakhovetski
2012-03-16 10:16                                                             ` Linus Walleij
2012-03-16 10:31                                                               ` Russell King - ARM Linux
2012-03-16 11:09                                                               ` Guennadi Liakhovetski
2012-03-16 14:11                                                                 ` Linus Walleij
2012-03-16 14:28                                                                   ` Guennadi Liakhovetski
2012-03-30  5:44                                                                     ` Linus Walleij
2012-03-30  6:40                                                                       ` Guennadi Liakhovetski
2012-03-30 10:38                                                                       ` Russell King - ARM Linux
2012-04-03 20:36                                                                         ` Linus Walleij
2012-04-03 20:44                                                                         ` Linus Walleij
2012-04-12 21:33                                                                           ` Guennadi Liakhovetski
2012-04-12 23:48                                                                             ` Russell King - ARM Linux
2012-03-30 10:29                                                                     ` Russell King - ARM Linux
2012-03-30 10:40                                                                       ` Guennadi Liakhovetski
2012-03-30 10:43                                                                         ` Russell King - ARM Linux
2012-03-19 11:58                                                                   ` Vinod Koul
2012-03-30 10:25                                                                 ` Russell King - ARM Linux
2012-03-19 11:39                                                               ` Vinod Koul
2012-03-19 11:37                                                             ` Vinod Koul
2012-03-19 11:47                                                               ` Guennadi Liakhovetski
2012-03-19 13:34                                                                 ` Vinod Koul
2012-03-19 13:38                                                                   ` Guennadi Liakhovetski
2012-03-19 14:00                                                                     ` Vinod Koul
2012-03-19 14:09                                                                       ` Guennadi Liakhovetski
2012-03-19 14:22                                                                         ` Vinod Koul
2012-03-19 14:45                                                                           ` Guennadi Liakhovetski
2012-03-19 16:20                                                                             ` Vinod Koul
2012-03-19 16:32                                                                               ` Guennadi Liakhovetski
2012-03-20  7:11                                                                                 ` Vinod Koul
2012-03-08 11:46                                       ` Linus Walleij
2012-03-08 12:36                                         ` Guennadi Liakhovetski
2012-03-07 16:31                         ` Linus Walleij
2012-03-07 16:20                     ` Linus Walleij
2012-03-07  9:46               ` Linus Walleij

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=1331035739.24656.201.camel@vkoul-udesk3 \
    --to=vinod.koul@intel.com \
    --cc=g.liakhovetski@gmx.de \
    --cc=linux-kernel@vger.kernel.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 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).