public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Russell King <rmk@arm.linux.org.uk>
To: Jaswinder Singh <jaswinder.singh@linaro.org>
Cc: "Williams, Dan J" <dan.j.williams@intel.com>,
	Mika Westerberg <mika.westerberg@linux.intel.com>,
	"Koul, Vinod" <vinod.koul@intel.com>,
	Linus Walleij <linus.walleij@linaro.org>,
	linux-kernel@vger.kernel.org, linus.walleij@stericsson.com,
	per.friden@stericsson.com, wei.zhang@freescale.com,
	ebony.zhu@freescale.com, iws@ovro.caltech.edu,
	s.hauer@pengutronix.de, maciej.sosnowski@intel.com,
	saeed@marvell.com, shawn.guo@freescale.com, yur@emcraft.com,
	agust@denx.de, iwamatsu.nobuhiro@renesas.com,
	per.forlin@stericsson.com, jonas.aberg@stericsson.com,
	anemo@mba.ocn.ne.jp
Subject: Re: [PATCHv2] DMAEngine: Let dmac drivers to set chan_id
Date: Thu, 28 Jul 2011 23:35:05 +0100	[thread overview]
Message-ID: <20110728223505.GC829@flint.arm.linux.org.uk> (raw)
In-Reply-To: <CAJe_ZheB0uKn=Rk-i2y1rn5ZHJUJJy7D_3Pb6d4ggjNDhh+6VA@mail.gmail.com>

On Thu, Jul 28, 2011 at 04:14:34PM +0530, Jaswinder Singh wrote:
> For ex, for 'PITA' board, the dmac driver (via info directly gotten
> from platform) will announce
>   cap_rs8  := 'MMC' | '2ndInstance' | 'Dev->Mem'   //via probe of DMAC0
>   cap_rs31 := 'MMC' | '2ndInstance' | 'Dev->Mem'   //via probe of DMAC1
>   cap_rs8  := 'MMC' | '2ndInstance' | 'Mem->Dev'   //via probe of DMAC3
>   cap_rs57 := 'MMC' | '2ndInstance' | 'Mem->Dev'   //via probe of DMAC4

Most of this didn't look too bad until I got to here.

> Assuming
> ************
> a) There are no more than 256 types of DMA'able devices
>    (MMC, USB, SPI etc) --  [8bits]

Who allocates the 'type of dma' number ?

> b) A type of device never has more than 16 instances in a platform
>    (MMC-0, MMC-1, MMC-2 etc) --  [4bits]

How is the instance number given to devices ?

Are we expecting to have subsystems register with some kind of entity
which gives out 'type' and 'instance' numbers just to satisfy this?

In any case, if you look at Linus W's patches on LAKML for DMA on the
Versatile/Realview platforms, or look at the way AMBA drivers like MMCI
and PL011 UART deal with the 'filter' business, then I think you'd
realize that there's ways to deal with this match problem which are far
more flexible than your solution.

What we do there is:

1. We provide a match function from the platform to the peripheral driver.
   ==> this could be your special generic filter function.
2. We provide the match functions data from the platform to the peripheral
   driver.
   ==> this could be your special capability mask for that specific device.

So, as things stand _today_ if a platform wants to use your scheme, it
can.  But - and this is what makes things more flexible - if it needs to
do something else which your scheme can't handle, such as controlling an
external MUX which has nothing to do with the DMAC or peripheral apart
from sitting in the middle between the two - then it can do it its own
way.

I think that's a more flexible approach than any which enforces random
kinds of capabilities.

-- 
Russell King
 Linux kernel    2.6 ARM Linux   - http://www.arm.linux.org.uk/
 maintainer of:

  parent reply	other threads:[~2011-07-28 22:35 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-20 18:18 [PATCH] DMAEngine: Let dmac drivers set chan_id Jassi Brar
2011-07-21  4:01 ` [PATCHv2] DMAEngine: Let dmac drivers to " Jassi Brar
2011-07-22 15:27   ` Linus Walleij
2011-07-22 17:43     ` Jaswinder Singh
2011-07-22 22:23       ` Williams, Dan J
2011-07-23  3:56         ` Jaswinder Singh
2011-07-25 18:55           ` Williams, Dan J
2011-07-25 19:17             ` Jaswinder Singh
2011-07-25 20:08               ` Williams, Dan J
2011-07-26 14:30                 ` Jaswinder Singh
2011-07-26 15:29                   ` Williams, Dan J
2011-07-26 18:12                     ` Jaswinder Singh
2011-07-27  4:21                       ` Koul, Vinod
2011-07-27  7:17                         ` Jaswinder Singh
2011-07-27  9:02                           ` Koul, Vinod
2011-07-27  9:59                             ` Mika Westerberg
2011-07-27  9:34                               ` Koul, Vinod
2011-07-27 10:36                                 ` Mika Westerberg
2011-07-27 14:50                               ` Jaswinder Singh
2011-07-27 16:36                                 ` Williams, Dan J
2011-07-27 17:14                                   ` Jaswinder Singh
2011-07-27 20:28                                     ` Russell King
2011-07-28 10:44                                       ` Jaswinder Singh
2011-07-28 22:27                                         ` Linus Walleij
2011-07-28 22:43                                           ` Russell King
2011-07-29 12:20                                             ` Linus Walleij
2011-07-29 11:54                                           ` Koul, Vinod
2011-07-28 22:35                                         ` Russell King [this message]
2011-07-29 14:11                                           ` Jaswinder Singh
2011-07-27 14:30                             ` Jaswinder Singh
2011-07-27 20:37                               ` Russell King
2011-07-28 10:56                                 ` Jaswinder Singh
2011-07-28 13:44                                   ` Russell King
2011-07-28 17:54                                 ` Jaswinder Singh
2011-07-28 18:14                                   ` Williams, Dan J
2011-07-28 18:25                                     ` Jaswinder Singh
2011-07-28 22:40                                   ` Russell King
2011-07-30 13:09                                     ` Jaswinder Singh
2011-07-30 14:22                                       ` Russell King
2011-07-30 15:00                                         ` Jaswinder Singh

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=20110728223505.GC829@flint.arm.linux.org.uk \
    --to=rmk@arm.linux.org.uk \
    --cc=agust@denx.de \
    --cc=anemo@mba.ocn.ne.jp \
    --cc=dan.j.williams@intel.com \
    --cc=ebony.zhu@freescale.com \
    --cc=iwamatsu.nobuhiro@renesas.com \
    --cc=iws@ovro.caltech.edu \
    --cc=jaswinder.singh@linaro.org \
    --cc=jonas.aberg@stericsson.com \
    --cc=linus.walleij@linaro.org \
    --cc=linus.walleij@stericsson.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maciej.sosnowski@intel.com \
    --cc=mika.westerberg@linux.intel.com \
    --cc=per.forlin@stericsson.com \
    --cc=per.friden@stericsson.com \
    --cc=s.hauer@pengutronix.de \
    --cc=saeed@marvell.com \
    --cc=shawn.guo@freescale.com \
    --cc=vinod.koul@intel.com \
    --cc=wei.zhang@freescale.com \
    --cc=yur@emcraft.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