I found another clue to this but can anyone please explain what could be going wrong? The execution enters into the following function >static int snd_pcm_update_hw_ptr_interrupt(struct snd_pcm_substream >*substream) >{ > .... > new_hw_ptr = hw_base + pos; this gets updated correctly > ... > hdelta = new_hw_ptr - old_hw_ptr; > jdelta = jiffies - runtime->hw_ptr_jiffies; as far as I don't get into the following loop, am good...the moment I get into this loop my new_hw_ptr gets modified and it does not progress in capture. Any clues? > if (((hdelta * HZ) / runtime->rate) > jdelta + HZ/100) { > delta = jdelta / > (((runtime->period_size * HZ) / runtime->rate) > + HZ/100); > hw_ptr_error(substream, > "hw_ptr skipping! [Q] " > "(pos=%ld, delta=%ld, period=%ld, " > "jdelta=%lu/%lu/%lu)\n", > (long)pos, (long)hdelta, > (long)runtime->period_size, jdelta, > ((hdelta * HZ) / runtime->rate), delta); > hw_ptr_interrupt = runtime->hw_ptr_interrupt + > runtime->period_size * delta; > if (hw_ptr_interrupt >= runtime->boundary) > hw_ptr_interrupt -= runtime->boundary; > /* rebase to interrupt position */ > hw_base = new_hw_ptr = hw_ptr_interrupt; > /* align hw_base to buffer_size */ > hw_base -= hw_base % runtime->buffer_size; > delta = 0; > } > ... >} Thanks, Harsha ______________________________________ From: Harsha, Priya Sent: Saturday, June 27, 2009 9:18 AM To: alsa-devel@xxxxxxxxxxxxxxxx Subject: snd_pcm_lib_read1 timeout Hi, I have a basic question; There is a schedule_timeout() in snd_pcm_lib_read1 -> wait_for_avail_min. When and where does this timeout get signaled? What would be the reason that this timeout happens? Thanks, Harsha _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel