Skip to content

Commit 4020d1c

Browse files
Chris Chiutiwai
authored andcommitted
ALSA: usb-audio: mixer: volume quirk for ESS Technology Asus USB DAC
The Asus USB DAC is a USB type-C audio dongle for connecting to the headset and headphone. The volume minimum value -23040 which is 0xa600 in hexadecimal with the resolution value 1 indicates this should be endianness issue caused by the firmware bug. Add a volume quirk to fix the volume control problem. Also fixes this warning: Warning! Unlikely big volume range (=23040), cval->res is probably wrong. [5] FU [Headset Capture Volume] ch = 1, val = -23040/0/1 Warning! Unlikely big volume range (=23040), cval->res is probably wrong. [7] FU [Headset Playback Volume] ch = 1, val = -23040/0/1 Signed-off-by: Chris Chiu <[email protected]> Cc: <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Takashi Iwai <[email protected]>
1 parent 399c01a commit 4020d1c

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

sound/usb/mixer.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1182,6 +1182,14 @@ static void volume_control_quirks(struct usb_mixer_elem_info *cval,
11821182
cval->res = 384;
11831183
}
11841184
break;
1185+
case USB_ID(0x0495, 0x3042): /* ESS Technology Asus USB DAC */
1186+
if ((strstr(kctl->id.name, "Playback Volume") != NULL) ||
1187+
strstr(kctl->id.name, "Capture Volume") != NULL) {
1188+
cval->min >>= 8;
1189+
cval->max = 0;
1190+
cval->res = 1;
1191+
}
1192+
break;
11851193
}
11861194
}
11871195

0 commit comments

Comments
 (0)