On Sat, 21 Mar 2009 21:29:20 +0900 (JST), Atsushi Nemoto <email@example.com>
> > 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.