When a slave PCM gets an error like XRUN, it stops and notifies with SND_TIMER_EVENT_MSTOP event. But the current code filters out this type and eventually hang due to the empty timer queue. The fix is to just add this event type to the filter bit mask.
Signed-off-by: Takashi Iwai tiwai@suse.de --- src/pcm/pcm_direct.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/src/pcm/pcm_direct.c b/src/pcm/pcm_direct.c index 8e37bcba5e19..195fddf06cda 100644 --- a/src/pcm/pcm_direct.c +++ b/src/pcm/pcm_direct.c @@ -1148,6 +1148,7 @@ int snd_pcm_direct_initialize_poll_fd(snd_pcm_direct_t *dmix)
dmix->timer_events = (1<<SND_TIMER_EVENT_MSUSPEND) | (1<<SND_TIMER_EVENT_MRESUME) | + (1<<SND_TIMER_EVENT_MSTOP) | (1<<SND_TIMER_EVENT_STOP);
/*