Loading sound/usb/pcm.c +95 −103 Original line number Diff line number Diff line Loading @@ -1528,8 +1528,6 @@ static int prepare_playback_urb(struct snd_usb_substream *subs, int counts; unsigned int transfer_done, frame_limit, avail = 0; int i, stride, period_elapsed = 0; unsigned long flags; int err = 0; stride = ep->stride; Loading @@ -1537,7 +1535,7 @@ static int prepare_playback_urb(struct snd_usb_substream *subs, ctx->queued = 0; urb->number_of_packets = 0; spin_lock_irqsave(&subs->lock, flags); scoped_guard(spinlock_irqsave, &subs->lock) { frame_limit = subs->frame_limit + ep->max_urb_frames; transfer_done = subs->transfer_done; Loading Loading @@ -1595,10 +1593,8 @@ static int prepare_playback_urb(struct snd_usb_substream *subs, break; } if (!frames) { err = -EAGAIN; goto unlock; } if (!frames) return -EAGAIN; bytes = frames * stride; subs->transfer_done = transfer_done; Loading Loading @@ -1632,11 +1628,8 @@ static int prepare_playback_urb(struct snd_usb_substream *subs, subs->period_elapsed_pending = 1; period_elapsed = 0; } } unlock: spin_unlock_irqrestore(&subs->lock, flags); if (err < 0) return err; urb->transfer_buffer_length = bytes; if (period_elapsed) { if (in_stream_lock) Loading @@ -1654,11 +1647,10 @@ static int prepare_playback_urb(struct snd_usb_substream *subs, static void retire_playback_urb(struct snd_usb_substream *subs, struct urb *urb) { unsigned long flags; struct snd_urb_ctx *ctx = urb->context; bool period_elapsed = false; spin_lock_irqsave(&subs->lock, flags); scoped_guard(spinlock_irqsave, &subs->lock) { if (ctx->queued) { if (subs->inflight_bytes >= ctx->queued) subs->inflight_bytes -= ctx->queued; Loading @@ -1671,7 +1663,7 @@ static void retire_playback_urb(struct snd_usb_substream *subs, period_elapsed = subs->period_elapsed_pending; subs->period_elapsed_pending = 0; } spin_unlock_irqrestore(&subs->lock, flags); } if (period_elapsed) snd_pcm_period_elapsed(subs->pcm_substream); } Loading Loading
sound/usb/pcm.c +95 −103 Original line number Diff line number Diff line Loading @@ -1528,8 +1528,6 @@ static int prepare_playback_urb(struct snd_usb_substream *subs, int counts; unsigned int transfer_done, frame_limit, avail = 0; int i, stride, period_elapsed = 0; unsigned long flags; int err = 0; stride = ep->stride; Loading @@ -1537,7 +1535,7 @@ static int prepare_playback_urb(struct snd_usb_substream *subs, ctx->queued = 0; urb->number_of_packets = 0; spin_lock_irqsave(&subs->lock, flags); scoped_guard(spinlock_irqsave, &subs->lock) { frame_limit = subs->frame_limit + ep->max_urb_frames; transfer_done = subs->transfer_done; Loading Loading @@ -1595,10 +1593,8 @@ static int prepare_playback_urb(struct snd_usb_substream *subs, break; } if (!frames) { err = -EAGAIN; goto unlock; } if (!frames) return -EAGAIN; bytes = frames * stride; subs->transfer_done = transfer_done; Loading Loading @@ -1632,11 +1628,8 @@ static int prepare_playback_urb(struct snd_usb_substream *subs, subs->period_elapsed_pending = 1; period_elapsed = 0; } } unlock: spin_unlock_irqrestore(&subs->lock, flags); if (err < 0) return err; urb->transfer_buffer_length = bytes; if (period_elapsed) { if (in_stream_lock) Loading @@ -1654,11 +1647,10 @@ static int prepare_playback_urb(struct snd_usb_substream *subs, static void retire_playback_urb(struct snd_usb_substream *subs, struct urb *urb) { unsigned long flags; struct snd_urb_ctx *ctx = urb->context; bool period_elapsed = false; spin_lock_irqsave(&subs->lock, flags); scoped_guard(spinlock_irqsave, &subs->lock) { if (ctx->queued) { if (subs->inflight_bytes >= ctx->queued) subs->inflight_bytes -= ctx->queued; Loading @@ -1671,7 +1663,7 @@ static void retire_playback_urb(struct snd_usb_substream *subs, period_elapsed = subs->period_elapsed_pending; subs->period_elapsed_pending = 0; } spin_unlock_irqrestore(&subs->lock, flags); } if (period_elapsed) snd_pcm_period_elapsed(subs->pcm_substream); } Loading