Re: [PATCH v7 01/10] ARM: davinci: move private EDMA API to arm/common

Russell King - ARM Linux
2013-02-04T15:45:02Z

On Mon, Feb 04, 2013 at 05:41:53PM +0200, Felipe Balbi wrote:
> Hi,
>
> On Fri, Feb 01, 2013 at 09:30:03PM +0000, Russell King - ARM Linux wrote:
> > > > > I guess to make the MUSB side simpler we would need musb-dma-engine glue
> > > > > to map dmaengine to the private MUSB API. Then we would have some
> > > > > starting point to also move inventra (and anybody else) to dmaengine
> > > > > API.
> > > >
> > > > Why? Inventra is a dedicated device's private DMA controller, why make
> > > > universal DMA driver for it?
> > >
> > > because it doesn't make sense to support multiple DMA APIs. We can check
> > > from MUSB's registers if it was configured with Inventra DMA support and
> > > based on that we can register MUSB's own DMA Engine to dmaengine API.
> >
> > Hang on. This is one of the DMA implementations which is closely
> > coupled with the USB and only the USB? If it is...
> >
> > I thought this had been discussed _extensively_ before. I thought the
> > resolution on it was:
> > 1. It would not use the DMA engine API.
> > 2. It would not live in arch/arm.
> > 3. It would be placed nearby the USB driver it's associated with.
> >
> > (1) because we don't use APIs just for the hell of it - think. Do we
> > use the DMA engine API for PCI bus mastering ethernet controllers? No.
> > Do we use it for PCI bus mastering SCSI controllers? No. Because the
> > DMA is integral to the rest of the device.
>
> that's not really a fair comparison, however. MUSB is used with several
> DMA engines.

I only mentioned it because it _was_ brought up as an argument against
using the DMA engine API in the previous discussions. I'm just reminding
people what was discussed.

> Considering all of the above, it's far better to use DMA engine and get
> rid of all the mess.

Which is what both you and I have been saying for the last 3 or so years
on this subject...