summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Drabik <drabik.p@gmail.com>2026-08-31 21:58:55 +0200
committerTakashi Iwai <tiwai@suse.de>2026-09-01 12:39:37 +0200
commitc53f5bfc370046e098fe04dc045e9e3cf19df609 (patch)
tree10d923d8990118f615e716a74aa2819587ec6f65
parent32d7226e6105c257ef7b3d0ec819f11a81f53b6d (diff)
downloadlinux-next-c53f5bfc370046e098fe04dc045e9e3cf19df609.tar.gz
linux-next-c53f5bfc370046e098fe04dc045e9e3cf19df609.zip
ALSA: usb-audio: Add mixer map quirk for Audient iD24
The Audient iD24 (2708:000d) exposes feature unit 12 as a 4-channel "Speaker Playback Volume" control (cmask 0xf, -127..0 dB). The device does not actually apply this volume to all of its output channels: the left main output ignores it and stays at 0 dB, while the right main output honors it. When userspace (PulseAudio / PipeWire in a stereo profile) adopts this control as the master playback volume, any setting below maximum produces a stereo imbalance on the main outputs. This was verified against the device's internal meters: with the control set to 107/127 (-20 dB) on all four channels and a digitally identical L/R sine played back, both DAW return meters read the same level while the right main output metered exactly 20 dB below the left. Restoring the control to 127 (0 dB) restored the balance. Rename the control to "Monitor Mix Playback" so that it is not picked up as the stream's master volume control, in line with similar quirks for other devices. The control remains accessible for manual use. Signed-off-by: Peter Drabik <drabik.p@gmail.com> Link: https://patch.msgid.link/20260831195855.1836617-1-drabik.p@gmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--sound/usb/mixer_maps.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/sound/usb/mixer_maps.c b/sound/usb/mixer_maps.c
index ace4ccad8f51..69093c666282 100644
--- a/sound/usb/mixer_maps.c
+++ b/sound/usb/mixer_maps.c
@@ -519,6 +519,19 @@ static const struct usbmix_name_map audient_id14_map[] = {
};
/*
+ * Audient iD24: feature unit 12 ("Speaker Playback Volume") sits in the
+ * monitor-mixer branch and does not apply volume to all of its channels;
+ * when userspace adopts it as the master playback volume, the left main
+ * output stays at 0 dB while the right one is attenuated, producing a
+ * stereo imbalance. Rename it so that it is not picked up as the
+ * stream's master volume control.
+ */
+static const struct usbmix_name_map audient_id24_map[] = {
+ { 12, "Monitor Mix Playback" }, /* FU, partial channel coverage */
+ {}
+};
+
+/*
* Control map entries
*/
@@ -612,6 +625,11 @@ static const struct usbmix_ctl_map usbmix_ctl_maps[] = {
.map = audient_id14_map,
},
{
+ /* Audient iD24 */
+ .id = USB_ID(0x2708, 0x000d),
+ .map = audient_id24_map,
+ },
+ {
/* KEF X300A */
.id = USB_ID(0x27ac, 0x1000),
.map = scms_usb3318_map,