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