Zoran Zhan [Wed, 7 May 2025 06:41:14 +0000 (14:41 +0800)]
ucm2: MediaTek: mt8365-evk: Add SOF support
Add support for MT8365 EVK with SOF enabled. When SOF is
disabled, the "HiFi" use case is used; when SOF is enabled,
the "SOF" use case is used.
The main difference compared to the UCM with SOF disabled is
the device number for playback and capture, which now uses the
PCMs for SOF instead.
Define these parameters as variables for each case (with and
without SOF), and move the common initialization to init.conf,
so the UCM can be shared by both configurations.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/583 Signed-off-by: Zoran Zhan <zoran.zhan@mediatek.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Harald Sitter [Sat, 21 Jun 2025 15:10:20 +0000 (17:10 +0200)]
ucm2: USB-Audio: Add Teufel CAGE PRO
two stereo outputs: one for "game" and one for "chat".
one mono input
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/582 Signed-off-by: Harald Sitter <sitter@kde.org> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Shuming Fan [Fri, 6 Jun 2025 04:47:08 +0000 (12:47 +0800)]
ucm2: sof-soundwire: add rt712-vb device
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/573 Signed-off-by: Shuming Fan <shumingf@realtek.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Peter Ujfalusi [Thu, 12 Jun 2025 13:33:01 +0000 (16:33 +0300)]
UCM2: Intel: sof-hda-dsp: HiFi: Fix handling of mono DMICs
When a single DMIC is present in the system we need to set the
CaptureChannels to 1 since the PCM device only supports mono, PA/PW will
reject the profile since it cannot open the DMIC PCM device.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/579 Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Hiago De Franco [Mon, 12 May 2025 16:57:32 +0000 (13:57 -0300)]
ucm2: IO-Boards: Toradex: smarc: add support
Add support for Toradex SMARC Development board, using the WM8904 audio
codec.
This is a carrier board for the Toradex SMARC family, where any SMARC
SoM can be connected to it, therefore this is being added to the
IO-Boards instead of a specific hardware vendor.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/562 Signed-off-by: Hiago De Franco <hiago.franco@toradex.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
A recent change renamed the internal microphones device from "DMic01" to
"Mic", but the latter name is already used by the headset microphone so
this breaks the internal microphones on the Lenovo ThinkPad X13s.
Rename the headset microphone device so that the names are unique and
fix up the jack hw mute property which is still using the old name.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/563 Fixes: ea7a065a7b50 ("ucm: fix SectionDevice identifiers") Signed-off-by: Johan Hovold <johan+linaro@kernel.org> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/557 Signed-off-by: Markus Parviainen <mrksprvn@gmail.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Konrad Dybcio [Mon, 14 Apr 2025 18:47:38 +0000 (20:47 +0200)]
ucm2: Qualcomm: Add Surface Laptop 7
2 speakers, 2 dmics, combo jack, just like the T14s - reuse its
configuration
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/546 Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Konrad Dybcio [Mon, 14 Apr 2025 18:47:38 +0000 (20:47 +0200)]
ucm2: Qualcomm: x1e80100: Also match DMI board name
The Surface Laptop 7 only says "Microsoft Corporation" and "Surface"
in the board_vendor and product_family fields respectively. Add another
field to match on.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/546 Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
USB-Audio: Add support of HyperX SoloCast (USB ID 03f0:0b8b)
Support of
- volume control
- un/mute control
PS: About un/mute control - only from PC to Mic, vise versa does not work - like when you
un/mute Mic on PC it works as expected (even LED show actual status) but when you click
button on Mic side it does not reflect on PC side.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/545 Signed-off-by: "serhii.n" <serhii.n@thescimus.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Add a Regex string, seems compatible with Lenovo T14s
x2 speakers, x2 DMICs, x3 DP (x2 USB-C, x1 DP->HDMI), headphone jack
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/544 Signed-off-by: Aleksandrs Vinarskis <alex.vinarskis@gmail.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Peter Ujfalusi [Fri, 4 Apr 2025 08:02:39 +0000 (11:02 +0300)]
ucm2: sof-soundwire: Correct include file path for dsp.conf
The file path must be given as absolut and not relative, otherwise the
dsp.conf file will not be found:
$ alsaucm dump text
ALSA lib utils.c:364:(uc_mgr_config_load_into) could not open configuration file /usr/share/alsa/ucm2/conf.d/sof-soundwire/../Intel/sof-hda-dsp/dsp.conf
ALSA lib parser.c:78:(uc_mgr_config_load_file) error: failed to open file /usr/share/alsa/ucm2/conf.d/sof-soundwire/../Intel/sof-hda-dsp/dsp.conf: -2
ALSA lib main.c:1554:(snd_use_case_mgr_open) error: failed to import hw:0 use case configuration -2
alsaucm: error failed to open sound card hw:0: No such file or directory
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/542 Fixes: c9d1f7eafa6c ("UCM2: sof-soundwire: Enable DRC and equalizers for") Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Stefan Binding [Mon, 31 Mar 2025 09:34:30 +0000 (10:34 +0100)]
sof-soundwire: Add LED support for cs35l56 amplifiers
Systems may have up to 8 CS35L56 amplifiers, and each amplifier should
be attached to the speaker LED. A mapped Playback switch is required to
ensure all amps are muted and unmute appropriately.
Shuming Fan [Mon, 24 Mar 2025 06:43:44 +0000 (14:43 +0800)]
sof-soundwire: rt1318: add playback control switch
This patch defines 'rt1318-1 DAC' as PlaybackMixerElem when equipped with only one amp
and defines a remapped one 'rt1318 DAC Playback Switch' when using two amps.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/525 Signed-off-by: Shuming Fan <shumingf@realtek.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Add support for MT8390 EVK with the SOF enabled. The only differences
compared to the UCM with SOF disabled is the device number for playback
and capture, which uses the PCMs for the SOF instead, and the number of
channels for capture, which is stereo rather than mono.
Define those parameters as variables for each case, with and without
SOF, and move the common intialization to an init.conf, so the UCM can
be shared by both.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/513 Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Mikael Voss [Thu, 13 Feb 2025 22:34:38 +0000 (23:34 +0100)]
USB-Audio: Add support for RME Fireface UCX II
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/509 Signed-off-by: Mikael Voss <mvs@nyantec.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Hiago De Franco [Thu, 10 Oct 2024 16:43:07 +0000 (13:43 -0300)]
ucm2: IO-Boards: Toradex: verdin: Add support for Toradex
Add support for the Toradex Verdin Development carrier board, using the
NAU8822 audio codec.
This is a carrier board for the Verdin family, where any Verdin SoM
(NXP, TI...) can be connected to it, therefore this is being added to
the IO-Boards instead of a specific hardware vendor.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/448 Signed-off-by: Hiago De Franco <hiago.franco@toradex.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Hiago De Franco [Thu, 10 Oct 2024 16:40:46 +0000 (13:40 -0300)]
ucm2: IO-Boards: Toradex: verdin: Add support for Toradex
Add support for the Toradex Verdin Dahlia carrier board, using the WM8904
audio codec.
This is a carrier board for the Verdin family, where any Verdin SoM
(NXP, TI...) can be connected to it, therefore this is being added to the
IO-Boards instead of a specific hardware vendor.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/448 Signed-off-by: Hiago De Franco <hiago.franco@toradex.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Hiago De Franco [Thu, 10 Oct 2024 16:29:24 +0000 (13:29 -0300)]
ucm2: IO-Boards: Toradex: apalis: Add support for Toradex
Add support for the Toradex Apalis Evaluation Board carrier board using
the NAU8822 audio codec.
This is a carrier board for the Apalis family, where any Apalis SoM
(iMX8, iMX6...) can be connected to it, therefore this is being added to
the IO-Boards instead of a specific hardware vendor.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/448 Signed-off-by: Hiago De Franco <hiago.franco@toradex.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Peter Ujfalusi [Mon, 10 Mar 2025 13:46:04 +0000 (15:46 +0200)]
ucm2: HDA: HiFi-analog/mic: Refactor the analog mic discovery
The current mic device creation works on certain machines and fails on
others. There are several places of conflicts and setups which can only
just fail, but this is mostly not an issue if the user never uses the mic,
only the speaker/headset - which, to be honest is what most of us do ;)
As an example:
The mic selection in most codecs are via enum and it is assumed to be
named 'Input Source', which is not always the case as some device uses
'Capture Source' for the control's name.
There is also different sets of mics that one can select from:
Exhibit A
numid=6,iface=MIXER,name='Input Source'
; type=ENUMERATED,access=rw------,values=1,items=2
; Item #0 'Headset Mic'
; Item #1 'Headphone Mic'
: values=1
Exhibit D (this pushes the limits... The patch will ignore item 1)
numid=6,iface=MIXER,name='Capture Source'
; type=ENUMERATED,access=rw------,values=1,items=3
; Item #0 'Internal Mic'
; Item #1 'Internal Mic 1'
; Item #2 'Mic'
: values=2
Other issue is that we have this 'Headphone Mic', which turned out to be
a 'Stereo Microphone in Headphone Jack', so if it is selected then the
Headphone cannot work, they conflict, they use the same rings for different
direction and purpose.
This patch aims to make the mic discovery a bit more deterministic and
pragmatic.
But even if the UCM creates the use case profiles correctly, it is still
up to UIs (KDE/GNOME/etc) to misunderstand how UCM presents the profiles,
what they mean and most of all what 'Mic1', `Mic2', etc is.
KDE presents the profiles as they are and user can selct between them to
pick the right combination of output and input.
GNOME goes further with simplification (and fails with it) and presents
'random' Configuration profiles for Output and Input, plus a device
selection and they do work in an interesting way. GNOME also have popup
for specifying the type of the plugged accessory, which does not worl at
all with UCM profiles.
But, this patch is meant for a small step to have clear rules based mic
presentation for HDA.
The expectation is that what have worked will work as it used to and what
did not worked should be detected and presented correctly.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/526 Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Seppo Ingalsuo [Fri, 31 Jan 2025 10:48:14 +0000 (12:48 +0200)]
UCM2: Blobs: SOF: Cleanup blob names from .blob to .bin
The configuration blobs for SOF processing components are mixed
with old filename suffix .blob and new .bin. This patch renames
for cleanup the remaining .blob files to .bin to follow the
chosen naming in SOF project.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/504 Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Charles Keepax [Thu, 6 Mar 2025 12:54:02 +0000 (12:54 +0000)]
sof-soundwire: Split cs42l43 dmic initialisation
Split the initialisation of cs42l43 into a headset part and a dmic
part. This will prevent the dmic mute controls getting attached to
the mute LED when the codec dmics are not being used.
Add UCM2 configs for the Qualcomm SM8750-MTP Board to handle:
- on-board Speakers
- Headphones speakers
- Top and Bottom on-board Microphones
Not yet implemented/tested are Headphone Microphones over USB-C port.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/498 Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Shuming Fan [Tue, 14 Jan 2025 05:46:54 +0000 (13:46 +0800)]
rt722: change output volume of headphone to 0dB
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/496 Signed-off-by: Shuming Fan <shumingf@realtek.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/495 Signed-off-by: Markus Parviainen <mrksprvn@gmail.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/492 Signed-off-by: Javier Tia <jetm@jetm.me> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Ryan Walklin [Sat, 21 Dec 2024 10:01:14 +0000 (23:01 +1300)]
sun4i-codec: add routing for headphones and internal speaker
The sun4i-codec kernel driver covers a large number of Allwinner SoCs.
The H616 codec has a single line-out route, which is used in concert
with a Toshiba mux chip to send audio to either an internal speaker or
headphone jack on a number of Anbernic handheld gaming devices.
Add a UCM configuration to allow enabling/disabling the speaker amp
depending on whether headphones are in use or not.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/491 Signed-off-by: Ryan Walklin <ryan@testtoast.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Seppo Ingalsuo [Thu, 19 Dec 2024 11:07:37 +0000 (13:07 +0200)]
UCM2: sof-soundwire: Add setup of IIR, DRC, beamformer
The SoundWire PCs with PCH-DMIC use the top level sof-soundwire.conf.
This patch adds similar Dmic0 end-point processing enable as done in
for DMIC in HDA codec PCs if the controls for processing exist.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/481 Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Seppo Ingalsuo [Tue, 17 Dec 2024 12:56:18 +0000 (14:56 +0200)]
UCM2: sof-soundwire: Add setup of IIR, DRC, beamformer
This patch enables as BootSequence the DRC and multi-microphone
beamformer processing with the supplied blobs in topology. The
enable is for defaults if there is no previous control state. The
user can permanently switch off them if needed.
If DMI ID based customization can done with scripts in
blobs/sof/product_configs or blobs/sof/user_configs. If the blob
file names are not empty the blobs are applied by UCM2 as
FixedBootSequence in every boot to replace topology defaults.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/481 Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Seppo Ingalsuo [Mon, 16 Dec 2024 13:38:44 +0000 (15:38 +0200)]
UCM2: sof-soundwire: Enable DRC and equalizers for
This patch enables SOF post-processing for soundwire speaker
output. The DRC processing is enabled as BootSequence, and
setup of DRC, IIR, and FIR equalizer blobs as FixedBootSeqeuence
by DMI ID if custom blobs have been defined for the device in
ucm2/blobs/sof/product_configs or ucm2/blobs/sof/user_configs.
The DRC can be turned off permanently by user space if not
desired since BootSequence is only used for first time UCM2
start.
The DRC, IIR, FIR blobs are set as FixedBootSequence only
if custom blobs are defined. Otherwise the blobs defined in
topology remain in use.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/481 Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Seppo Ingalsuo [Fri, 13 Dec 2024 17:30:47 +0000 (19:30 +0200)]
UCM2: Intel: sof-hda-dsp: Enable Dmic0 DRC and TDFB
This patch enables the SOF microphone capture pre-processing
features as BootSequence initial values if the controls for them
are available. If the user later switches these off, they will
remain off.
The DRC is dynamic range control that boosts the capture level,
and the TDFB (time-domain fixed beamformer) improves capture
signal-to-noise ratio for set beam angle direction. The used
0 degrees angle is defined as angle towards notebook computer
user.
The generic blobs in topology can be replaced with device
specific blobs based on DMI ID. See ucm2/blobs/sof/product_configs
and ucm2/blobs/sof/user_configs.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/481 Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
This change adds a few blobs to use with SOF TDFB beamformer
and updates the instructions how to generate the blobs in SOF.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/481 Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Seppo Ingalsuo [Thu, 12 Dec 2024 17:54:44 +0000 (19:54 +0200)]
UCM2: Intel: sof-hda-dsp: Cleanup definitions
This patch cleans up definitions in preparation to add more
controlled processing for audio endpoints.
- The algorithms names write style is aligned to e.g. "Iir" instead
of "IIR" and "Iir" to avoid mistakes from typos.
- Add prefix PostMixerAnalogPlayback to HDA analog playback
blob names to separate them from other Speaker endpoints.
- Similarly rename SofControl macro.
The functionality is not changed.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/481 Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Seppo Ingalsuo [Thu, 12 Dec 2024 17:28:34 +0000 (19:28 +0200)]
UCM2: Intel: sof-hda-dsp: Move variables defitions from
This patch moves SOF control blobs related variables set are to
a new dsp.conf that is included from top level sof-hda-dsp.conf.
The change allows to use the variables in InitBootSequence for the
controls. E.g. customize the default blobs applied based on
DMI ID of the device.
There's no change to functionality in this patch.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/481 Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>