On Wed, Jun 8, 2011 at 3:11 AM, Mark Brown <broonie@xxxxxxxxxxxxxxxxxxxxxxxxxxx> 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. -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html