sof-hda-dsp: add workaround for speaker LED on MSI laptops
Fixes: Master Playback Switch doesn't get attached to the Mute LED
on these two platforms. This change adresses this issue.
Also fixes 0915b27a which accidentally broke dell workaround.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/716 Fixes: 0915b27 ("ucm2: use new SetLED macro to hide the implementation details") Signed-off-by: Federico Lombardo <lombardo.federico.lf@gmail.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Jaroslav Kysela [Mon, 30 Mar 2026 13:43:12 +0000 (15:43 +0200)]
github: add GitHub label automation and SOB validation workflows
This commit introduces a complete automation system for GitHub repositories
that provides automatic label-based commenting and Signed-off-by validation.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Maciej Strozek [Thu, 18 Dec 2025 09:23:56 +0000 (09:23 +0000)]
ucm2: sof-soundwire: Add support for CS42L43B variant
From UCM point of view CS42L43B codec adds 2 new decimators and removes
a control to change Decimator 1 mode from base CS42L43. Thus reuse
CS42L43 files, and guard the CS42L43B additions behind a condition
that the new Decimator controls exist.
ucm2: sof-soundwire: Add support for Cirrus Logic CS47L47
Add the sof-soundwire and codec files for the CS47L47.
This is a SDCA codec with headphone/headset and digital mic.
The configuration is based on the CS42L45 files.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/709 Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
pir0c0pter0 [Tue, 17 Mar 2026 23:52:01 +0000 (20:52 -0300)]
ucm2: Qualcomm: add ASUS Vivobook 14 (X1407QA) to x1e80100 DMI match
The ASUS Vivobook 14 X1407QA (Snapdragon X X1-26-100, x1p42100 'Purwa' die)
reports DMI product_family as 'ASUS Vivobook 14' but was not matched by the
existing regex, leaving audio non-functional.
Hardware: WCD9385 codec + 2x WSA884x speakers via SoundWire + ADSP Q6APM,
identical audio topology to the other ASUS Snapdragon X devices already matched.
DMI strings:
board_vendor: ASUSTeK COMPUTER INC.
product_family: ASUS Vivobook 14
board_name: X1407QA
product_name: ASUS Vivobook 14 X1407QA_X1407QA
Tested on Fedora 44 aarch64, kernel 6.12+.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/725 Signed-off-by: pir0c0pter0 <pir0c0pter0000@gmail.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Le Qi [Mon, 23 Mar 2026 07:20:24 +0000 (15:20 +0800)]
ucm2: da7213: Fix mic capture in HeadphoneMic2 use case
Set Mic 2 Volume to index 4 (+18 dB) and Mixin PGA Volume to index
10 (+10.5 dB) for sufficient microphone capture gain.
Remove headphone output controls (Headphone Volume, Headphone Switch,
Mixout DAC switches) as these belong to HeadphoneEnableSeq.conf and
should not be duplicated in the capture sequence.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/730 Signed-off-by: Le Qi <le.qi@oss.qualcomm.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Derek Keith [Mon, 23 Mar 2026 11:11:58 +0000 (05:11 -0600)]
USB-Audio: Scarlett 18i20 fix ADAT capture channel count for Gen 1/2
The Scarlett 18i20 Gen 1 (0x800c) and Gen 2 (0x8201) have 18 capture
channels, but the ADAT Optical Input device ("Direct 2") unconditionally
maps 8 channels (indices 12-19). Channel indices 18 and 19 exceed the
available capture channels, causing WirePlumber/PipeWire to reject the
UCM profile:
spa.alsa: Error in ALSA UCM profile for _ucm0003.hw:USB,0 (Direct2):
CaptureChannel6=18 >= CaptureChannels=18
Conditionally size the ADAT capture device based on DirectCaptureChannels:
- Gen 1/2 (18 channels): 6-channel ADAT (indices 12-17)
- Gen 3+ (20+ channels): 8-channel ADAT (indices 12-19)
Tested on a Scarlett 18i20 Gen 2 (USB1235:8201) running PipeWire 1.4
with WirePlumber on CachyOS.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/731 Signed-off-by: Derek Keith <derek@codeurge.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Use tabs instead of spaces
Reduce files
Include simple configs using new Synthax 8
Remove duplicated Comment assignment
Update Priority values
Fix regex pattern
Val Packett [Fri, 2 Jan 2026 06:13:59 +0000 (03:13 -0300)]
ucm2: codecs: lpass-wsa-macro: disable WSA_COMP
The compander does not seem to work correctly on many of the platforms
currently in use with upstream software. Particularly some very annoying
"boominess on attacks" is heard on X Elite laptops when it's on.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/670 Signed-off-by: Val Packett <val@packett.cool> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Val Packett [Fri, 2 Jan 2026 06:03:24 +0000 (03:03 -0300)]
ucm2: codecs: lpass-rx-macro: disable RX_COMP
The compander does not seem to work correctly on many of the platforms
currently in use with upstream software. Strange effects such as quiet
sounds being panned to the left channel and some "boominess on attacks"
can be heard when it's on.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/670 Signed-off-by: Val Packett <val@packett.cool> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Val Packett [Fri, 2 Jan 2026 08:16:18 +0000 (05:16 -0300)]
ucm2: codecs: wcd938x: add enable sequence with CLS_AB_LOHIFI for laptops
Laptops have A/B class amps and using H class mode results in distortion.
Create a specific sequence variant for them.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/670 Signed-off-by: Val Packett <val@packett.cool> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Val Packett [Fri, 2 Jan 2026 07:05:45 +0000 (04:05 -0300)]
ucm2: codecs: wcd939x: Use CLS_H_LOHIFI instead of CLS_H_ULP by default
The ULP mode is too weak to drive headphones, causing distortion above
30-40% volume. Switch to LOHIFI as a more reasonable default.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/670 Signed-off-by: Val Packett <val@packett.cool> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Val Packett [Fri, 2 Jan 2026 07:07:48 +0000 (04:07 -0300)]
ucm2: codecs: wcd937x: Use CLS_H_LOHIFI instead of CLS_H_ULP by default
The ULP mode is too weak to drive headphones, causing distortion above
30-40% volume. Switch to LOHIFI as a more reasonable default.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/670 Signed-off-by: Val Packett <val@packett.cool> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Val Packett [Fri, 2 Jan 2026 07:08:07 +0000 (04:08 -0300)]
ucm2: codecs: wcd934x: Use CLS_H_LOHIFI instead of CLS_H_ULP by default
The ULP mode is too weak to drive headphones, causing distortion above
30-40% volume. Switch to LOHIFI as a more reasonable default.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/670 Signed-off-by: Val Packett <val@packett.cool> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Le Qi [Thu, 12 Feb 2026 07:16:41 +0000 (15:16 +0800)]
Qualcomm: qcs615: Remove JackControl from TALOS EVK HiFi config
The EVK board does not support headset or jack detection.
Keeping JackControl entries prevents PipeWire (wpctl) from
exposing sinks and sources correctly.
Remove JackControl from Headphones and Headset devices so
PipeWire can enumerate playback and capture nodes normally.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/704 Signed-off-by: Le Qi <le.qi@oss.qualcomm.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Mikael Voss [Sun, 25 Jan 2026 14:17:34 +0000 (15:17 +0100)]
USB-Audio: correct typo in Universal Audio Volt 2 config
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/696 Signed-off-by: Mikael Voss <mvs@nyantec.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Kevin Cox [Mon, 29 Dec 2025 21:12:41 +0000 (16:12 -0500)]
Add support for the Behringer ULM200D wireless microphones.
This is a USB receiver for two wireless microphones.
Each microphone appears on a different channel.
By default these would be detected as left and right.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/669 Signed-off-by: Kevin Cox <kevincox@kevincox.ca> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Le Qi [Wed, 7 Jan 2026 03:20:54 +0000 (11:20 +0800)]
ucm2: da7213: Add ADC switch in HeadphoneMic2 sequences
Enable and disable the ADC switch in HeadphoneMic2EnableSeq.conf and
HeadphoneMic2DisableSeq.conf to ensure headset microphone audio works
properly on Talos EVK with DA7213 codec.
Without this change, the headset mic path remains muted and capture
does not function.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/682 Fixes: 5ccdd19 ("Qualcomm: qcs615: Add TALOS EVK HiFi config") Signed-off-by: Le Qi <le.qi@oss.qualcomm.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Jaroslav Kysela [Wed, 14 Jan 2026 15:51:13 +0000 (16:51 +0100)]
USB-Audio: Dualsense PS5 - add direct use case
Wine games expecting 4 channel playback stream to handle
correctly audio and haptic channel arrangment.
Add direct use case and make it as first until
user selects another profile which may cause failure
for wine games.
For a permanent solution, wine should combine 4 channel
device from the sinks created using the channel split
mechanism or add pipewire protocol. In later case, the
the straight hardware device output ports should be used.
Kellerman Rivero [Sun, 14 Dec 2025 11:29:36 +0000 (12:29 +0100)]
ucm2: Qualcomm: add Asus Vivobook 16 support
Same layout as T14s, 2 speakers, hedphone jack, DMIC
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/668 Signed-off-by: Kellerman Rivero <krsloco@gmail.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Add a new target with extended regex string. Device is mostly
compatible with Yoga Slim7x, however features only x2 not x3 DP audio
outputs (USB Type-C). As upcoming DP audio addition will require
config separation, create a dedicated config right away.
x4 speakers, x2 DMICs, x2 DP, no headphone jack/WCD codec.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/587 Signed-off-by: Aleksandrs Vinarskis <alex@vinarskis.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
In most cases its not the config name (device model name) that matters
but the hardware variation of that model. To make currently supported
devices easier to re-use, document the layout. While most configs do
not yet have DP/HDMI defined, it will matter once these are getting
added.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/587 Signed-off-by: Aleksandrs Vinarskis <alex@vinarskis.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Maciej Strozek [Fri, 2 Jan 2026 12:03:28 +0000 (12:03 +0000)]
ucm2: sof-soundwire: cs42l45: Remove outdated DisableSequence elements
cs42l45 configs has DisableSequences elements copied over from cs42l43
configuration that are no longer needed, delete them.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/671 Fixes: f47b9418c81a ("ucm2: soundwire: cs42l45: Add support for CS42L45 codec") Signed-off-by: Maciej Strozek <mstrozek@opensource.cirrus.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Maciej Strozek [Fri, 2 Jan 2026 11:47:24 +0000 (11:47 +0000)]
ucm2: sof-soundwire: cs42l43: Remove outdated DisableSequence elements
cs42l43's 'Headset Microphone' and 'Microphone' devices were both used
to control mic mute LED in the past, but this was changed [1] to only
allow the built-in microphones to control the LED. Thus clean up the
DisableSequences to remove the switching off that is no longer needed.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/671 Fixes: e87dde51d689 ("sof-soundwire: Add basic support for cs42l43") Signed-off-by: Maciej Strozek <mstrozek@opensource.cirrus.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Shuming Fan [Tue, 9 Dec 2025 07:40:49 +0000 (15:40 +0800)]
ucm2: codecs: rt722: add condition to SetLED for mic
Some SKUs don't have the internal mic, so the patch adds the condition to check
whether the SKU has the internal mic or not.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/657 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/655 Signed-off-by: Maciej Strozek <mstrozek@opensource.cirrus.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Maciej Strozek [Tue, 9 Dec 2025 13:00:44 +0000 (13:00 +0000)]
sof-soundwire: third fix for multi-codec
Ensure MultiCodec-based actions are only done when MultiCodec1 is not empty
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/658 Signed-off-by: Maciej Strozek <mstrozek@opensource.cirrus.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/644 Signed-off-by: Maciej Strozek <mstrozek@opensource.cirrus.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Hiago De Franco [Mon, 10 Nov 2025 15:09:39 +0000 (12:09 -0300)]
ucm2: IO-Boards: Toradex: aquila: add support
Add support for Toradex Aquila Development board, using the WM8904 audio
codec.
This is a carrier board for the Toradex Aquila family, where any Toradex
Aquila 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/641 Signed-off-by: Hiago De Franco <hiago.franco@toradex.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Shuming Fan [Thu, 20 Nov 2025 05:29:21 +0000 (13:29 +0800)]
rt713: add mic led support
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/649 Signed-off-by: Shuming Fan <shumingf@realtek.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Add UCM2 profile for Audient iD14 MK2 (USB ID 2708:0008) audio interface
with 6 playback and 12 capture channels. The device requires S32_LE format
for proper operation.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/651 Signed-off-by: Volodymyr Kravchenko <volandevo@gmail.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Jaroslav Kysela [Thu, 4 Dec 2025 15:54:45 +0000 (16:54 +0100)]
sof-soundwire: second fix for -sdca variants for multi-codec
Example variables:
MultiCodec1='rt713'
HeadsetCodec1='rt713-sdca'
Suggested-by: Shuming Fan <shumingf@realtek.com> Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/653 Fixes: d6a783d ("sof-soundwire: fix for -sdca variants for multi-codec") Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Jaroslav Kysela [Fri, 21 Nov 2025 13:24:05 +0000 (14:24 +0100)]
common: led.conf - don't use If.0 blocks
Compounds starting with zero (and with continuous indexes)
are handled as array type. It means that they are appended
when they are parsed multiple times. Fix this.
Jaroslav Kysela [Fri, 21 Nov 2025 13:21:36 +0000 (14:21 +0100)]
common: split.conf - don't use If.0 blocks
Compounds starting with zero (and with continuous indexes)
are handled as array type. It means that they are appended
when they are parsed multiple times. Fix this.
Closes: https://github.com/alsa-project/alsa-ucm-conf/issues/646 Signed-off-by: Jaroslav Kysela <perex@perex.cz>
USB-Audio: Add support for DualSense PS5 controller
The Sony DualSense wireless controller (PS5) has an internal mono
speaker and a microphone, in addition to a 3.5mm jack socket for
headphone output and headset microphone input.
Because this is a UAC1 device, it doesn't advertise any jack detection
capability. However, since kernel v6.18-rc1 the controller is able to
report HP & MIC insert events via HID, i.e. through a dedicated input
device managed by the hid-playstation driver. This is further used by a
quirk in the generic USB audio driver (added in v6.17), which creates
the Headphone Jack & Headset Mic Jack controls and receives hotplug
events from the HID driver via input handlers.
Moreover, the device provides haptic feedback functionality, which is
controlled by a pair of dedicated channels in a quadraphonic audio
stream.
Ensure proper support for audio switching between headphones/headset and
internal speaker/microphone by adding a UCM to split the 4.0 PCM stream
into 4 mono channels or a pair of stereo (FL+FR) channels, depending on
the active output device/profile.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/634 Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Maciej Strozek [Tue, 4 Nov 2025 11:50:26 +0000 (11:50 +0000)]
ucm2: Add setting LED Mode in SetLED macro
Add 'Mode' argument to SetLED macro in order to allow setting a
different LED mode. This will allow mute switches with inverted
values to control the LEDs with 'follow-route' option instead of
default 'follow-mute'.
The Mode argument is optional.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/637 Signed-off-by: Maciej Strozek <mstrozek@opensource.cirrus.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Shuming Fan [Mon, 3 Nov 2025 10:37:57 +0000 (18:37 +0800)]
ucm2: rt712: simplify the init settings
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/628 Signed-off-by: Shuming Fan <shumingf@realtek.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>