Thread (18 messages) flat view 18 messages, 4 authors, 2012-09-13

[alsa-devel] [PATCH 11/11] ASoC: omap-pcm: Convert to use dmaengine

From: Takashi Iwai <hidden>
Date: 2012-09-12 14:06:03
Also in: alsa-devel, linux-omap, lkml

At Wed, 12 Sep 2012 13:00:28 +0100,
Russell King - ARM Linux wrote:
On Wed, Sep 12, 2012 at 02:47:07PM +0300, Peter Ujfalusi wrote:
quoted
2. Pause/Resume
   OMAP DMA engine backend does not support pausing and resuming
   an in-progress transfer.  It is unclear from the specs what
   effect clearing the enable bit has on the DMA position of a
   destination synchronized transfer, and whether the transfer
   can be restarted from the exact point that it was paused (or
   whether the data in the FIFO read from memory is simply
   discarded.)
It's worth noting that this comment (which was in my original patch)
is there to spark _comment_ and _discussion_ and should not make its
way into the final version of these patches.
I agree this can be regarded as a sort of regression...
Given that suspend/resume is important on OMAP platforms, it's something
that needs to be resolved - in a way that complies with what ALSA expects.
I do not believe that the way the existing drivers do this is compliant
as the manuals imply that stopping memory->peripheral transfers results
in data being discarded from the DMA's FIFOs.  As I understand it, ALSA
requires no data to be discarded.
... but in general you don't need to implement the full PAUSE and
RESUME operations for PCM.  For example, when SNDRV_PCM_INFO_RESUME
bit isn't set, user-space is supposed to do a clean restart of the
stream at wake up.  So, it shouldn't break the apps severely in
theory (but in practice, who knows :)
As we have no way to know how much data may be discarded from the DMA
FIFO...
Yeah, the FIFO and the amount of other on flight data can be better
managed.


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