From: Clemens Ladisch Date: Thu, 18 Nov 2010 08:53:07 +0000 (+0100) Subject: ALSA: pcm: optimize xrun detection in no-period-wakeup mode X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=47228e48aecdbec423a1275a5e27697d47f1f912;p=openwrt%2Fstaging%2Fblogic.git ALSA: pcm: optimize xrun detection in no-period-wakeup mode Add a lightweight condition on top of the xrun checking so that we can avoid the division when the application is calling the update function often enough. Suggested-by: Jaroslav Kysela Signed-off-by: Clemens Ladisch Signed-off-by: Takashi Iwai --- diff --git a/sound/core/pcm_lib.c b/sound/core/pcm_lib.c index e9debaabf376..fd18c3c6484f 100644 --- a/sound/core/pcm_lib.c +++ b/sound/core/pcm_lib.c @@ -380,6 +380,8 @@ static int snd_pcm_update_hw_ptr0(struct snd_pcm_substream *substream, * the elapsed time to detect xruns. */ jdelta = jiffies - runtime->hw_ptr_jiffies; + if (jdelta < runtime->hw_ptr_buffer_jiffies / 2) + goto no_delta_check; hdelta = jdelta - delta * HZ / runtime->rate; while (hdelta > runtime->hw_ptr_buffer_jiffies / 2 + 1) { delta += runtime->buffer_size;