[Bug 2131725] Re: Support for Cirrus Logic audio solution CS42L45 with amplifiers on new Dell PTL platform
Matthew Ruffell
2131725 at bugs.launchpad.net
Wed Feb 11 09:36:30 UTC 2026
Hi Kai-Chuan Hsieh,
Is "2e09067 ucm2: Add setting LED Mode in SetLED macro" really
necessary?
If you look closer, the line:
+diff --git a/ucm2/codecs/cs42l45-dmic/init.conf b/ucm2/codecs/cs42l45-dmic/init.conf
+index 88b19c8..6dd19bb 100644
+--- a/ucm2/codecs/cs42l45-dmic/init.conf
++++ b/ucm2/codecs/cs42l45-dmic/init.conf
+@@ -5,5 +5,5 @@ BootSequence [
+ ]
+
+ Macro [
+- { SetLED { LED="mic" Action="attach" CtlId="cs42l45 FU 113 Mute Switch" } }
++ { SetLED { LED="mic" Action="attach" CtlId="cs42l45 FU 113 Mute Switch" Mode="follow-route"} }
+ ]
just gets deleted anyway in "51bada5 ucm2: sof-soundwire: Simplify
cs42l45 configs".
+--- a/ucm2/codecs/cs42l45-dmic/init.conf
++++ b/ucm2/codecs/cs42l45-dmic/init.conf
+
+ Macro [
+- { SetLED { LED="mic" Action="attach" CtlId="cs42l45 FU 113 Mute Switch" Mode="follow-route"} }
++ { SetLED { LED="mic" Action="attach" CtlId="cs42l45 FU 113 Channel Switch"} }
+ ]
Whats the point of this patch?
If you look more closely:
+diff --git a/ucm2/common/ctl/led.conf b/ucm2/common/ctl/led.conf
+index f10ad87..7f47daa 100644
+--- a/ucm2/common/ctl/led.conf
++++ b/ucm2/common/ctl/led.conf
+@@ -30,6 +30,7 @@
+ # LED - LED selection - "speaker" or "mic"
+ # Action - action for given control - "attach" or "detach"
+ # CtlId - control identifier (as for amixer, e.g. "Capture Switch" or "name='CaptureSw
itch',index=1")
++# Mode - (optional) LED mode - "on", "off", "follow-mute" or "follow-route"
+ #
+
+ DefineMacro.SetLED {
+@@ -46,6 +47,15 @@ DefineMacro.SetLED {
+ }
+ }
+ If.1 {
++ Condition {
++ Type String
++ Empty "${var:-__Mode}"
++ }
++ False.FixedBootSequence [
++ sysw "-/class/sound/ctl-led/${var:__LED}/mode:${var:__Mode}"
++ ]
++ }
++ If.2 {
+ Condition { Type AlwaysTrue }
+ True.FixedBootSequence [
+ sysw "-/class/sound/ctl-led/${var:__LED}/card${CardNumber}/${var:__
Action}:${var:__CtlId}"
It moves the existing logic for If.1 into If.2, and adds completely new logic
for If.1.
Is this going to change behaviour of everyones Mute LEDS? How does alsa-ucm-conf
know to use this new If.1 or If.2 for existing behaviour?
I think this doesn't pass the "minimal patch" rules, and creates
unnecessary risk.
Can you just delete the hunk from "51bada5 ucm2: sof-soundwire: Simplify cs42l45 configs".
instead, and delete "2e09067 ucm2: Add setting LED Mode in SetLED macro"
entirely?
When we backport patches to stable releases, they don't have to always be
straight cherry picks from upstream. Sometimes its better to modify patches so
that we only have the smallest fix possible. Within reason anyway.
That way it would be less likely to regress existing behaviour of the
Mute LED.
PS, your patch format and naming is much better, well done!
Thanks,
Matthew
--
You received this bug notification because you are a member of Ubuntu
Sponsors, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/2131725
Title:
Support for Cirrus Logic audio solution CS42L45 with amplifiers on
new Dell PTL platform
Status in alsa-ucm-conf package in Ubuntu:
Fix Released
Status in linux-firmware package in Ubuntu:
Fix Released
Status in linux-oem-6.17 package in Ubuntu:
Invalid
Status in alsa-ucm-conf source package in Noble:
New
Status in linux-firmware source package in Noble:
Fix Released
Status in linux-oem-6.17 source package in Noble:
Fix Committed
Status in alsa-ucm-conf source package in Plucky:
Won't Fix
Status in linux-firmware source package in Plucky:
Won't Fix
Status in linux-oem-6.17 source package in Plucky:
Invalid
Status in alsa-ucm-conf source package in Questing:
New
Status in linux-firmware source package in Questing:
Fix Released
Status in linux-oem-6.17 source package in Questing:
Invalid
Status in alsa-ucm-conf source package in Resolute:
Fix Released
Status in linux-firmware source package in Resolute:
Fix Released
Status in linux-oem-6.17 source package in Resolute:
Invalid
Bug description:
SRU Justification:
[Impact]
New Dell platform with CirrusLogic audio solution CS42L43+CS35L57/CS35L63 powered by Intel PantherLake will have no basic audio functions w/o Soundwire Driver Support.
================ Linux Kernel ========================
[Fix]
Backport new Intel soundwire drivers of the following
Add SDCA class driver:
3af1815a2f9c ASoC: SDCA: Add basic SDCA function driver
2d877d0659cb ASoC: SDCA: Add basic SDCA class driver
4496d1c65bad ASoC: SDCA: add function devices
5acf17b6df5e ASoC: SDCA: Add helper to write initialization writes
193c65ec8ed4 ASoC: SDCA: Populate regmap cache for readable Controls
222cbe172e5f ASoC: SDCA: Factor out helper to process Control defaults
fb62da31fad2 ASoC: SDCA: Use helper macros for control identification
edb82534ee65 ASoC: SDCA: Move most of the messages from info to debug
336beae295bf ASoC: SDCA: Add comment for function reset polling
cc58055bfefa ASoC: SDCA: Correct FDL locking in sdca_fdl_process()
5fe65824b74c ASoC: SDCA: Add missing forward declaration in header
3508311f2e1c ASoC: SDCA: Fix missing dash in HIDE DisCo property
549f618516a1 ASoC: SDCA: Remove duplicated module macros
43a3adb6dd39 spi: spidev: add compatible for arduino spi mcu interface
a7bde7c10902 dt-bindings: trivial-devices: add arduino spi mcu interface
3efee7362dbf ASoC: SDCA: Add stubs for FDL helper functions
Add SDCA UMP/FDL support:
ef042df96d0e ASoC: SDCA: Add HID button IRQ
12aa3160c10a ASoC: SDCA: Add early IRQ handling
e92e25f77748 ASoC: SDCA: Add UMP timeout handling for FDL
0723affa1bee ASoC: SDCA: Add completion for FDL start and stop
aeaf27ec6571 ASoC: SDCA: Add FDL-specific IRQ processing
71f7990a34cd ASoC: SDCA: Add FDL library for XU entities
c4d096c3ca42 ASoC: SDCA: Add SDCA FDL data parsing
daab108504be ASoC: SDCA: Add UMP buffer helper functions
7b6be935e7ef ASoC: SDCA: Parse Function Reset max delay
0a5e9769d088 ASoC: SDCA: Parse XU Entity properties
c7b6c6b60594 ASoC: SDCA: Force some SDCA Controls to be volatile
dfe7c3401ed3 ASoC: SDCA: Rely less on the ASoC component in IRQ handling
8d557cc4867f ASoC: SDCA: Factor out a helper to find SDCA IRQ data
56bbda23d4be ASoC: SDCA: Update externally_requested flag to cover all requests
390c05f47d07 ASoC: SDCA: Pass device register map from IRQ alloc to handlers
7159816707dc ASoC: SDCA: Pass SoundWire slave to HID
907364ea3db4 ASoC: SDCA: Add manual PM runtime gets to IRQ handlers
013a3a66f25a regmap: sdw-mbq: Don't assume the regmap device is the SoundWire slave
715159314dfa ASoC: SDCA: Rename SoundWire struct device variables
and CS42L45 driver patch from CirrusLogic
1e645bca9d1e ASoC: intel: sof_sdw: Add codec_info for cs42l45
3f6b562f2107 ASoC: sdw_utils: Add cs42l45 support functions
c66297d09e1a ASoC: intel: sof_sdw: Add ability to have auxiliary devices
2ae4659533d8 ASoC: sdw_utils: Move codec_name to dai info
26ee34d2f5c7 ASoC: sdw_utils: Add codec_conf for every DAI
9be609d4f429 - Maciej Strozek, 8 weeks ago : soundwire:
intel_auxdevice: add cs42l45 codec to wake_capable_list -
5edcc5451766 - Richard Fitzgerald, 6 weeks ago : ASoC: cs35l56: Add support for CS35L56 B2 silicon -
ad36fbb6ee4b - Richard Fitzgerald, 6 weeks ago : ASoC: cs35l56: Set fw_regs table after getting REVID -
and patch set of [PATCH 0/7] SDCA jack and system suspend fixups
<=============== linux-firmware ========================
[Fix]
Backport the patch firmware from CirrusLogic
https://gitlab.com/kernel-firmware/linux-firmware/-/commit/18672039c39ac71ecc17592999016311cff901ec
<=============== alsa-ucm-conf ========================
Backport the patch firmware from CirrusLogic
f47b9418c81a ("ucm2: soundwire: cs42l45: Add support for CS42L45 codec")
2e090676c9a4 ("ucm2: Add setting LED Mode in SetLED macro")
7bab30e73569 ("ucm2: sof-soundwire: Update cs42l45 JackControls)
51bada5f0c1b ("ucm2: sof-soundwire: Simplify cs42l45 configs")
[Test Case]
1. Boot up the machine of new Dell Intel PantherLake platform with CirrusLogic CS42L43 + new amplifiers
2. Open settings->Sound->Output Device and make sure it's not Dummy audio devices
3. Click test icon for basic audio output functions
4. Use `arecord` to record and play the recorded audio file with `aplay` for basic speaker/microphone functions.
[Where problems could occur]
It adds the support for new CirrusLogic codec+amplifier on PTL platform. No regression expected at the current stage.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/alsa-ucm-conf/+bug/2131725/+subscriptions
More information about the Ubuntu-sponsors
mailing list