On Thu, 11.02.10 08:27, Jaroslav Kysela (perex@perex.cz) wrote:
On Thu, 11 Feb 2010, Clemens Ladisch wrote:
Do you mean that PA only wake up once when configure sound card to use two periods per buffer ?
When using two periods per buffer, ALSA tries to wake up PA two times. However, PA ignores the sound card's interrupts and is woken up by its own timer.
PA can drive the wake-ups using avail_min sw parameter. If this value is high enough, no userspace wake up is called, only interrupt is processed and internal ring buffer pointers in the driver are updated.
We actually do set min_avail and update it depending on the latency requirements of the connected clients. Not that we set it to a value that is not necessarily a multiple of the period size.
That said our primary way to wakeup is and stays the system timer, not the sound card clock. We set min_avail only as a safety net.
Lennart