Question about Tegra UCMs

From: Dmitry Osipenko
Date: Tue May 18 2021 - 18:31:34 EST


Mark, could you please help me to understand the UCM naming scheme that ALSA uses..

About a year ago I tried to complain to Jaroslav Kysela in a comment to the UCM change [1] that it should be breaking the naming scheme of Tegra UCMs, but haven't got a meaningful reply and moved on to other things.

[1] https://github.com/alsa-project/alsa-ucm-conf/commit/8ff2d50745efbb6959324f672460e413f0b618b8

Today I noticed that the naming scheme changed again and I still don't understand what to do about it.

I have two devices:

1. Acer Picasso tablet that uses "Acer Iconia Tab A500 WM8903" for the card model name.

2. Google Nexus 7 that uses "ASUS Google Nexus 7 ALC5642".

Previously UCMs were picked up by pulseaudio from these paths:

1. /usr/share/alsa/ucm2/Acer Iconia Tab A500 WM8903/
2. /usr/share/alsa/ucm2/ASUS Google Nexus 7 ALC5642/

Now the lookup paths are changed to:

1. /usr/share/alsa/ucm2/Acer_Iconia_Tab/
2. /usr/share/alsa/ucm2/ASUS_Google_Nex/

Strace shows that pulseaudio searches UCMs only at these paths.

The output of /proc/asound/cards:

0 [WM8903 ]: Acer_Iconia_Tab - Acer Iconia Tab A500 WM8903
Acer Iconia Tab A500 WM8903

0 [ALC5642 ]: ASUS_Google_Nex - ASUS Google Nexus 7 ALC5642
ASUS Google Nexus 7 ALC5642

IIUC, the "ucm2/Tegra/codec_name" scheme [2] that the current ALSA UCM uses simply doesn't work at all. Is there anything on the kernel side that I could change to get a working naming scheme? If yes, I may try to do something about it in the v2, thanks in advance.

[2] https://github.com/alsa-project/alsa-ucm-conf/tree/master/ucm2/Tegra