Thread (14 messages) 14 messages, 4 authors, 2011-07-23

[PATCH] dmaengine: add dma_ctrl_cmd to pass buffer stride configuration

From: Raju, Sundaram <hidden>
Date: 2011-07-12 10:16:08
Also in: linux-omap, lkml

-----Original Message-----
From: Linus Walleij [mailto:linus.walleij at linaro.org]
Sent: Tuesday, July 12, 2011 3:28 PM
To: Dan Williams
Cc: Raju, Sundaram; linux-arm-kernel at lists.infradead.org; linux-
kernel at vger.kernel.org; davinci-linux-open-source at linux.davincidsp.com;
linux at arm.linux.org.uk; linux-omap at vger.kernel.org
Subject: Re: [PATCH] dmaengine: add dma_ctrl_cmd to pass buffer stride
configuration

On Mon, Jul 11, 2011 at 11:39 PM, Dan Williams [off-list ref]
wrote:
quoted
On Mon, Jul 11, 2011 at 2:28 AM, Linus Walleij [off-list ref]
wrote:
quoted
...and I suspect the slave device drivers that use TI DMA are not
expected to ever work with other dmaengines? ?Likely the case, but
just wondering out loud.
Typically the OMAP/TI drivers are one-to-one with this specific DMA
controller, but they *can* support controllers without stride options, and
notice that striding will only be used for the display driver IIRC,
pseudo-code:

ret = dmaengine_device_control(chan, TI_DMA_STRIDE_CONFIG,
                        (unsigned long) &my_stride_config);
if (ret) {
   /*
    * OK no striding on this DMA engine, fall back to something else,
    * such as creating an SGlist which emulates the striding with one
    * sglist element per stride.
    */
}

By injecting an error in the stride config path this can even be
properly tested. So it will become an optional acceleration.
Yes, this is exactly what I also wanted to say. :)

But if the client driver does not implement a fallback like this then that
driver will work only with TI DMA and not any other dmaengines.
(Mentioning this because, there are client drivers which are tightly 
coupled to this special configuration)

Keeping this in mind, I had started the original discussion with
the suggestion of modifying the existing prepare API and adding
an extra argument to it, which can be used to pass special configuration.
And I also wanted to generalize that configuration passed.

Anyways that design also will come down to this same path, and instead
of modifying the existing API signatures, I think this is the best way
we can go.

Regards,
Sundaram
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help