linux/sound/usb
Mikhail Gavrilov e93bb6f3ac ALSA: usb-audio: Add GET_SAMPLE_RATE quirk for C-Media CM6206
The C-Media CM6206 (0d8c:0102) truncates the three-byte sample rate it
returns for UAC_GET_CUR to its two low bytes.  After the rate has been
set to 96000 (0x017700) the device reports back 30464 (0x007700).

At probe time the driver initializes every altsetting to its maximum
rate, so altsetting 5 is set to 96000 and the warning appears on each
plug-in, before anything has opened the device:

  usb 3-1.3: 1:5 Set sample rate 96000, clock 0
  usb 3-1.3: current rate 30464 is different from the runtime rate 96000

That altsetting is the one parse_audio_format_rates_v1() already fixes
up for this chip, so this affects every CM6206.

Only the read-back is broken, the rate itself is applied: a 1 kHz sine
rendered at 96 kHz is recovered at 1000.2 Hz, and a silent fallback to
48000 would have been reported as 0x00bb80 rather than as the low half
of the requested rate.

Add a QUIRK_FLAG_GET_SAMPLE_RATE entry for the device so the read-back
is skipped.  Setting the same flag through the quirk_flags module
parameter makes the warning disappear while the 96000 init still
happens.

Signed-off-by: Mikhail Gavrilov <mikhail.v.gavrilov@gmail.com>
Link: https://patch.msgid.link/20260728222239.62749-1-mikhail.v.gavrilov@gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
History 2026-07-29 08:31:42 +02:00
..
6fire ALSA: 6fire: Fix UAF at error handling during probe 2026-07-26 10:02:01 +02:00
bcd2000 ALSA: bcd2000: Use guard() for mutex locks 2025-09-01 13:54:06 +02:00
caiaq ALSA: usb-audio: caiaq: validate EP1 reply lengths 2026-07-05 12:14:19 +02:00
hiface Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
line6 ALSA: usb-audio/line6: Add support for POD HD PRO 2026-04-21 10:07:45 +02:00
misc ALSA: ua101: Reject too-short USB descriptors 2026-05-19 08:08:41 +02:00
qcom ALSA: usb-audio: qcom: Free QMI handle 2026-06-25 13:56:21 +02:00
usx2y ALSA: usx2y: us144mkii: fix work UAF on disconnect 2026-07-01 13:54:23 +02:00
card.c ALSA: usb-audio: Use the new helper for shutdown refcount 2026-06-11 09:34:09 +02:00
card.h ALSA: usb-audio: Optimize the copy of packet sizes for implicit fb handling 2026-02-16 15:13:35 +01:00
clock.c ALSA: usb-audio: add clock quirk for Motu 1248 2026-05-04 17:50:02 +02:00
clock.h ALSA: usb-audio: Constify audioformat pointer references 2020-11-23 15:15:36 +01:00
endpoint.c ALSA: usb-audio: Clamp frame size in implicit-feedback mode 2026-07-29 08:25:27 +02:00
endpoint.h ALSA: usb-audio: Remove unused function declaration 2023-08-01 16:56:57 +02:00
fcp.c ALSA: FCP: Fix NULL pointer dereference in interface lookup 2026-06-26 07:46:59 +02:00
fcp.h ALSA: FCP: Add Focusrite Control Protocol driver 2025-01-18 12:00:38 +01:00
format.c ALSA: usb-audio: stop parsing UAC2 rates at MAX_NR_RATES 2026-04-16 10:33:19 +02:00
format.h ALSA: usb: initial USB Audio Device Class 3.0 support 2018-03-21 11:46:33 +01:00
helper.c ALSA: usb-audio: Export USB SND APIs for modules 2025-04-11 13:02:30 +02:00
helper.h ALSA: usb-audio: Support multiple control interfaces 2024-08-12 16:17:46 +02:00
implicit.c ALSA: usb-audio: Add implicit feedback quirk for RODE AI-1 2025-06-02 16:50:04 +02:00
implicit.h ALSA: usb-audio: Add new quirk FIXED_RATE for JBL Quantum810 Wireless 2022-12-22 09:13:54 +01:00
Kconfig ALSA:usb:qcom: add AUXILIARY_BUS to Kconfig dependencies 2026-03-18 12:36:39 +01:00
Makefile ALSA: usb-audio: qcom: Introduce QC USB SND offloading support 2025-04-11 13:02:32 +02:00
media.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
media.h media: sound/usb: Use Media Controller API to share media resources 2019-04-22 11:21:06 -04:00
midi.c ALSA: usb-audio: fix OOB write in snd_usbmidi_akai_output() 2026-07-26 09:49:26 +02:00
midi.h ALSA: usb-audio: Manage number of rawmidis globally 2023-05-23 12:11:00 +02:00
midi2.c ALSA: usb-audio: fix use-after-free in ump_to_endpoint() 2026-07-26 08:58:25 +02:00
midi2.h ALSA: usb-audio: USB MIDI 2.0 UMP support 2023-05-23 12:11:02 +02:00
mixer.c ALSA: usb-audio: Fix imbalance per-channel volume of sticky mixers 2026-07-06 10:22:43 +02:00
mixer.h ALSA: usb-audio: Add QUIRK_FLAG_MIXER_GET_CUR_BROKEN 2026-05-31 17:48:48 +02:00
mixer_maps.c ALSA: usb-audio: Add quirk for Corsair Virtuoso (later revision) 2026-07-28 18:30:43 +02:00
mixer_quirks.c ALSA: usb-audio: fix stack info leak in RME Digiface status 2026-07-26 09:05:59 +02:00
mixer_quirks.h ALSA: usb-audio: Drop CONFIG_PM ifdefs 2021-12-06 10:19:40 +01:00
mixer_s1810c.c ALSA: usb-audio: add Studio 1824 support 2026-03-09 13:00:57 +01:00
mixer_s1810c.h ALSA: usb-audio: Add support for Presonus Studio 1810c 2020-02-15 09:46:16 +01:00
mixer_scarlett.c ALSA: usb-audio: Propagate errors in scarlett_ctl_enum_put() 2026-04-27 13:44:48 +02:00
mixer_scarlett.h ALSA: usb-audio: add mixer support for Focusrite Forte 2026-01-27 09:58:50 +01:00
mixer_scarlett2.c Revert "ALSA: scarlett2: Fix 2i2 Gen 4 direct monitor gain on firmware 2417" 2026-05-26 08:00:51 +02:00
mixer_scarlett2.h ALSA: scarlett2: Rename scarlett_gen2 to scarlett2 2023-10-27 11:22:59 +02:00
mixer_us16x08.c ALSA: usb-audio: Update US-16x08 EQ/comp shadow state after successful writes 2026-04-27 13:44:49 +02:00
mixer_us16x08.h ALSA: usb: Constify snd_kcontrol_new items 2020-01-03 09:24:34 +01:00
pcm.c ALSA: usb-audio: Use the right limit for PCM OOB check 2026-01-21 09:22:12 +01:00
pcm.h ALSA: usb-audio: Export USB SND APIs for modules 2025-04-11 13:02:30 +02:00
power.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
power.h ALSA: usb-audio: Support multiple control interfaces 2024-08-12 16:17:46 +02:00
proc.c ALSA: usb-audio: Replace manual mutex/spinlock with guard() 2025-08-12 08:36:17 +02:00
proc.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
quirks-table.h ALSA: usb-audio: Add quirk for YAMAHA CDS3000 2026-06-18 17:48:56 +02:00
quirks.c ALSA: usb-audio: Add GET_SAMPLE_RATE quirk for C-Media CM6206 2026-07-29 08:31:42 +02:00
quirks.h ALSA: usb-audio: improve module param quirk_flags 2025-09-28 08:35:29 +02:00
stream.c ALSA: usb-audio: Avoid potential endless loop in convert_chmap_v3() 2026-04-28 08:14:21 +02:00
stream.h ALSA: usb-audio: Fix potential leak of pd at parsing UAC3 streams 2026-04-28 08:13:50 +02:00
usbaudio.h ALSA: usb-audio: Use the new helper for shutdown refcount 2026-06-11 09:34:09 +02:00
validate.c ALSA: usb-audio: Use correct version for UAC3 header validation 2026-02-26 07:37:29 +01:00