ALSA: usb - Avoid unnecessary sample rate changes on USB 2.0 clock sources
authorDavid Henningsson <david.henningsson@canonical.com>
Thu, 25 Apr 2013 12:32:24 +0000 (14:32 +0200)
committerTakashi Iwai <tiwai@suse.de>
Fri, 26 Apr 2013 05:37:09 +0000 (07:37 +0200)
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>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/usb/clock.c

index b0ec3643eb62906abedd192a4eaad35b90a898c8..3a2ce390e278afed2e9793d7d7b981965e604462 100644 (file)
@@ -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);