On Thu, Oct 22, 2020 at 02:57:56PM +0200, Takashi Iwai wrote:
Upon plugging or unplugging the headphone, the unitid of 11 matches the unit in `trx40_mobo_connector_map`, although two events are happening - two for plug and two for unplug. There's another event for '7', and changing the second item of `static const struct usbmix_connector_map` from 11 to 7 does not seem to affect it.
Well, then I'm afraid that it has yet another mapping of the units. You'd need to create the whole map from the topology, and rewrite the connector_map as well.
Would be helpful a USB trace from KVM, when running a Windows VM that successfully manages this device following USB redirection? I can produce this given instructions, if you have them handy.
The topology is found in lsusb -v output. It's the connection among units. More importantly, the maps only care about the certain units like input/output terminals and feature unit. You can look at those and correct the corresponding unit ids.
It shows 6 triplelets of input terminal, feature unit, and output terminal, and they are structured like this:
IT[7] -> FU[19] -> OT[13] Line-in USB Streaming
IT[8] -> FU[20] -> OT[14] Rear Mic-In USB Streaming
IT[9] -> FU[21] -> OT[15] Desktop Mic USB Streaming
IT[10] -> FU[22] -> OT[16] Headphone Speaker
IT[11] -> FU[23] -> OT[17] USB Streaming Headphone
IT[12] -> FU[24] -> OT[18] USB Streaming SPDIF interface
Not sure how to make sense of that to a usbmix_name_map array and/or usbmix_connector_map array combination that works. My trials so far have not yielded a good result.