[PATCH alsa-lib 0/5] Add generic exception mechanism for non-standard control-names

Jaroslav Kysela perex at perex.cz
Tue May 18 18:16:15 CEST 2021


Dne 04. 05. 21 v 17:47 Hans de Goede napsal(a):
> Hi Jaroslav,
> 
> On 5/4/21 10:53 AM, Jaroslav Kysela wrote:
>> Dne 03. 05. 21 v 22:52 Hans de Goede napsal(a):
>>> Hi All,
>>>
>>> This series seems to have fallen through the cracks,
>>> so here is a resend of it.
>>>
>>> Regards,
>>
>> Thank you, Hans. The problem with this implementation is that it's really card
>> specific. Also, ASoC codec drivers have usually ID names based on registers so
>> the mapping for the user is problematic anyway (the functionality is different
>> from the name or not related to the name). I'm actually evaluating another
>> solution which is more flexible:
>>
>> 1) add control remap plugin to allow the control ID remapping in the
>> alsa-lib's control API, so we can mangle those identifiers there (already
>> implemented)
>>
>> 2) add local and global alsa-lib configurations per UCM card specified in the
>> UCM configuration files; the configurations may be for both control and PCM
>> devices (restrict or set specific parameters)
> 
> Ok, thank you for working on this.
> 
>> I will notify you when I finish my tests.
> 
> Yes, please let me know when you've something ready to test, then I'll take
> a look at adding the necessary bits for the bycr-rt5640 and cht-bsw-rt567
> UCM profiles, as some control renaming is necessary to make sure that
> the hw-volume control on these devices also correctly controls the
> hw mute controls (which in turn are necessary for both full muting and
> for mute LED control).

It seems that things started to work. I pushed everything to the repos
(alsa-lib/alsa-utils/alsa-ucm-conf) and picked bits from your configs. If you
can give a look and a test, it would be nice. The changes for the specific
codecs are quite straight like:

https://github.com/alsa-project/alsa-ucm-conf/commit/2072ab794b69cdf4f070db5467387d08a65c4309

The global alsa-lib's configuration does the redirects to the hw specific
configs (if found) per card. UCM can store this "per card" configuration to
/var/lib/alsa/card<NUMBER>.conf.d tree, which allows us to define the hw
specific configuration. Both control and PCM devices can be (re)configured.

UCM was extended to allow inline the alsa-lib's configuration which can be
private to UCM or saved to a global config file (/var/lib/alsa tree for example).

By default, I made the private alsa-lib's configuration for all UCM
applications, so the users cannot break UCM with their configuration changes.

						Jaroslav

-- 
Jaroslav Kysela <perex at perex.cz>
Linux Sound Maintainer; ALSA Project; Red Hat, Inc.


More information about the Alsa-devel mailing list