diff options
-rw-r--r-- | sound/usb/mixer.c | 4 | ||||
-rw-r--r-- | sound/usb/mixer_maps.c | 9 | ||||
-rw-r--r-- | sound/usb/quirks-table.h | 13 |
3 files changed, 26 insertions, 0 deletions
diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c index eab0fd4fd7c3..6b0f3a8469ef 100644 --- a/sound/usb/mixer.c +++ b/sound/usb/mixer.c @@ -1463,6 +1463,10 @@ static int mixer_ctl_connector_get(struct snd_kcontrol *kcontrol, snd_usb_unlock_shutdown(chip); if (ret < 0) { + if (strstr(kcontrol->id.name, "Speaker")) { + ucontrol->value.integer.value[0] = 1; + return 0; + } error: usb_audio_err(chip, "cannot get connectors status: req = %#x, wValue = %#x, wIndex = %#x, type = %d\n", diff --git a/sound/usb/mixer_maps.c b/sound/usb/mixer_maps.c index 2ec484655201..c369c81e74c4 100644 --- a/sound/usb/mixer_maps.c +++ b/sound/usb/mixer_maps.c @@ -370,6 +370,11 @@ static const struct usbmix_name_map asus_rog_map[] = { {} }; +static const struct usbmix_name_map lenovo_p620_rear_map[] = { + { 19, NULL, 12 }, /* FU, Input Gain Pad */ + {} +}; + /* TRX40 mobos with Realtek ALC1220-VB */ static const struct usbmix_name_map trx40_mobo_map[] = { { 18, NULL }, /* OT, IEC958 - broken response, disabled */ @@ -573,6 +578,10 @@ static const struct usbmix_ctl_map usbmix_ctl_maps[] = { .map = trx40_mobo_map, .connector_map = trx40_mobo_connector_map, }, + { /* Lenovo ThinkStation P620 Rear */ + .id = USB_ID(0x17aa, 0x1046), + .map = lenovo_p620_rear_map, + }, { 0 } /* terminator */ }; diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h index 75368ce8febc..2617e7415296 100644 --- a/sound/usb/quirks-table.h +++ b/sound/usb/quirks-table.h @@ -2794,6 +2794,19 @@ YAMAHA_DEVICE(0x7010, "UB99"), QUIRK_RENAME_DEVICE("Rane", "SL-1") }, +/* Lenovo ThinkStation P620 Rear Line-in, Line-out and Microphone */ +{ + USB_DEVICE(0x17aa, 0x1046), + QUIRK_DEVICE_PROFILE("Lenovo", "ThinkStation P620 Rear", + "Lenovo-ThinkStation-P620-Rear"), +}, +/* Lenovo ThinkStation P620 Internal Speaker + Front Headset */ +{ + USB_DEVICE(0x17aa, 0x104d), + QUIRK_DEVICE_PROFILE("Lenovo", "ThinkStation P620 Main", + "Lenovo-ThinkStation-P620-Main"), +}, + /* Native Instruments MK2 series */ { /* Komplete Audio 6 */ |