[alsa-devel] [PATCH] ALSA: usb - Avoid unnecessary sample rate changes on USB 2.0 clock sources
The Scarlett 2i2 seems to take almost 500 ms to set the sample rate, even if the clock is currently set to that value. This patch speeds up prepare of the device, by avoiding setting the clock to something it already is.
Signed-off-by: David Henningsson david.henningsson@canonical.com --- sound/usb/clock.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/sound/usb/clock.c b/sound/usb/clock.c index b0ec364..3a2ce39 100644 --- a/sound/usb/clock.c +++ b/sound/usb/clock.c @@ -356,6 +356,8 @@ static int set_sample_rate_v2(struct snd_usb_audio *chip, int iface, return clock;
prev_rate = get_sample_rate_v2(chip, iface, fmt->altsetting, clock); + if (prev_rate == rate) + return 0;
cs_desc = snd_usb_find_clock_source(chip->ctrl_intf, clock); writeable = uac2_control_is_writeable(cs_desc->bmControls, UAC2_CS_CONTROL_SAM_FREQ - 1);
At Thu, 25 Apr 2013 14:32:24 +0200, David Henningsson wrote:
The Scarlett 2i2 seems to take almost 500 ms to set the sample rate, even if the clock is currently set to that value. This patch speeds up prepare of the device, by avoiding setting the clock to something it already is.
Signed-off-by: David Henningsson david.henningsson@canonical.com
Thanks, applied now.
Takashi
sound/usb/clock.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/sound/usb/clock.c b/sound/usb/clock.c index b0ec364..3a2ce39 100644 --- a/sound/usb/clock.c +++ b/sound/usb/clock.c @@ -356,6 +356,8 @@ static int set_sample_rate_v2(struct snd_usb_audio *chip, int iface, return clock;
prev_rate = get_sample_rate_v2(chip, iface, fmt->altsetting, clock);
if (prev_rate == rate)
return 0;
cs_desc = snd_usb_find_clock_source(chip->ctrl_intf, clock); writeable = uac2_control_is_writeable(cs_desc->bmControls, UAC2_CS_CONTROL_SAM_FREQ - 1);
-- 1.7.9.5
participants (2)
-
David Henningsson
-
Takashi Iwai