[alsa-devel] [Alsa-devel] xrun problem
Gao, Jonathan
Jonathan.Gao at spansion.com
Wed Jul 11 03:45:29 CEST 2007
Hi,
I am writing a PCM driver on a Soc for 2.6.10 kernel.
The test code I'm using is from alsa-lib-1.0.6rc1/test/pcm.c.
The runtime log gives me like this...
-----------------------------------------------------------------
open callback:
hw params callback: alloc result = 1, buffer bytes = 4608
/* --------- HW params ------------- */
format = 2, rate = 44100, channels= 2, period_size = 288,
periods = 4, buffer_size = 1152
prepare callback
/* --------- Runtime Info ---------- */
state = 1 (SNDRV_PCM_STATE_SETUP), hw_ptr = 0, appl_ptr = 0,
avail_min = 288
avail_max = 0, hw_ptr_base = 0, hw_ptr_interrupt = 0
trigger callback: START
Codec Do Copy:
/* --------- Runtime Info ---------- */
state = 3 (SNDRV_PCM_STATE_RUNNING), hw_ptr = 0, appl_ptr =
1152, avail_min = 288
avail_max = 0, hw_ptr_base = 0, hw_ptr_interrupt = 0
pointer callback: hw pointer: 288 (return value of pointer callback)
Codec Do Copy:
/* --------- Runtime Info ---------- */
state = 3 (SNDRV_PCM_STATE_RUNNING), hw_ptr = 288, appl_ptr =
1152, avail_min = 288
avail_max = 288, hw_ptr_base = 0, hw_ptr_interrupt = 288
pointer callback: hw pointer: 576 (return value of pointer callback)
Codec Do Copy:
/* --------- Runtime Info ---------- */
state = 3 (SNDRV_PCM_STATE_RUNNING), hw_ptr = 576, appl_ptr =
1152, avail_min = 288
avail_max = 576, hw_ptr_base = 0, hw_ptr_interrupt = 576
pointer callback: hw pointer: 864 (return value of pointer callback)
Codec Do Copy:
/* --------- Runtime Info ---------- */
state = 3 (SNDRV_PCM_STATE_RUNNING), hw_ptr = 864, appl_ptr =
1152, avail_min = 288
avail_max = 864, hw_ptr_base = 0, hw_ptr_interrupt = 864
pointer callback: hw pointer: 0 (return value of pointer callback)
trigger callback: STOP
prepare callback
/* --------- Runtime Info ---------- */
state = 4 (SNDRV_PCM_STATE_XRUN), hw_ptr = 1152, appl_ptr = 1152,
avail_min = 288
avail_max = 1152, hw_ptr_base = 1152, hw_ptr_interrupt = 1152
-----------------------------------------------------------------
The kernel hangs after prepare callback, from strace, I can see a
endless ioctl(4, ..., ...) repeated.
Does anyone have a few pointers on what is going wrong?
Best Regards,
Jonathan
More information about the Alsa-devel
mailing list