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>
Peter Ujfalusi [Tue, 10 Dec 2024 09:04:31 +0000 (11:04 +0200)]
ucm2: sof-soundwire: Correct FixedBootSequence for dmic info
Replace the curly brackets with square brackets.
The curly ones break the FixedBootSequence parsing by resetting the
sequence.
If the /var/lib/alsa/card0.conf.d is not present then UCM will fail because
all sequences before the dmic is lost, including the card-init:
# alsactl init
alsa-lib main.c:619:(execute_cfgsave) unable to open file '/var/lib/alsa/card0.conf.d/42-sof-hdmi.conf': No such file or directory
alsa-lib main.c:2456:(set_fixedboot_user) Unable to execute force boot sequence
The full sequence supposed to be:
card-init
ctl-remap
cs42l43
dmic
hdmi
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/485 Fixes: 9fa70add7638 ("sof-hda-dsp,sof-soundwire: add CaptureMicInfoFile fields for dmics") Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Jaroslav Kysela [Wed, 4 Dec 2024 09:20:51 +0000 (10:20 +0100)]
sof-hda-dsp: Add back missing .conf suffix for product/user specific configs
Fixes: 6397c66 ("sof-hda-dsp: Fix the case where sysfs dmi product_name attribute is not set") Closes: https://github.com/alsa-project/alsa-ucm-conf/issues/482 Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Charles Keepax [Wed, 20 Nov 2024 10:06:06 +0000 (10:06 +0000)]
sof-soundwire: cs42l43: Correct CapturePCM and routing
For headset microphone capture the correct PCM device to use is
"hw:${CardId},1", "hw:${CardId},4" is for built in microphone capture.
Adjust the routing as well since :0,1 is connected to data port 2 on the
codec.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/466 Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Peter Ujfalusi [Tue, 19 Nov 2024 09:51:15 +0000 (11:51 +0200)]
sof-soundwire: cs42l43-spk: Correct PlaybackPCM and routing
For speaker the correct PCM device to use is "hw:${CardId},2", the
"hw:${CardId},0" is for headset playback.
Adjust the routing as well since with :0,2 the DP6RX1/2 needs to be
selected for the speaker.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/465 Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Fixes: 13022a97711d ("sof-hda-dsp: Fix the case where sysfs dmi
sys_vendor attribute is not set")
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/463 Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Zoran Zhan [Fri, 2 Aug 2024 06:12:18 +0000 (14:12 +0800)]
ucm2: MediaTek: mt8395-evk: Add dynamic configuration for
If mt8395-evk doesn't load the HDMI/DP dtbo, the 'unknown'
available status will be shown on the Ubuntu GNOME.
To solve this issue, add the dynamic configuration to detect
whether the system is loading HDMI/DP dtbo or not.
The HDMI/DP device would be configured only if the related
dtbo has been loaded by the system.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/456 Signed-off-by: Zoran Zhan <zoran.zhan@mediatek.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Zoran Zhan [Fri, 2 Aug 2024 06:10:57 +0000 (14:10 +0800)]
ucm2: MediaTek: mt8390-evk: Add dynamic configuration for
If mt8390-evk doesn't load the HDMI/DP dtbo, the 'unknown'
available status will be shown on the Ubuntu GNOME.
To solve this issue, add the dynamic configuration to detect
whether the system is loading HDMI/DP dtbo or not.
The HDMI/DP device would be configured only if the related
dtbo has been loaded by the system.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/456 Signed-off-by: Zoran Zhan <zoran.zhan@mediatek.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Zoran Zhan [Fri, 2 Aug 2024 06:03:04 +0000 (14:03 +0800)]
ucm2: MediaTek: mt8370-evk: Add dynamic configuration for
If mt8370-evk doesn't load the HDMI/DP dtbo, the 'unknown'
available status will be shown on the Ubuntu GNOME.
To solve this issue, add the dynamic configuration to detect
whether the system is loading HDMI/DP dtbo or not.
The HDMI/DP device would be configured only if the related
dtbo has been loaded by the system.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/456 Signed-off-by: Zoran Zhan <zoran.zhan@mediatek.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
The lazy include of the four codec initialisation files are incorrectly
specified using the same identifier which means that only the last one
is actually included.
This specifically means that the Speakers and Headphone stereo mixer
elements are never defined and cannot be used for hardware volume
control.
The default Speaker digital volume is also never set by the BootSequence
as intended.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/454 Signed-off-by: Johan Hovold <johan+linaro@kernel.org> Signed-off-by: Jaroslav Kysela <perex@perex.cz>