[alsa-devel] Per board ucm files on x86?
Hans de Goede
hdegoede at redhat.com
Mon Dec 11 13:30:35 CET 2017
Hi All,
This weekend I've created a modified ucm config based on:
https://github.com/plbossart/UCM/tree/master/chtrt5645
For a board which has a single speaker connected to the
left channel (standard mono speaker setup) and a stereo
headphone jack with working jack detection.
I've been unable to come up with a ucm file which allows
selecting between a "Stereo Speaker + Headphone" vs
"Mono Speaker + Headphone" output profile.
https://github.com/plbossart/UCM/tree/master/byt-rt5640
has "Mono Speaker", "Stereo Speaker" and "Headphone"
profiles but does not auto-switch between Headphone
and speaker based on jack detection, I've been unable to
allow selecting either stereo or mono speaker while
keeping auto-switching to/from the headphones.
But thinking more about this I don't think that having
"Stereo Speaker + Headphone" and "Mono Speaker + Headphone"
profiles is the answer. Profiles make sense on machines with
a bunch of outputs where we don't no what the user is going
to plug in, but in this case the stereo vs mono speaker
distinction is a clear property of the device, which we
should IMHO autodetect based on the device-model.
So I think we need a way to have different ucm files per board,
so instead of loading /usr/share/ucm/chtrt5645/*.conf on my
device, alsa should try to load /usr/share/ucm/chtrt5645-<boardname>/*.conf
Specifically I'm thinking about using udev + hwdb (dmi string)
matching to set an ALSA_UCM_NAME udev property.
If the consensus is that this is a good idea I can take a shot
at writing patches for this (in my spare time mostly), the
downside of this approach is it would cause a dependency on
libudev for the alsa ucm code.
Regards,
Hans
More information about the Alsa-devel
mailing list