On Fri, Dec 11, 2020 at 10:06, Takashi Iwai tiwai@suse.de wrote:
On Fri, 11 Dec 2020 08:14:24 +0100, Kai-Heng Feng wrote:
Hi,
There are some UAC1 devices come with jacks, but without jack detection ability. And many USB/Thunderbolt docks are equipped with such USB device.
Userspace like PulseAudio automatically switch to USB audio when they gets plugged. However, auto-switching to UAC1 device can be problematic because it may not connected to any headset or speaker.
So I wonder what's the best way to let userspace know the USB device is a jack without jack detection ability? Through sysfs or dedicated UCM conf?
It's a good question. AFAIK, that's a long-standing problem, and most of such devices provide the jack detection via HID, which is, obviously, a completely different driver. So, if HID driver actually creates input devices, we'd need to associate them with the sound card somehow (likely in user-space). But I have no clear idea what's the best approach yet.
I didn't know that. Thanks for the info! That explains the reason why HP TBT dock can do jack detection under Windows, while it's just a UAC1 device.
Also, I'm not sure whether HID device really gives the right jack detection event. A cheap UAC1 device I have here doesn't seem to give the jack detection but only the mute/volume events, as it seems...
For the HP TBT dock I can see a plug/unplug events, from its USB HID interface.
OTOH, there are some UAC2 devices providing the jack detection in the USB-audio interface, and they seem work as is of now.
Now I know the event is from its HID interface, let me see if I can hook them together.
Kai-Heng
thanks,
Takashi