On Thu, 14 Jan 2010, Singaravelan Nallasellan wrote: > Thanks for the response. > > I am using mmap for the playback. What is the return value of > snd_pcm_avail_update when the ring buffer is empty? ring buffer size > How does ALSA identify the empty buffer? hw_ptr == appl_ptr > We incremented the hardware pointer continuously to large value more > than the hw buffer size. ALSA core did not round of the hw_ptr > properly. The firmware in the audio engine is now rounding of hw ptr > in the audio engine itself. It will always report the hw ptr between 0 > and hw buffer size. hw_ptr and appl_ptr are from range 0..boundary to detect xruns. The driver should not write to these values and should track own pointers. > Moreover our driver uses the batch mode and updates the hardware > pointer for every period. Is it the right way to do? I'm not sure about what pointers you're talking. If it's hw_ptr and appl_ptr, then driver shouldn't write to these pointers. The snd_pcm_period_elapsed() function should be called to synchronize hw_ptr when playback of period is finished. Maybe you can put your code to a public place so we can check it. Jaroslav ----- Jaroslav Kysela <perex@xxxxxxxx> Linux Kernel Sound Maintainer ALSA Project, Red Hat, Inc. _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel