[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