From b91e1004cae661755450daab5c8151150fc9e3e8 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 6 Sep 2012 14:58:00 +0200 Subject: [PATCH] --- yaml --- r: 322663 b: refs/heads/master c: 1213a205f9ed27d97de3d5bed28fb085ef4853e2 h: refs/heads/master i: 322661: 970bd71dfe03ccfe54fbb6519a9ef7ac708e69b3 322659: 005a09ce50ab1b17d9424fd6e7c7dc2512a07e5b 322655: 0351e48a9782f175529f7495cc3d3f125f46f741 v: v3 --- [refs] | 2 +- trunk/sound/usb/pcm.c | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index bb66f747cbbf..79e46e763716 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ab548d2dba63ba947287965e525cc02a15d9853d +refs/heads/master: 1213a205f9ed27d97de3d5bed28fb085ef4853e2 diff --git a/trunk/sound/usb/pcm.c b/trunk/sound/usb/pcm.c index fd5e982fc98c..f782ce19bf5a 100644 --- a/trunk/sound/usb/pcm.c +++ b/trunk/sound/usb/pcm.c @@ -1140,6 +1140,12 @@ static void retire_playback_urb(struct snd_usb_substream *subs, int processed = urb->transfer_buffer_length / stride; int est_delay; + /* ignore the delay accounting when procssed=0 is given, i.e. + * silent payloads are procssed before handling the actual data + */ + if (!processed) + return; + spin_lock_irqsave(&subs->lock, flags); est_delay = snd_usb_pcm_delay(subs, runtime->rate); /* update delay with exact number of samples played */