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