Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4c4e4391 authored by Ricard Wanderlof's avatar Ricard Wanderlof Committed by Takashi Iwai
Browse files

ALSA: USB-audio: Also move out hwptr_done wrap from prepare_playback_urb()



Refactoring in preparation for adding Zoom R16/24 quirk.
No functional change.

Signed-off-by: default avatarRicard Wanderlof <ricardw@axis.com>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 07a40c2f
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -1383,6 +1383,8 @@ static inline void fill_playback_urb_dsd_dop(struct snd_usb_substream *subs,
			subs->hwptr_done++;
		}
	}
	if (subs->hwptr_done >= runtime->buffer_size * stride)
		subs->hwptr_done -= runtime->buffer_size * stride;
}

static void copy_to_urb(struct snd_usb_substream *subs,
@@ -1403,6 +1405,8 @@ static void copy_to_urb(struct snd_usb_substream *subs,
		       runtime->dma_area + subs->hwptr_done, bytes);
	}
	subs->hwptr_done += bytes;
	if (subs->hwptr_done >= runtime->buffer_size * stride)
		subs->hwptr_done -= runtime->buffer_size * stride;
}

static void prepare_playback_urb(struct snd_usb_substream *subs,
@@ -1480,14 +1484,13 @@ static void prepare_playback_urb(struct snd_usb_substream *subs,
		}

		subs->hwptr_done += bytes;
		if (subs->hwptr_done >= runtime->buffer_size * stride)
			subs->hwptr_done -= runtime->buffer_size * stride;
	} else {
		/* usual PCM */
		copy_to_urb(subs, urb, stride, bytes);
	}

	if (subs->hwptr_done >= runtime->buffer_size * stride)
		subs->hwptr_done -= runtime->buffer_size * stride;

	/* update delay with exact number of samples queued */
	runtime->delay = subs->last_delay;
	runtime->delay += frames;