alsa-ucm-conf/ucm2
Jaroslav Kysela cd342774cd sof-soundwire: cleanups for codecs with multiple functions
The load mechanism assumed only one multi-codec in the system, but
we saw in #774 multiple instances of those codecs (rt1320 and rt713).

Make the load mechanism straight:

- introduce file variables
- remove shadow variables
- probe multi-codecs separately and modify the file variables
- test for duplicate file inclusion (in both sof-soundwire / HiFi configs)
- merge dmic configs for rt712,rt713 to one file

This change also improves filters for speaker/headset/mic init includes.

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/775
Link: https://github.com/alsa-project/alsa-ucm-conf/issues/774
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2026-06-12 13:38:30 +02:00
..
Allwinner ucm2: conf.d: fix h616-audio-codec symlink 2026-04-10 18:12:37 +02:00
AMD acp3x-alc5682-max98357: Fix path of HiFi.conf 2025-04-25 11:03:29 +02:00
Amlogic/p241 meson: add initial p241 support 2023-10-30 11:06:10 +01:00
blobs/sof UCM2: Blobs: SOF: Cleanup blob names from .blob to .bin 2025-03-15 15:29:47 +01:00
codecs sof-soundwire: cleanups for codecs with multiple functions 2026-06-12 13:38:30 +02:00
common common: split.conf - simplify macro call arguments 2026-02-04 18:49:44 +01:00
conf.d ucm2: MediaTek: mt8366-evk: Add alsa-ucm support 2026-05-27 13:10:00 +02:00
conf.virt.d ucm2: create empty conf.virt.d directory 2021-04-23 11:01:34 +02:00
HDA HDA: mic - use MicJackControl variable also for devices without input selector 2026-06-05 17:34:11 +02:00
Intel sof-hda-dsp: add workaround for speaker LED on MSI laptops 2026-03-30 18:40:58 +02:00
IO-Boards/Toradex ucm2: IO-Boards: Toradex: aquila: add support 2025-12-05 09:48:44 +01:00
lib ucm2: add lib / ctl-remap.conf generic device 2021-05-18 12:27:34 +02:00
MediaTek ucm2: MediaTek: mt8366-evk: Add alsa-ucm support 2026-05-27 13:10:00 +02:00
module acp: move linked configuration from modules/ to conf.d/ 2021-11-22 13:02:16 +01:00
NXP ucm2: Toradex: apalis-imx8: Set default values for input and output devices 2026-05-27 13:08:33 +02:00
OMAP/abe-twl6040 ucm2: whitespace fixes 2025-01-08 21:17:37 +01:00
platforms/bytcr ucm2: use Include (Syntax 3) 2020-06-16 13:44:03 +02:00
Qualcomm ucm2: Qualcomm: fix device ids for surface pro 12in 2026-05-27 13:10:53 +02:00
Rockchip ucm2: Rockchip: Add UCM support for ES8316 on Rock 5B 2023-08-21 15:32:13 +02:00
Samsung/snow DAISY-I2S: move to Samsung/snow/snow.conf 2020-06-25 16:40:37 +02:00
sof-soundwire sof-soundwire: cleanups for codecs with multiple functions 2026-06-12 13:38:30 +02:00
Tegra tegra-hda: Add HDMI/DP outputs 2-4 for Tegra186+ 2026-04-16 13:46:14 +02:00
USB-Audio ALC4080: fix spdif_nodev default condition 2026-06-04 14:49:11 +02:00
DEBUG.md DEBUG.md: add "Logs from PipeWire (wireplumber)" section 2025-01-29 15:33:15 +01:00
README.md fix ucm2/README.md - ALSA driver name has the precedence 2021-05-19 14:48:56 +02:00
ucm.conf ucm.conf: turn off support for V2Module and V2Name by default 2021-11-23 14:52:39 +01:00

Use Case Configuration files

Library directories:

platforms/ codecs/ dsps/

Those directories are not inspected for the list of available UCM configurations. They contain files included from other UCMs.

UCM master configuration path lookup is defined in the top level ucm.conf file. This file allows custom directory layout. The new ucm2 layout is based on the ALSA driver name with the kernel driver name as fallback. The virtual cards (no direct hw bound) lookups are placed to the separate conf.virt.d directory.

The lookup configuration:

https://git.alsa-project.org/?p=alsa-ucm-conf.git;a=blob;f=ucm2/ucm.conf

Example paths - new conf.d scheme:

  • conf.d/USB-Audio/Dell-WD15-Dock.conf -- special configuration for the Dell docking station with USB soundcard
  • conf.virt.d/TwoCardsMix.conf -- virtual UCM from two soundcards

Example paths - no conf.d scheme (may be invalidated):

  • USB-Audio/Dell-WD15-Dock.conf -- special configuration for the Dell docking station with USB soundcard
  • TwoCardsMix/TwoCardsMix.conf -- virtual UCM from two soundcards

Note: For the driver configurations, use always the ALSA driver name or the real kernel driver name - not the ucm card name configuration paths!

The kernel driver name is obtained using sysfs like (last part of the path is used from the symlink):

  /sys/class/sound/card0/device/driver

The ALSA driver name can be obtained using procfs like:

  cat /proc/asound/cards
  1 [NVidia         ]: HDA-Intel - HDA NVidia
                       HDA NVidia at 0xb5080000 irq 17

  driver name: HDA-Intel
  card short name: HDA NVidia
  card long name: HDA NVidia at 0xb5080000 irq 17

Syntax, value names

https://git.alsa-project.org/?p=alsa-lib.git;a=blob;f=include/use-case.h