[PATCH] ARM:SAMSUNG: Move S3C DMA driver to drivers/dma

Jassi Brar jassisinghbrar at gmail.com
Tue Jun 7 22:51:08 EDT 2011


On Wed, Jun 8, 2011 at 3:11 AM, Mark Brown
<broonie at opensource.wolfsonmicro.com> wrote:
> On Wed, Jun 08, 2011 at 12:31:42AM +0530, Jassi Brar wrote:
>> On Wed, Jun 8, 2011 at 12:13 AM, Mark Brown
>
>> > Circular buffers are nice from the point of view of allowing you to
>> > (providing the hardware supports it) totally disable the periodic audio
>> > interrupts and leave the system to run for very long times off the
>
>> This is what I called free-running circular buffer.
>> Besides power saving scenario, it is necessary for a fast peripheral
>> with shallow fifo.
>> The peripheral throws underrun errors, if the dma h/w doesn't support
>> LLI and cpu takes
>> a bit long loading-triggering the next transfer on DMA due to
>> irq-latency for some reason.
>
> That's fairly unusual, though - usually DMA controllers seem to support
> chaining requests before they support circular operation, at which point
> unless the hardware is badly misdone you can just chain another buffer,
> giving that buffer's worth of time for the CPU to respond.

While writing PL330 driver, I wasn't able to figure out a way to implement LLI.
Please have a look at the PL330 trm and suggest if we can implement it in a
generic way without considering them special requests.
I know pl080 supports LLI and it's fine.


>> > You can also do this with an circular chain of sequential buffers of
>> > course.
>
>> This is what is called Circular buffer in Samsung's DMA API.
>
> Which is a little bit unusual as it's basically a pure software
> construct rather than a hardware feature.
Yes it is. And I didn't say it suffice.



More information about the linux-arm-kernel mailing list