ALSA: usb-audio: Don't set altsetting before initializing sample rate
authorTakashi Iwai <tiwai@suse.de>
Mon, 23 Nov 2020 08:53:23 +0000 (09:53 +0100)
committerTakashi Iwai <tiwai@suse.de>
Mon, 23 Nov 2020 14:14:00 +0000 (15:14 +0100)
Setting the active altsetting at changing sample rate seems
unrecommended.  The host should deselect the altsetting at first
before that, then select it again.

Tested-by: Keith Milner <kamilner@superlative.org>
Tested-by: Dylan Robinson <dylan_robinson@motu.com>
Link: https://lore.kernel.org/r/20201123085347.19667-18-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/usb/stream.c

index 816fd3e..4501e04 100644 (file)
@@ -1223,9 +1223,10 @@ static int __snd_usb_parse_audio_interface(struct snd_usb_audio *chip,
                }
 
                /* try to set the interface... */
-               usb_set_interface(chip->dev, iface_no, altno);
+               usb_set_interface(chip->dev, iface_no, 0);
                snd_usb_init_pitch(chip, iface_no, alts, fp);
                snd_usb_init_sample_rate(chip, iface_no, alts, fp, fp->rate_max);
+               usb_set_interface(chip->dev, iface_no, altno);
        }
        return 0;
 }