As more and more device-specific workarounds came up and gathered in various places, it becomes harder to manage. Now it's time to clean up and collect workarounds more consistently and make them more easily applicable. This patch set introduces a new bitmap flags, quirk_flags, to contain various device-specific quirks. Those are separate one from the quirks in quirks-table.h; the quirks-table.h entries are for more intrusive stuff that needs the descriptor override, while the new quirk_flags is for easier ones that are tied with the vendor:product IDs. Takashi === Takashi Iwai (15): ALSA: usb-audio: Introduce quirk_flags field ALSA: usb-audio: Move media-controller API quirk into quirk_flags ALSA: usb-audio: Move txfr_quirk handling to quirk_flags ALSA: usb-audio: Move tx_length quirk handling to quirk_flags ALSA: usb-audio: Move playback_first flag into quirk_flags ALSA: usb-audio: Move clock setup quirk into quirk_flags ALSA: usb-audio: Move ITF-USB DSD quirk handling into quirk_flags ALSA: usb-audio: Move control message delay quirk into quirk_flags ALSA: usb-audio: Move interface setup delay into quirk_flags ALSA: usb-audio: Move rate validation quirk into quirk_flags ALSA: usb-audio: Move autosuspend quirk into quirk_flags ALSA: usb-audio: Move ignore_ctl_error check into quirk_flags ALSA: usb-audio: Move generic DSD raw detection into quirk_flags ALSA: usb-audio: Add quirk_flags module option ALSA: doc: Add the description of quirk_flags option for snd-usb-audio Documentation/sound/alsa-configuration.rst | 26 +- sound/usb/card.c | 42 ++- sound/usb/clock.c | 15 +- sound/usb/endpoint.c | 14 +- sound/usb/format.c | 6 +- sound/usb/implicit.c | 6 +- sound/usb/mixer.c | 6 +- sound/usb/mixer.h | 3 +- sound/usb/mixer_maps.c | 22 -- sound/usb/quirks-table.h | 70 +--- sound/usb/quirks.c | 359 +++++++++++---------- sound/usb/quirks.h | 5 +- sound/usb/stream.c | 4 +- sound/usb/usbaudio.h | 65 +++- 14 files changed, 341 insertions(+), 302 deletions(-) -- 2.26.2