On Thu, 4 Sep 2008, Timur Tabi wrote:
If I understand it correctly, when ALSA detects an underrun during playback, it throttles the driver by sending pause and resume commands.
It turns out that our hardware doesn't really like this. We're looking at various solutions, but one proposal would be to keep the hardware running during a pause, but just have it play silence instead. That is, ALSA keeps feeding silence data during an underrun recovery.
Is there an easy way to do this in ALSA? Is there another driver that does this?
Note that not all hardware supports pause, so just remove SNDRV_PCM_INFO_PAUSE and all pause related code in the trigger callback and let user space to do the full reinitialization.
Jaroslav
----- Jaroslav Kysela perex@perex.cz Linux Kernel Sound Maintainer ALSA Project, Red Hat, Inc.