summaryrefslogtreecommitdiffstats
path: root/sound/usb/stream.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2020-11-23 09:53:23 +0100
committerTakashi Iwai <tiwai@suse.de>2020-11-23 15:14:00 +0100
commitc7f902015e1e86117e6cd3dde17d5964d88a9559 (patch)
treed1b377ee0377c77e14433581be6ad95b593aa365 /sound/usb/stream.c
parentALSA: usb-audio: Add snd_usb_get_host_interface() helper (diff)
downloadlinux-c7f902015e1e86117e6cd3dde17d5964d88a9559.tar.xz
linux-c7f902015e1e86117e6cd3dde17d5964d88a9559.zip
ALSA: usb-audio: Don't set altsetting before initializing sample rate
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>
Diffstat (limited to 'sound/usb/stream.c')
-rw-r--r--sound/usb/stream.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sound/usb/stream.c b/sound/usb/stream.c
index 816fd3e5aada..4501e042a944 100644
--- a/sound/usb/stream.c
+++ b/sound/usb/stream.c
@@ -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;
}