Re: [PATCH] ALSA: usb-audio: Add GET_SAMPLE_RATE quirk for C-Media CM6206
Takashi Iwai <[email protected]>
| Newsgroups | org.kernel.vger.linux-sound,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
On Wed, 29 Jul 2026 00:22:39 +0200, Mikhail Gavrilov wrote: > > 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 <[email protected]> Thanks, applied now. Takashi