[alsa-devel] Help required with debugging

Jaroslav Kysela perex at perex.cz
Thu Jul 2 10:08:35 CEST 2009


On Thu, 2 Jul 2009, Harsha, Priya wrote:

> Why is runtime->hw_ptr_jiffies updated in hw_ptr()? This should be only 
> updated in the interrupt context right?

The idea of hw_ptr_jiffies is to have a check if real-time clock in sync 
with the DMA buffer position. If your hardware does block transfers and is 
not able to return fine position in period set SNDRV_PCM_INFO_BATCH flag. 
But it's rather a workaround than a proper fix, because timestamps are 
updated but the ring buffer position is not moved (which brokes the idea 
to have a relation between the ring buffer position and the real-time 
clock).

I think that this sort of drivers might require to implement the 
SNDRV_PCM_POS_KEEP return value in case when position does not change from 
last read to notify midlevel PCM code that they're not able to handle fine 
pointer resolution.

Also, hardware with large FIFOs should update properly runtime->delay 
value now.

 						Jaroslav

-----
Jaroslav Kysela <perex at perex.cz>
Linux Kernel Sound Maintainer
ALSA Project, Red Hat, Inc.



More information about the Alsa-devel mailing list