History

ALSA: usb-audio: Set up (implicit) sync for Saffire 6

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.

Takashi Iwai committed 4 years ago

Commit e0469d61 parent efb75df2 files · +9 −1Browse files

Unified · Split

2 files
  1. sound/usb/pcm.c +3 −0
  2. sound/usb/quirks-table.h +6 −1
sound/usb/pcm.c+3−0
@@ -291,6 +291,9 @@ int snd_usb_audioformat_set_sync_ep(struct snd_usb_audio *chip, · 290 unmodified lines
291 bool is_playback;291 bool is_playback;
292 int err;292 int err;
293 293
294 if (fmt->sync_ep)
295 return 0; /* already set up */
296
294 alts = snd_usb_get_host_interface(chip, fmt->iface, fmt->altsetting);297 alts = snd_usb_get_host_interface(chip, fmt->iface, fmt->altsetting);
295 if (!alts)298 if (!alts)
296 return 0;299 return 0;
sound/usb/quirks-table.h+6−1
@@ -2658,7 +2658,12 @@ YAMAHA_DEVICE(0x7010, "UB99"), · 2657 unmodified lines
2658 .nr_rates = 2,2658 .nr_rates = 2,
2659 .rate_table = (unsigned int[]) {2659 .rate_table = (unsigned int[]) {
2660 44100, 480002660 44100, 48000
2661 }2661 },
2662 .sync_ep = 0x82,
2663 .sync_iface = 0,
2664 .sync_altsetting = 1,
2665 .sync_ep_idx = 1,
2666 .implicit_fb = 1,
2662 }2667 }
2663 },2668 },
2664 {2669 {

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t