linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Vinod Koul <vinod.koul@intel.com>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: Guennadi Liakhovetski <g.liakhovetski@gmx.de>,
	Russell King - ARM Linux <linux@arm.linux.org.uk>,
	linux-kernel@vger.kernel.org,
	Jassi Brar <jassisinghbrar@gmail.com>,
	Magnus Damm <magnus.damm@gmail.com>,
	Paul Mundt <lethal@linux-sh.org>
Subject: Re: [PATCH/RFC] dmaengine: add a slave parameter to __dma_request_channel()
Date: Mon, 19 Mar 2012 17:28:16 +0530	[thread overview]
Message-ID: <1332158296.7180.13.camel@vkoul-udesk3> (raw)
In-Reply-To: <CACRpkdY7ApBc-gbSdf+=7PLtKSMvzYuBi7RNnVgi=vjcd-KvhQ@mail.gmail.com>

On Fri, 2012-03-16 at 15:11 +0100, Linus Walleij wrote:
> On Fri, Mar 16, 2012 at 12:09 PM, Guennadi Liakhovetski
> <g.liakhovetski@gmx.de> wrote:
> 
> > And the least important question: who and when will implement the core
> > support for this?
I will try to do the dmaengine work for 3.4. The code for each platform
needs to come from you guys :-)
> 
> I'm trying to call the kernel HR department to hire a consultant for me but they
> just put me on the phone queue all the time, I don't know what I might be
> doing wrong ... :-)
> 
> If the question is whether we need more people writing complicated core
> patches for the dmaengine I think the answer is "yes"?
> 
> > 1. the client issues a dma_request_channel() with _just_ a capability mask
> > and a filter and its argument as parameters - _nothing_ about channel
> > restrictions.
> >
> > 2. you propose to eliminate a filter - the core has no way to know, which
> > channel to pick up...
> 
> Nah, thinking about it...
> 
> Eliminate the external filter, make it internal. We already have the
> problem that these filter functions need to be passed around too much
> in platform data e.g. so we need to do away with it.
> 
> The filter functions seem to come from the DMA drivers
> themselves mostly. (Help me with the complete picture here...)
> For example:
> 
> amba-pl08x.c:bool pl08x_filter_id(struct dma_chan *chan, void *chan_id)
> coh901318.c:bool coh901318_filter_id(struct dma_chan *chan, void *chan_id)
> pl330.c:bool pl330_filter(struct dma_chan *chan, void *param)
> sirf-dma.c:bool sirfsoc_dma_filter_id(struct dma_chan *chan, void *chan_id)
> ste_dma40.c:bool stedma40_filter(struct dma_chan *chan, void *data)
> 
> So delete the typedef for dma_filter_fn remove these filters from
> external header files.
> 
> And stop that thing from being passed around and into
> struct dma_device so the dmaengine core can still filter or process
> channels, but nothing on the outside need to know about it. That way
> we can centralize it to drivers/dma and not spread it out throughout
> the kernel.
The _only_ reason why we issue with filters is due to simple reason of
having no way to map channels. So everyone decided to do it as they
deemed fit.
With platform giving you channel map, and dmaengine doing filtering, do
you need filter??
> 
> > 3. the wrapper, proposed by Russell, now calls dmaengine_slave_config(),
> > which fails, because that's a wrong channel (hope I get this right this
> > time - configuration has nothing to do with selection:-))
> 
> Oh I was not thinking of relying on config to sort out channels.
NO. That maybe true for sh-mobile or for you, but generically that is
not the case. Channel config and selection/mapping are orthogonal
concepts so lets keep them so.
> 
> I was thinking of internalizing the dma_filter_fn and make it an
> (optional, maybe?) part of dmaengine.
> 
> > 4. that's it, if you start again - the dmaengine core will enumerate the
> > same channels again and propose the same unsuitable channel to you -
> > there's no way to continue to the next channel / device.
> >
> > What am I missing? How is the mapping going to be used, if you eliminate
> > the filter function?
> 
> As above, I guess factoring away the filter functions would be
> the first real hard problem.
One we have good mapping solution, they would go away on its own, as
people just call dma_request_channel()

-- 
~Vinod


  parent reply	other threads:[~2012-03-19 11:53 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
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 [this message]
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=1332158296.7180.13.camel@vkoul-udesk3 \
    --to=vinod.koul@intel.com \
    --cc=g.liakhovetski@gmx.de \
    --cc=jassisinghbrar@gmail.com \
    --cc=lethal@linux-sh.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=magnus.damm@gmail.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).