diff options
Diffstat (limited to 'sound/usb/pcm.c')
-rw-r--r-- | sound/usb/pcm.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sound/usb/pcm.c b/sound/usb/pcm.c index fd5e982fc98c..f782ce19bf5a 100644 --- a/sound/usb/pcm.c +++ b/sound/usb/pcm.c | |||
@@ -1140,6 +1140,12 @@ static void retire_playback_urb(struct snd_usb_substream *subs, | |||
1140 | int processed = urb->transfer_buffer_length / stride; | 1140 | int processed = urb->transfer_buffer_length / stride; |
1141 | int est_delay; | 1141 | int est_delay; |
1142 | 1142 | ||
1143 | /* ignore the delay accounting when procssed=0 is given, i.e. | ||
1144 | * silent payloads are procssed before handling the actual data | ||
1145 | */ | ||
1146 | if (!processed) | ||
1147 | return; | ||
1148 | |||
1143 | spin_lock_irqsave(&subs->lock, flags); | 1149 | spin_lock_irqsave(&subs->lock, flags); |
1144 | est_delay = snd_usb_pcm_delay(subs, runtime->rate); | 1150 | est_delay = snd_usb_pcm_delay(subs, runtime->rate); |
1145 | /* update delay with exact number of samples played */ | 1151 | /* update delay with exact number of samples played */ |