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 */