mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-16 08:44:21 +08:00
ALSA: usb-audio: Set up (implicit) sync for Saffire 6
commite0469d6581
upstream. Focusrite Saffire 6 has fixed audioformat quirks with multiple endpoints assigned to a single altsetting. Unfortunately the generic parser couldn't detect the sync endpoint correctly as the implicit sync due to the missing EP attribute bits. In the former kernels, it used to work somehow casually, but it's been broken for a while after the large code change in 5.11. This patch cures the regression by the following: - Allow the static quirk table to provide the sync EP information; we just need to fill the fields and let the generic parser skipping parsing if sync_ep is already set. - Add the sync endpoint information to the entry for Saffire 6. Fixes:7b0efea4ba
("ALSA: usb-audio: Add missing ep_idx in fixed EP quirks") Reported-and-tested-by: André Kapelrud <a.kapelrud@gmail.com> Cc: <stable@vger.kernel.org> Link: https://lore.kernel.org/r/20220606160910.6926-3-tiwai@suse.de Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
2ee0b454fd
commit
04f79360c6
@ -291,6 +291,9 @@ int snd_usb_audioformat_set_sync_ep(struct snd_usb_audio *chip,
|
||||
bool is_playback;
|
||||
int err;
|
||||
|
||||
if (fmt->sync_ep)
|
||||
return 0; /* already set up */
|
||||
|
||||
alts = snd_usb_get_host_interface(chip, fmt->iface, fmt->altsetting);
|
||||
if (!alts)
|
||||
return 0;
|
||||
|
@ -2658,7 +2658,12 @@ YAMAHA_DEVICE(0x7010, "UB99"),
|
||||
.nr_rates = 2,
|
||||
.rate_table = (unsigned int[]) {
|
||||
44100, 48000
|
||||
}
|
||||
},
|
||||
.sync_ep = 0x82,
|
||||
.sync_iface = 0,
|
||||
.sync_altsetting = 1,
|
||||
.sync_ep_idx = 1,
|
||||
.implicit_fb = 1,
|
||||
}
|
||||
},
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user