Re: on-board sound on ASUS TRX-40

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Oct 22, 2020 at 06:09:48PM +0200, Takashi Iwai wrote:
> On Thu, 22 Oct 2020 17:49:59 +0200,
> Dan Aloni wrote:
> > 
> > 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.
> 
> Could you show the patch you've tried?  Fitting the above into two
> tables should be straightforward.

Well I have almost zero familiarity with the code base, so it's really
not trivial to me. I still have gaps. Please explain:

- Maybe I conflated UnitId and TerminalId, when analyzing `lsusb -v`,
  are these both referring to units?
- I assume bSourceId refers to another descriptor UnitId, is that right?
- Out of the 18 possible entries in `usbmix_name_map` in this case how
  it is decided to omit certain input and output terminals? Should all
  feature units are necessarily described?
- What is the purpose of `usbmix_connector_map` array, and how to decide
  to add entries to this array? Is it done relative to `usbmix_name_map`
  omissions?
- Is there a tool that can better describe the topology based on `lsusb
  -v` output?
- Seems that `mixer_maps.c` compensates for knowledge not obtained from
  `lsusb -v`, or all of it can be obtained?

Thanks.

-- 
Dan Aloni



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux