Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package alsa-ucm-conf for openSUSE:Factory checked in at 2026-06-16 13:46:25 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/alsa-ucm-conf (Old) and /work/SRC/openSUSE:Factory/.alsa-ucm-conf.new.1981 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "alsa-ucm-conf" Tue Jun 16 13:46:25 2026 rev:40 rq:1359402 version:1.2.16.1 Changes: -------- --- /work/SRC/openSUSE:Factory/alsa-ucm-conf/alsa-ucm-conf.changes 2026-06-03 20:21:44.035474609 +0200 +++ /work/SRC/openSUSE:Factory/.alsa-ucm-conf.new.1981/alsa-ucm-conf.changes 2026-06-16 13:47:35.218606832 +0200 @@ -1,0 +2,8 @@ +Mon Jun 15 08:26:18 UTC 2026 - Takashi Iwai <[email protected]> + +- Update to alsa-ucm-conf 1.2.16.1: + a minor fix update, addressing various regressions and fixes. + For details, see: + https://www.alsa-project.org/wiki/Changes_v1.2.16_v1.2.16.1#alsa-ucm-conf + +------------------------------------------------------------------- Old: ---- alsa-ucm-conf-1.2.16.tar.bz2 alsa-ucm-conf-1.2.16.tar.bz2.sig New: ---- alsa-ucm-conf-1.2.16.1.tar.bz2 alsa-ucm-conf-1.2.16.1.tar.bz2.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ alsa-ucm-conf.spec ++++++ --- /var/tmp/diff_new_pack.umCopk/_old 2026-06-16 13:47:36.298651913 +0200 +++ /var/tmp/diff_new_pack.umCopk/_new 2026-06-16 13:47:36.302652080 +0200 @@ -17,7 +17,7 @@ Name: alsa-ucm-conf -Version: 1.2.16 +Version: 1.2.16.1 Release: 0 Summary: ALSA UCM Profiles License: BSD-3-Clause ++++++ alsa-ucm-conf-1.2.16.tar.bz2 -> alsa-ucm-conf-1.2.16.1.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.16/ucm2/HDA/HiFi-mic.conf new/alsa-ucm-conf-1.2.16.1/ucm2/HDA/HiFi-mic.conf --- old/alsa-ucm-conf-1.2.16/ucm2/HDA/HiFi-mic.conf 2026-06-01 10:04:27.000000000 +0200 +++ new/alsa-ucm-conf-1.2.16.1/ucm2/HDA/HiFi-mic.conf 2026-06-12 14:59:45.000000000 +0200 @@ -297,7 +297,7 @@ Define { DeviceMicName "Mic" DeviceMicComment "Stereo Microphone" - DeviceMicJack "Mic Jack" + DeviceMicJack "${var:MicJackControl}" DeviceMicPriority 200 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.16/ucm2/Qualcomm/x1e80100/T14s-HiFi.conf new/alsa-ucm-conf-1.2.16.1/ucm2/Qualcomm/x1e80100/T14s-HiFi.conf --- old/alsa-ucm-conf-1.2.16/ucm2/Qualcomm/x1e80100/T14s-HiFi.conf 2026-06-01 10:04:27.000000000 +0200 +++ new/alsa-ucm-conf-1.2.16.1/ucm2/Qualcomm/x1e80100/T14s-HiFi.conf 2026-06-12 14:59:45.000000000 +0200 @@ -3,13 +3,13 @@ SectionVerb { EnableSequence [ + cset "name='DISPLAY_PORT_RX_0 Audio Mixer MultiMedia1' 0" + cset "name='DISPLAY_PORT_RX_1 Audio Mixer MultiMedia1' 0" + cset "name='DISPLAY_PORT_RX_2 Audio Mixer MultiMedia1' 0" cset "name='RX_CODEC_DMA_RX_0 Audio Mixer MultiMedia1' 1" cset "name='WSA_CODEC_DMA_RX_0 Audio Mixer MultiMedia2' 1" cset "name='MultiMedia3 Mixer TX_CODEC_DMA_TX_3' 1" cset "name='MultiMedia4 Mixer VA_CODEC_DMA_TX_0' 1" - cset "name='DISPLAY_PORT_RX_0 Audio Mixer MultiMedia5' 1" - cset "name='DISPLAY_PORT_RX_1 Audio Mixer MultiMedia6' 1" - cset "name='DISPLAY_PORT_RX_2 Audio Mixer MultiMedia7' 1" ] Include.wsae.File "/codecs/wsa884x/two-speakers/DefaultEnableSeq.conf" @@ -52,9 +52,9 @@ EnableSequence [ cset "name='RX_CODEC_DMA_RX_0 Audio Mixer MultiMedia1' 1" - cset "name='DISPLAY_PORT_RX_0 Audio Mixer MultiMedia5' 0" - cset "name='DISPLAY_PORT_RX_1 Audio Mixer MultiMedia6' 0" - cset "name='DISPLAY_PORT_RX_2 Audio Mixer MultiMedia7' 0" + cset "name='DISPLAY_PORT_RX_0 Audio Mixer MultiMedia1' 0" + cset "name='DISPLAY_PORT_RX_1 Audio Mixer MultiMedia1' 0" + cset "name='DISPLAY_PORT_RX_2 Audio Mixer MultiMedia1' 0" ] DisableSequence [ @@ -111,19 +111,18 @@ EnableSequence [ cset "name='RX_CODEC_DMA_RX_0 Audio Mixer MultiMedia1' 0" - cset "name='DISPLAY_PORT_RX_0 Audio Mixer MultiMedia5' 1" - cset "name='DISPLAY_PORT_RX_1 Audio Mixer MultiMedia6' 0" - cset "name='DISPLAY_PORT_RX_2 Audio Mixer MultiMedia7' 0" + cset "name='DISPLAY_PORT_RX_0 Audio Mixer MultiMedia1' 1" + cset "name='DISPLAY_PORT_RX_1 Audio Mixer MultiMedia1' 0" + cset "name='DISPLAY_PORT_RX_2 Audio Mixer MultiMedia1' 0" ] DisableSequence [ - cset "name='DISPLAY_PORT_RX_0 Audio Mixer MultiMedia5' 0" + cset "name='DISPLAY_PORT_RX_0 Audio Mixer MultiMedia1' 0" ] Value { PlaybackPriority 200 - PlaybackPCM "hw:${CardId},4" - PlaybackChannels 2 + PlaybackPCM "hw:${CardId},0" JackControl "DP0 Jack" } } @@ -139,19 +138,18 @@ EnableSequence [ cset "name='RX_CODEC_DMA_RX_0 Audio Mixer MultiMedia1' 0" - cset "name='DISPLAY_PORT_RX_0 Audio Mixer MultiMedia5' 0" - cset "name='DISPLAY_PORT_RX_1 Audio Mixer MultiMedia6' 1" - cset "name='DISPLAY_PORT_RX_2 Audio Mixer MultiMedia7' 0" + cset "name='DISPLAY_PORT_RX_0 Audio Mixer MultiMedia1' 0" + cset "name='DISPLAY_PORT_RX_1 Audio Mixer MultiMedia1' 1" + cset "name='DISPLAY_PORT_RX_2 Audio Mixer MultiMedia1' 0" ] DisableSequence [ - cset "name='DISPLAY_PORT_RX_1 Audio Mixer MultiMedia6' 0" + cset "name='DISPLAY_PORT_RX_1 Audio Mixer MultiMedia1' 0" ] Value { PlaybackPriority 200 - PlaybackPCM "hw:${CardId},5" - PlaybackChannels 2 + PlaybackPCM "hw:${CardId},0" JackControl "DP1 Jack" } } @@ -167,19 +165,18 @@ EnableSequence [ cset "name='RX_CODEC_DMA_RX_0 Audio Mixer MultiMedia1' 0" - cset "name='DISPLAY_PORT_RX_0 Audio Mixer MultiMedia5' 0" - cset "name='DISPLAY_PORT_RX_1 Audio Mixer MultiMedia6' 0" - cset "name='DISPLAY_PORT_RX_2 Audio Mixer MultiMedia7' 1" + cset "name='DISPLAY_PORT_RX_0 Audio Mixer MultiMedia1' 0" + cset "name='DISPLAY_PORT_RX_1 Audio Mixer MultiMedia1' 0" + cset "name='DISPLAY_PORT_RX_2 Audio Mixer MultiMedia1' 1" ] DisableSequence [ - cset "name='DISPLAY_PORT_RX_2 Audio Mixer MultiMedia7' 0" + cset "name='DISPLAY_PORT_RX_2 Audio Mixer MultiMedia1' 0" ] Value { PlaybackPriority 200 - PlaybackPCM "hw:${CardId},6" - PlaybackChannels 2 + PlaybackPCM "hw:${CardId},0" JackControl "DP2 Jack" } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.16/ucm2/USB-Audio/M-Audio/Fast-Track-Ultra-HiFi.conf new/alsa-ucm-conf-1.2.16.1/ucm2/USB-Audio/M-Audio/Fast-Track-Ultra-HiFi.conf --- old/alsa-ucm-conf-1.2.16/ucm2/USB-Audio/M-Audio/Fast-Track-Ultra-HiFi.conf 2026-06-01 10:04:27.000000000 +0200 +++ new/alsa-ucm-conf-1.2.16.1/ucm2/USB-Audio/M-Audio/Fast-Track-Ultra-HiFi.conf 2026-06-12 14:59:45.000000000 +0200 @@ -19,7 +19,7 @@ } { SplitPCM { - Name "fast_track_ultra_mixed_in" + Name "fast_track_ultra_mono_in" Direction Capture Channels 1 HWChannels 8 @@ -27,6 +27,22 @@ HWChannelPos1 MONO HWChannelPos2 MONO HWChannelPos3 MONO + HWChannelPos4 MONO + HWChannelPos5 MONO + HWChannelPos6 MONO + HWChannelPos7 MONO + } + } + { + SplitPCM { + Name "fast_track_ultra_stereo_in" + Direction Capture + Channels 2 + HWChannels 8 + HWChannelPos0 FL + HWChannelPos1 FR + HWChannelPos2 FL + HWChannelPos3 FR HWChannelPos4 FL HWChannelPos5 FR HWChannelPos6 FL @@ -321,7 +337,7 @@ Comment "Input 1" Macro.pcm_split.SplitPCMDevice { - Name "fast_track_ultra_mixed_in" + Name "fast_track_ultra_mono_in" Direction Capture HWChannels 8 Channels 1 @@ -334,7 +350,7 @@ Comment "Input 2" Macro.pcm_split.SplitPCMDevice { - Name "fast_track_ultra_mixed_in" + Name "fast_track_ultra_mono_in" Direction Capture HWChannels 8 Channels 1 @@ -347,7 +363,7 @@ Comment "Input 3" Macro.pcm_split.SplitPCMDevice { - Name "fast_track_ultra_mixed_in" + Name "fast_track_ultra_mono_in" Direction Capture HWChannels 8 Channels 1 @@ -360,7 +376,7 @@ Comment "Input 4" Macro.pcm_split.SplitPCMDevice { - Name "fast_track_ultra_mixed_in" + Name "fast_track_ultra_mono_in" Direction Capture HWChannels 8 Channels 1 @@ -373,7 +389,7 @@ Comment "Input 5/6" Macro.pcm_split.SplitPCMDevice { - Name "fast_track_ultra_mixed_in" + Name "fast_track_ultra_stereo_in" Direction Capture HWChannels 8 Channels 2 @@ -388,7 +404,7 @@ Comment "Input 7/8 (S/PDIF)" Macro.pcm_split.SplitPCMDevice { - Name "fast_track_ultra_mixed_in" + Name "fast_track_ultra_stereo_in" Direction Capture HWChannels 8 Channels 2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.16/ucm2/USB-Audio/Realtek/ALC4080-HiFi.conf new/alsa-ucm-conf-1.2.16.1/ucm2/USB-Audio/Realtek/ALC4080-HiFi.conf --- old/alsa-ucm-conf-1.2.16/ucm2/USB-Audio/Realtek/ALC4080-HiFi.conf 2026-06-01 10:04:27.000000000 +0200 +++ new/alsa-ucm-conf-1.2.16.1/ucm2/USB-Audio/Realtek/ALC4080-HiFi.conf 2026-06-12 14:59:45.000000000 +0200 @@ -107,7 +107,7 @@ False.If.spdif_nodev { Condition { Type String - Empty "$${find-device:type=pcm,stream=playback,field=subname,regex='Audio #3'}" + Empty "$${find-device:type=pcm,stream=playback,field=name,regex='Audio #3'}" } True.Define.SpdifName "" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.16/ucm2/codecs/rt1320/init.conf new/alsa-ucm-conf-1.2.16.1/ucm2/codecs/rt1320/init.conf --- old/alsa-ucm-conf-1.2.16/ucm2/codecs/rt1320/init.conf 2026-06-01 10:04:27.000000000 +0200 +++ new/alsa-ucm-conf-1.2.16.1/ucm2/codecs/rt1320/init.conf 2026-06-12 14:59:45.000000000 +0200 @@ -16,7 +16,7 @@ Condition { Type String Needle "rt1320" - Haystack "${var:MultiSpeakerShadow}" + Haystack "${var:SpeakerCodec1}" } True { Macro.num1.rt1320spkled { ForAmps "[12]" Amp 1 } @@ -83,7 +83,7 @@ Condition { Type String Needle "rt1320" - Haystack "${var:MultiMicShadow}" + Haystack "${var:MicCodec1}" } True { Macro.num1.rt1320micled { ForMics "[12]" Mic 1 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.16/ucm2/codecs/rt712/init.conf new/alsa-ucm-conf-1.2.16.1/ucm2/codecs/rt712/init.conf --- old/alsa-ucm-conf-1.2.16/ucm2/codecs/rt712/init.conf 2026-06-01 10:04:27.000000000 +0200 +++ new/alsa-ucm-conf-1.2.16.1/ucm2/codecs/rt712/init.conf 2026-06-12 14:59:45.000000000 +0200 @@ -7,11 +7,24 @@ cset "name='rt712 FU0F Capture Switch' 1" ] +If.rt712dmic_init { + Condition { + Type String + String1 "rt712-dmic" + String2 "${var:MicCodec1}" + } + True.BootSequence [ + cset "name='rt712-dmic ADC 25 Mux' 'DMIC1'" + cset "name='rt712-dmic FU1E Capture Switch' 1" + ] +} + If.rt712vb_init { Condition { Type RegexMatch - Regex "(rt712(-sdca)?)" - String "${var:MultiMicShadow}" + # guard with '=' to avoid empty or rt712-dmic string matching + Regex "=(rt712(-sdca)?)=" + String "=${var:MicCodec1}=" } True.BootSequence [ # RT712-VB integrated with DMIC diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.16/ucm2/codecs/rt712-dmic/init.conf new/alsa-ucm-conf-1.2.16.1/ucm2/codecs/rt712-dmic/init.conf --- old/alsa-ucm-conf-1.2.16/ucm2/codecs/rt712-dmic/init.conf 2026-06-01 10:04:27.000000000 +0200 +++ new/alsa-ucm-conf-1.2.16.1/ucm2/codecs/rt712-dmic/init.conf 1970-01-01 01:00:00.000000000 +0100 @@ -1,6 +0,0 @@ -# RT712-dmic specific volume control settings - -BootSequence [ - cset "name='rt712-dmic ADC 25 Mux' 'DMIC1'" - cset "name='rt712-dmic FU1E Capture Switch' 1" -] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.16/ucm2/codecs/rt713/init.conf new/alsa-ucm-conf-1.2.16.1/ucm2/codecs/rt713/init.conf --- old/alsa-ucm-conf-1.2.16/ucm2/codecs/rt713/init.conf 2026-06-01 10:04:27.000000000 +0200 +++ new/alsa-ucm-conf-1.2.16.1/ucm2/codecs/rt713/init.conf 2026-06-12 14:59:45.000000000 +0200 @@ -7,11 +7,23 @@ cset "name='rt713 FU0F Capture Switch' 1" ] +If.rt713dmic_init { + Condition { + Type String + String1 "rt713-dmic" + String2 "${var:MicCodec1}" + } + True.BootSequence [ + cset "name='rt713-dmic ADC 25 Mux' 'DMIC1'" + cset "name='rt713-dmic FU1E Capture Switch' 1" + ] +} + If.rt713vb_init { Condition { Type String String1 "rt713" - String2 "${var:MultiMicShadow}" + String2 "${var:MicCodec1}" } True.BootSequence [ # RT713-VB integrated with DMIC diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.16/ucm2/codecs/rt713-dmic/init.conf new/alsa-ucm-conf-1.2.16.1/ucm2/codecs/rt713-dmic/init.conf --- old/alsa-ucm-conf-1.2.16/ucm2/codecs/rt713-dmic/init.conf 2026-06-01 10:04:27.000000000 +0200 +++ new/alsa-ucm-conf-1.2.16.1/ucm2/codecs/rt713-dmic/init.conf 1970-01-01 01:00:00.000000000 +0100 @@ -1,6 +0,0 @@ -# RT713-dmic specific volume control settings - -BootSequence [ - cset "name='rt713-dmic ADC 25 Mux' 'DMIC1'" - cset "name='rt713-dmic FU1E Capture Switch' 1" -] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.16/ucm2/sof-soundwire/HiFi.conf new/alsa-ucm-conf-1.2.16.1/ucm2/sof-soundwire/HiFi.conf --- old/alsa-ucm-conf-1.2.16/ucm2/sof-soundwire/HiFi.conf 2026-06-01 10:04:27.000000000 +0200 +++ new/alsa-ucm-conf-1.2.16.1/ucm2/sof-soundwire/HiFi.conf 2026-06-12 14:59:45.000000000 +0200 @@ -8,36 +8,43 @@ Value.TQ "HiFi" } -If.multicodec { +If.spk { Condition { Type String - Empty "${var:MultiCodec1}" + Empty "${var:SpeakerCodecFile}" } - False.Include.multicodec.File "/sof-soundwire/${var:MultiCodec1}.conf" + False.Include.a.File "/sof-soundwire/${var:SpeakerCodecFile}.conf" } -If.spkdev { +If.mic { Condition { Type String - Empty "${var:SpeakerCodec1}" + Empty "${var:MicCodecFile}" } - False.Include.spkdev.File "/sof-soundwire/${var:SpeakerCodec1}.conf" -} - -If.micdev { - Condition { - Type String - Empty "${var:MicCodec1}" + False.If.dup { + Condition { + Type String + String1 "${var:MicCodecFile}" + String2 "${var:SpeakerCodecFile}" + } + False.Include.a.File "/sof-soundwire/${var:MicCodecFile}.conf" } - False.Include.micdev.File "/sof-soundwire/${var:MicCodec1}.conf" } -If.hsdev { +If.headset { Condition { Type String - Empty "${var:HeadsetCodec1}" + Empty "${var:HeadsetCodecFile}" + } + False.If.dup { + Condition { + Type String + # guard with "=" to avoid empty string matching + Needle "=${var:HeadsetCodecFile}=" + Haystack "=${var:SpeakerCodecFile}=${var:MicCodecFile}=" + } + False.Include.a.File "/sof-soundwire/${var:HeadsetCodecFile}.conf" } - False.Include.hsdev.File "/sof-soundwire/${var:HeadsetCodec1}.conf" } <sof-soundwire/Hdmi.conf> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.16/ucm2/sof-soundwire/cs35l56-bridge.conf new/alsa-ucm-conf-1.2.16.1/ucm2/sof-soundwire/cs35l56-bridge.conf --- old/alsa-ucm-conf-1.2.16/ucm2/sof-soundwire/cs35l56-bridge.conf 2026-06-01 10:04:27.000000000 +0200 +++ new/alsa-ucm-conf-1.2.16.1/ucm2/sof-soundwire/cs35l56-bridge.conf 2026-06-12 14:59:45.000000000 +0200 @@ -16,15 +16,22 @@ SectionDevice."Speaker" { Comment "Speaker" - ConflictingDevice [ - "Headphones" - ] + If.hs_present { + Condition { + Type String + Haystack "${var:HeadsetCodec1}" + Needle "cs42l43" + } + True.ConflictingDevice [ + "Headphones" + ] + } EnableSequence [ cset "name='cs42l43 Speaker L Input 1' 'ASPRX1'" cset "name='cs42l43 Speaker R Input 1' 'ASPRX2'" - cset "name='cs42l43 ASPTX1 Input' 'DP5RX1'" - cset "name='cs42l43 ASPTX2 Input' 'DP5RX2'" + cset "name='cs42l43 ASPTX1 Input' 'DP6RX1'" + cset "name='cs42l43 ASPTX2 Input' 'DP6RX2'" cset "name='AMPL ASP1 TX1 Source' 'DSP1TX1'" cset "name='AMPL ASP1 TX2 Source' 'None'" @@ -54,7 +61,7 @@ Value { PlaybackPriority 100 - PlaybackPCM "hw:${CardId},0" + PlaybackPCM "hw:${CardId},2" PlaybackMixer "default:${CardId}" PlaybackMixerElem "Speaker" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.16/ucm2/sof-soundwire/rt1320.conf new/alsa-ucm-conf-1.2.16.1/ucm2/sof-soundwire/rt1320.conf --- old/alsa-ucm-conf-1.2.16/ucm2/sof-soundwire/rt1320.conf 2026-06-01 10:04:27.000000000 +0200 +++ new/alsa-ucm-conf-1.2.16.1/ucm2/sof-soundwire/rt1320.conf 2026-06-12 14:59:45.000000000 +0200 @@ -71,7 +71,7 @@ Condition { Type String Needle "rt1320" - Haystack "${var:MultiMicShadow}" + Haystack "${var:MicCodec1}" } True { SectionDevice."Mic" { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.16/ucm2/sof-soundwire/rt712-dmic.conf new/alsa-ucm-conf-1.2.16.1/ucm2/sof-soundwire/rt712-dmic.conf --- old/alsa-ucm-conf-1.2.16/ucm2/sof-soundwire/rt712-dmic.conf 2026-06-01 10:04:27.000000000 +0200 +++ new/alsa-ucm-conf-1.2.16.1/ucm2/sof-soundwire/rt712-dmic.conf 1970-01-01 01:00:00.000000000 +0100 @@ -1,21 +0,0 @@ -# Use case Configuration for sof-soundwire card - -SectionDevice."Mic" { - Comment "SoundWire microphones" - - EnableSequence [ - cset "name='rt712-dmic FU1E Capture Switch' 1" - ] - - DisableSequence [ - cset "name='rt712-dmic FU1E Capture Switch' 0" - ] - - Value { - CapturePriority 100 - CapturePCM "hw:${CardId},4" - CaptureSwitch "rt712-dmic FU1E Capture Switch" - CaptureVolume "rt712-dmic FU1E Capture Volume" - CaptureMixerElem "rt712-dmic FU1E" - } -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.16/ucm2/sof-soundwire/rt712.conf new/alsa-ucm-conf-1.2.16.1/ucm2/sof-soundwire/rt712.conf --- old/alsa-ucm-conf-1.2.16/ucm2/sof-soundwire/rt712.conf 2026-06-01 10:04:27.000000000 +0200 +++ new/alsa-ucm-conf-1.2.16.1/ucm2/sof-soundwire/rt712.conf 2026-06-12 14:59:45.000000000 +0200 @@ -1,10 +1,10 @@ # Use case Configuration for sof-soundwire card -If.codecspk { +If.codec_spk { Condition { Type RegexMatch Regex "(rt712(-sdca)?)" - String "${var:MultiSpeakerShadow}" + String "${var:SpeakerCodec1}" } True { SectionDevice."Speaker" { @@ -47,50 +47,89 @@ } } -SectionDevice."Headphones" { - Comment "Headphones" +If.codec_hs { + Condition { + Type RegexMatch + Regex "(rt712(-sdca)?)" + String "${var:HeadsetCodec1}" + } + True { + SectionDevice."Headphones" { + Comment "Headphones" + + EnableSequence [ + cset "name='Headphone Switch' on" + ] + + DisableSequence [ + cset "name='Headphone Switch' off" + ] + + Value { + PlaybackPriority 200 + PlaybackPCM "hw:${CardId}" + JackControl "Headphone Jack" + } + } + + SectionDevice."Headset" { + Comment "Headset Mono Microphone" + + EnableSequence [ + cset "name='rt712 FU0F Capture Switch' on" + ] + + DisableSequence [ + cset "name='rt712 FU0F Capture Switch' off" + ] - EnableSequence [ - cset "name='Headphone Switch' on" - ] - - DisableSequence [ - cset "name='Headphone Switch' off" - ] - - Value { - PlaybackPriority 200 - PlaybackPCM "hw:${CardId}" - JackControl "Headphone Jack" + Value { + CapturePriority 300 + CapturePCM "hw:${CardId},1" + CaptureSwitch "rt712 FU0F Capture Switch" + CaptureVolume "rt712 FU0F Capture Volume" + CaptureMixerElem "rt712 FU0F" + JackControl "Headset Mic Jack" + } + } } } -SectionDevice."Headset" { - Comment "Headset Mono Microphone" +If.codec_dmic { + Condition { + Type String + String1 "rt712-dmic" + String2 "${var:MicCodec1}" + } + True { + SectionDevice."Mic" { + Comment "SoundWire microphones" + + EnableSequence [ + cset "name='rt712-dmic FU1E Capture Switch' 1" + ] + + DisableSequence [ + cset "name='rt712-dmic FU1E Capture Switch' 0" + ] - EnableSequence [ - cset "name='rt712 FU0F Capture Switch' on" - ] - - DisableSequence [ - cset "name='rt712 FU0F Capture Switch' off" - ] - - Value { - CapturePriority 300 - CapturePCM "hw:${CardId},1" - CaptureSwitch "rt712 FU0F Capture Switch" - CaptureVolume "rt712 FU0F Capture Volume" - CaptureMixerElem "rt712 FU0F" - JackControl "Headset Mic Jack" + Value { + CapturePriority 100 + CapturePCM "hw:${CardId},4" + CaptureSwitch "rt712-dmic FU1E Capture Switch" + CaptureVolume "rt712-dmic FU1E Capture Volume" + CaptureMixerElem "rt712-dmic FU1E" + } + } } } -If.codecmic { +If.codec_mic { Condition { Type RegexMatch - Regex "(rt712(-sdca)?)" - String "${var:MultiMicShadow}" + # guard with '=' to avoid empty or rt712-dmic string matching + Regex "=(rt712(-sdca)?)=" + String "=${var:MicCodec1}=" } True { SectionDevice."Mic" { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.16/ucm2/sof-soundwire/rt713-dmic.conf new/alsa-ucm-conf-1.2.16.1/ucm2/sof-soundwire/rt713-dmic.conf --- old/alsa-ucm-conf-1.2.16/ucm2/sof-soundwire/rt713-dmic.conf 2026-06-01 10:04:27.000000000 +0200 +++ new/alsa-ucm-conf-1.2.16.1/ucm2/sof-soundwire/rt713-dmic.conf 1970-01-01 01:00:00.000000000 +0100 @@ -1,21 +0,0 @@ -# Use case Configuration for sof-soundwire card - -SectionDevice."Mic" { - Comment "SoundWire microphones" - - EnableSequence [ - cset "name='rt713-dmic FU1E Capture Switch' 1" - ] - - DisableSequence [ - cset "name='rt713-dmic FU1E Capture Switch' 0" - ] - - Value { - CapturePriority 100 - CapturePCM "hw:${CardId},4" - CaptureSwitch "rt713-dmic FU1E Capture Switch" - CaptureVolume "rt713-dmic FU1E Capture Volume" - CaptureMixerElem "rt713-dmic FU1E" - } -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.16/ucm2/sof-soundwire/rt713.conf new/alsa-ucm-conf-1.2.16.1/ucm2/sof-soundwire/rt713.conf --- old/alsa-ucm-conf-1.2.16/ucm2/sof-soundwire/rt713.conf 2026-06-01 10:04:27.000000000 +0200 +++ new/alsa-ucm-conf-1.2.16.1/ucm2/sof-soundwire/rt713.conf 2026-06-12 14:59:45.000000000 +0200 @@ -1,49 +1,87 @@ # Use case Configuration for sof-soundwire card -SectionDevice."Headphones" { - Comment "Headphones" +If.codec_hs { + Condition { + Type RegexMatch + Regex "(rt713(-sdca)?)" + String "${var:HeadsetCodec1}" + } + True { + SectionDevice."Headphones" { + Comment "Headphones" - EnableSequence [ - cset "name='Headphone Switch' on" - ] - - DisableSequence [ - cset "name='Headphone Switch' off" - ] - - Value { - PlaybackPriority 200 - PlaybackPCM "hw:${CardId}" - JackControl "Headphone Jack" + EnableSequence [ + cset "name='Headphone Switch' on" + ] + + DisableSequence [ + cset "name='Headphone Switch' off" + ] + + Value { + PlaybackPriority 200 + PlaybackPCM "hw:${CardId}" + JackControl "Headphone Jack" + } + } + + SectionDevice."Headset" { + Comment "Headset Microphone" + + EnableSequence [ + cset "name='rt713 FU0F Capture Switch' 1" + ] + + DisableSequence [ + cset "name='rt713 FU0F Capture Switch' 0" + ] + + Value { + CapturePriority 200 + CapturePCM "hw:${CardId},1" + JackControl "Headset Mic Jack" + CaptureSwitch "rt713 FU0F Capture Switch" + CaptureVolume "rt713 FU0F Capture Volume" + CaptureMixerElem "rt713 FU0F" + } + } } } -SectionDevice."Headset" { - Comment "Headset Microphone" +If.codec_dmic { + Condition { + Type String + String1 "rt713-dmic" + String2 "${var:MicCodec1}" + } + True { + SectionDevice."Mic" { + Comment "SoundWire microphones" - EnableSequence [ - cset "name='rt713 FU0F Capture Switch' 1" - ] - - DisableSequence [ - cset "name='rt713 FU0F Capture Switch' 0" - ] - - Value { - CapturePriority 200 - CapturePCM "hw:${CardId},1" - JackControl "Headset Mic Jack" - CaptureSwitch "rt713 FU0F Capture Switch" - CaptureVolume "rt713 FU0F Capture Volume" - CaptureMixerElem "rt713 FU0F" + EnableSequence [ + cset "name='rt713-dmic FU1E Capture Switch' 1" + ] + + DisableSequence [ + cset "name='rt713-dmic FU1E Capture Switch' 0" + ] + + Value { + CapturePriority 100 + CapturePCM "hw:${CardId},4" + CaptureSwitch "rt713-dmic FU1E Capture Switch" + CaptureVolume "rt713-dmic FU1E Capture Volume" + CaptureMixerElem "rt713-dmic FU1E" + } + } } } -If.codecmic { +If.codec_mic { Condition { Type String String1 "rt713" - String2 "${var:MultiMicShadow}" + String2 "${var:MicCodec1}" } True { SectionDevice."Mic" { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.16/ucm2/sof-soundwire/rt721.conf new/alsa-ucm-conf-1.2.16.1/ucm2/sof-soundwire/rt721.conf --- old/alsa-ucm-conf-1.2.16/ucm2/sof-soundwire/rt721.conf 2026-06-01 10:04:27.000000000 +0200 +++ new/alsa-ucm-conf-1.2.16.1/ucm2/sof-soundwire/rt721.conf 2026-06-12 14:59:45.000000000 +0200 @@ -4,7 +4,7 @@ Condition { Type RegexMatch Regex "(rt721(-sdca)?)" - String "${var:MultiMicShadow}" + String "${var:MicCodec1}" } True { SectionDevice."Mic" { @@ -33,7 +33,7 @@ Condition { Type RegexMatch Regex "(rt721(-sdca)?)" - String "${var:MultiSpeakerShadow}" + String "${var:SpeakerCodec1}" } True { SectionDevice."Speaker" { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.16/ucm2/sof-soundwire/rt722.conf new/alsa-ucm-conf-1.2.16.1/ucm2/sof-soundwire/rt722.conf --- old/alsa-ucm-conf-1.2.16/ucm2/sof-soundwire/rt722.conf 2026-06-01 10:04:27.000000000 +0200 +++ new/alsa-ucm-conf-1.2.16.1/ucm2/sof-soundwire/rt722.conf 2026-06-12 14:59:45.000000000 +0200 @@ -4,7 +4,7 @@ Condition { Type RegexMatch Regex "(rt722(-sdca)?)" - String "${var:MultiMicShadow}" + String "${var:MicCodec1}" } True { SectionDevice."Mic" { @@ -33,7 +33,7 @@ Condition { Type RegexMatch Regex "(rt722(-sdca)?)" - String "${var:MultiSpeakerShadow}" + String "${var:SpeakerCodec1}" } True { SectionDevice."Speaker" { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.16/ucm2/sof-soundwire/sof-soundwire.conf new/alsa-ucm-conf-1.2.16.1/ucm2/sof-soundwire/sof-soundwire.conf --- old/alsa-ucm-conf-1.2.16/ucm2/sof-soundwire/sof-soundwire.conf 2026-06-01 10:04:27.000000000 +0200 +++ new/alsa-ucm-conf-1.2.16.1/ucm2/sof-soundwire/sof-soundwire.conf 2026-06-12 14:59:45.000000000 +0200 @@ -1,4 +1,4 @@ -Syntax 7 +Syntax 8 SectionUseCase."HiFi" { File "/sof-soundwire/HiFi.conf" @@ -18,6 +18,7 @@ Mics1 "0" Iec61937Pcms1 "" MultiCodec1 "" + MultiCodecRegex "rt712|rt713|rt721|rt722|rt1320" } DefineRegex { @@ -50,12 +51,19 @@ String "${CardComponents}" } MultiCodec { - Regex "(rt712|rt713|rt721|rt722|rt1320)" + Regex "(${var:MultiCodecRegex})" String "${var:SpeakerCodec1} ${var:HeadsetCodec1} ${var:MicCodec1}" } } -# check to keep combatibility with older kernels that have two separate spk: tags +# set default file variables after regex evaluation +If.codec_default.Append.Define { + SpeakerCodecFile "${var:SpeakerCodec1}" + MicCodecFile "${var:MicCodec1}" + HeadsetCodecFile "${var:HeadsetCodec1}" +} + +# check to keep compatibility with older kernels that have two separate spk: tags If.old_multi_spk { Condition { Type RegexMatch @@ -65,81 +73,117 @@ True.Define.SpeakerCodec1 "cs42l43-spk+cs35l56" } -If.multi_init { +DefineMacro.MultiCodecInit.If.a { Condition { Type String - Empty "${var:MultiCodec1}" + # guard with "=" to not match the codec name in the middle + Haystack "=${var:SpeakerCodec1}=${var:HeadsetCodec1}=${var:MicCodec1}" + Needle "=${var:__CodecId}" } - False { - Define { - MultiSpeakerShadow "${var:SpeakerCodec1}" - MultiMicShadow "${var:MicCodec1}" + True { + If.spk { + Condition { + Type RegexMatch + # guard with "=" to avoid empty string matching + Regex "=(${var:__CodecId}(-sdca)?)=" + String "=${var:SpeakerCodec1}=" + } + True.Define.SpeakerCodecFile "${var:__CodecId}" + } + If.headset { + Condition { + Type RegexMatch + # guard with "=" to avoid empty string matching + Regex "=(${var:__CodecId}(-sdca)?)=" + String "=${var:HeadsetCodec1}=" + } + True.Define.HeadsetCodecFile "${var:__CodecId}" + } + If.mic { + Condition { + Type RegexMatch + # guard with "=" to avoid empty string matching + Regex "=(${var:__CodecId}(-sdca|-dmic)?)=" + String "=${var:MicCodec1}=" + } + True.Define.MicCodecFile "${var:__CodecId}" } - Include.multi_init.File "/codecs/${var:MultiCodec1}/init.conf" } } -If.multi_speaker { +# probe codecs with multiple functions, modify file variables +If.multi_init { Condition { - Type RegexMatch - # guard with "=" to avoid empty string matching - Regex "=(${var:MultiCodec1}(-sdca)?)=" - String "=${var:SpeakerCodec1}=" + Type String + Empty "${var:MultiCodec1}" } - True { - Define.SpeakerCodec1 "" + False { + Macro.rt712.MultiCodecInit "CodecId=rt712" + Macro.rt713.MultiCodecInit "CodecId=rt713" + Macro.rt721.MultiCodecInit "CodecId=rt721" + Macro.rt722.MultiCodecInit "CodecId=rt722" + Macro.rt1320.MultiCodecInit "CodecId=rt1320" } } -If.multi_mic { +If.spk { Condition { - Type RegexMatch - # guard with "=" to avoid empty string matching - Regex "=(${var:MultiCodec1}(-sdca)?)=" - String "=${var:MicCodec1}=" + Type String + Empty "${var:SpeakerCodecFile}" } - True { - Define.MicCodec1 "" + False.If.filter { + Condition { + Type RegexMatch + Regex "(${var:MultiCodecRegex}|rt1318|cs42l43-spk(\\+cs35l56)?|cs35l56((-bridge)|(\\+cs42l43-spk))?)" + String "${var:SpeakerCodecFile}" + } + True.Include.a.File "/codecs/${var:SpeakerCodecFile}/init.conf" } } -If.multi_headset { +If.mic { Condition { - Type RegexMatch - # guard with "=" to avoid empty string matching - Regex "=(${var:MultiCodec1}(-sdca)?)=" - String "=${var:HeadsetCodec1}=" - } - True { - Define.HeadsetCodec1 "" + Type String + Empty "${var:MicCodecFile}" } -} - -If.spk_init { - Condition { - Type RegexMatch - Regex "(rt1318(-1)?|cs42l43-spk(\\+cs35l56)?|cs35l56((-bridge)|(\\+cs42l43-spk))?)" - String "${var:SpeakerCodec1}" + False.If.dup { + Condition { + Type String + String1 "${var:MicCodecFile}" + String2 "${var:SpeakerCodecFile}" + } + False.If.filter { + Condition { + Type RegexMatch + Regex "(${var:MultiCodecRegex}|(acp|cs42l43|cs42l45|cs47l47)-dmic|rt715(-sdca)?)" + String "${var:MicCodecFile}" + } + True.Include.a.File "/codecs/${var:MicCodecFile}/init.conf" + } } - True.Include.spk_init.File "/codecs/${var:SpeakerCodec1}/init.conf" } -If.hs_init { +If.headset { Condition { - Type RegexMatch - Regex "(cs42l43|cs42l45|cs47l47|rt5682|rt700|rt711|rt713(-sdca)?|rt722)" - String "${var:HeadsetCodec1}" + Type String + Empty "${var:HeadsetCodecFile}" } - True.Include.hs_init.File "/codecs/${var:HeadsetCodec1}/init.conf" -} - -If.mic_init { - Condition { - Type RegexMatch - Regex "((acp|cs42l43|cs42l45|cs47l47|rt712|rt713)-dmic|rt715(-sdca)?)" - String "${var:MicCodec1}" + False.If.dup { + Condition { + Type String + # guard with "=" to avoid empty string matching + Needle "=${var:HeadsetCodecFile}=" + Haystack "=${var:SpeakerCodecFile}=${var:MicCodecFile}=" + } + False.If.filter { + Condition { + Type RegexMatch + Regex "(${var:MultiCodecRegex}|cs42l43|cs42l45|cs47l47|rt5682|rt700|rt711)" + String "${var:HeadsetCodecFile}" + } + True.Include.a.File "/codecs/${var:HeadsetCodecFile}/init.conf" + } } - True.Include.mic_init.File "/codecs/${var:MicCodec1}/init.conf" } If.mic_init_rt715 {
