]> git.baikalelectronics.ru Git - kernel.git/commit
ALSA: usb-audio: Add support for Lenovo ThinkStation P620
authorKai-Heng Feng <kai.heng.feng@canonical.com>
Mon, 3 Aug 2020 14:26:08 +0000 (22:26 +0800)
committerTakashi Iwai <tiwai@suse.de>
Mon, 3 Aug 2020 14:31:20 +0000 (16:31 +0200)
commitb68d13c15945f462483af9edec912f85ecfe4469
treed2b46d349b1e92532375e5f564026d924402822c
parentab7b8b2b5acc167d007cf8266f2a3c35774becc9
ALSA: usb-audio: Add support for Lenovo ThinkStation P620

Lenovo ThinkStation P620 is like other TRX40 boards, is equipped with
two USB audio cards.

USB device (17aa:104d) provides functionality for Internal Speaker and
Front Headset. It's UAC v2, so it supports insertion control (jack
detection). However, when trying to get the connector status of the
speaker, an error occurs:
[    5.787405] usb 3-1: cannot get connectors status: req = 0x81, wValue = 0x200, wIndex = 0x1000, type = 0

Since the insertion control works perfectly for the headset, the error
for speaker is probably casued by connecting internally. So let's relax
the error for a bit if it's a speaker, and always reports it's connected.

USB device (17aa:1046) is for rear Line-in, Line-out and Microphone.
The insertion control works for all three jacks. However, there's an
Function Unit that doesn't work:
[    5.905415] usb 3-6: cannot get ctl value: req = 0x83, wValue = 0xc00, wIndex = 0x1300, type = 4
[    5.905418] usb 3-6: 19:0: cannot get min/max values for control 12 (id 19)

So turn off the FU to avoid the error.

Also, add specific card name for both devices, so userspace can easily
indentify both cards.

Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Link: https://lore.kernel.org/r/20200803142612.17156-1-kai.heng.feng@canonical.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/usb/mixer.c
sound/usb/mixer_maps.c
sound/usb/quirks-table.h