]> www.infradead.org Git - users/hch/misc.git/commitdiff
ALSA: usb-audio: add volume quirks for MS LifeChat LX-3000
authorPauli Virtanen <pav@iki.fi>
Wed, 15 Oct 2025 19:47:10 +0000 (22:47 +0300)
committerTakashi Iwai <tiwai@suse.de>
Thu, 16 Oct 2025 09:20:55 +0000 (11:20 +0200)
ID 045e:070f Microsoft Corp. LifeChat LX-3000 Headset
has muted minimum Speaker Playback Volume, and 4 amixer steps were
observed to produce 1 actual volume step.

Apply min_mute quirk and correct res=48 -> 4*48.
Tested with the device.

Signed-off-by: Pauli Virtanen <pav@iki.fi>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/usb/mixer.c
sound/usb/quirks.c

index ae412e651faf905c9f7d600de8e19c51995cd3f9..6f00e0d5238257d18e8bf8f50807b9666213c045 100644 (file)
@@ -1147,6 +1147,14 @@ static void volume_control_quirks(struct usb_mixer_elem_info *cval,
                }
                break;
 
+       case USB_ID(0x045e, 0x070f): /* MS LifeChat LX-3000 Headset */
+               if (!strcmp(kctl->id.name, "Speaker Playback Volume")) {
+                       usb_audio_info(chip,
+                               "set volume quirk for MS LifeChat LX-3000\n");
+                       cval->res = 192;
+               }
+               break;
+
        case USB_ID(0x0471, 0x0101):
        case USB_ID(0x0471, 0x0104):
        case USB_ID(0x0471, 0x0105):
index 43793a5c3f519f408e22f6a8887b6bcc4ad11b25..dac469a8d07a6d77942961101e8b612b4d935362 100644 (file)
@@ -2153,6 +2153,8 @@ static const struct usb_audio_quirk_flags_table quirk_flags_table[] = {
        DEVICE_FLG(0x045e, 0x083c, /* MS USB Link headset */
                   QUIRK_FLAG_GET_SAMPLE_RATE | QUIRK_FLAG_CTL_MSG_DELAY |
                   QUIRK_FLAG_DISABLE_AUTOSUSPEND),
+       DEVICE_FLG(0x045e, 0x070f, /* MS LifeChat LX-3000 Headset */
+                  QUIRK_FLAG_MIXER_PLAYBACK_MIN_MUTE),
        DEVICE_FLG(0x046d, 0x0807, /* Logitech Webcam C500 */
                   QUIRK_FLAG_CTL_MSG_DELAY_1M | QUIRK_FLAG_MIC_RES_384),
        DEVICE_FLG(0x046d, 0x0808, /* Logitech Webcam C600 */