linux-mips
[Top] [All Lists]

Re: [PATCH 1/2] dmaengine: TXx9 Soc DMA Controller driver

To: dan.j.williams@intel.com
Subject: Re: [PATCH 1/2] dmaengine: TXx9 Soc DMA Controller driver
From: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Date: Thu, 26 Mar 2009 23:12:43 +0900 (JST)
Cc: linux-mips@linux-mips.org, ralf@linux-mips.org, linux-kernel@vger.kernel.org, haavard.skinnemoen@atmel.com
In-reply-to: <20090321.212920.25912728.anemo@mba.ocn.ne.jp>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <20090318.110154.76582864.nemoto@toshiba-tops.co.jp> <e9c3a7c20903181026h1801ef6i945e6ce9ccb36b8a@mail.gmail.com> <20090321.212920.25912728.anemo@mba.ocn.ne.jp>
Sender: linux-mips-bounce@linux-mips.org
On Sat, 21 Mar 2009 21:29:20 +0900 (JST), Atsushi Nemoto <anemo@mba.ocn.ne.jp> 
wrote:
> > I think creating a dma_device instance per channel and specifying that
> > device like atmel-mci is the more future-proof way to go.
> 
> Well, I have considered it but it looks overkill for me at that time.
> Maybe time to think again...
> 
> > > And I want to call Channel-3 of DMAC-0 "dma0chan3" even if Channel-2
> > > was assigned to for public memcpy channel.
> > 
> > The problem is you could pass in the chan_id to guarantee 'chan3', but
> > there is no guarantee that you will get 'dma0', as the driver has no
> > knowledge of what other dma devices may be in the system.
> 
> Yes, I do not expect 'dma0'.  My filter function uses
> dev_name(chan->device->dev), which is "txx9dmac.0" in this case.
> 
> Anyway, "one dma-device per channel" manner will make things much simpler.

Unfortunately, not so simple.  If I created a dma_device for each
channel, all chan->chan_id will be 0 and all chan->device->dev points
same platform device.  This makes client driver hard to select the
particular channel.  Making a platform device for each channel will
solve this, but it looks wrong way to go for me.

So I will go back to multiple channels per device style, and try to
simplify "reservation".  While all client should know correct channel
number, the reservation is just for detecting bad configuration.

---
Atsushi Nemoto

<Prev in Thread] Current Thread [Next in Thread>