From: Sasha Levin <sashal@kernel.org>
To: patches@lists.linux.dev, stable@vger.kernel.org
Cc: Maciej Strozek <mstrozek@opensource.cirrus.com>,
Bard Liao <yung-chuan.liao@linux.intel.com>,
Charles Keepax <ckeepax@opensource.cirrus.com>,
Vinod Koul <vkoul@kernel.org>, Sasha Levin <sashal@kernel.org>,
linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH AUTOSEL 6.19-6.12] soundwire: intel_auxdevice: add cs42l45 codec to wake_capable_list
Date: Wed, 18 Feb 2026 21:03:45 -0500 [thread overview]
Message-ID: <20260219020422.1539798-9-sashal@kernel.org> (raw)
In-Reply-To: <20260219020422.1539798-1-sashal@kernel.org>
From: Maciej Strozek <mstrozek@opensource.cirrus.com>
[ Upstream commit f87e5575a6bd1925cd55f500b61b661724372e5f ]
Add cs42l45 to the wake_capable_list because it can generate jack events
whilst the bus is stopped.
Signed-off-by: Maciej Strozek <mstrozek@opensource.cirrus.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://patch.msgid.link/20251215151729.3911077-1-ckeepax@opensource.cirrus.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
LLM Generated explanations, may be completely bogus:
## Analysis
### What the commit does
This commit adds the CS42L45 codec (manufacturer ID 0x01fa / Cirrus
Logic, part ID 0x4245) to the `wake_capable_list` in the SoundWire Intel
auxiliary device driver. This is a **device ID addition** to an existing
driver mechanism.
### Why it matters
Without this entry, the CS42L45 codec won't be recognized as wake-
capable by the Intel SoundWire bus driver. The `is_wake_capable()`
function is used in three places:
1. `generic_new_peripheral_assigned()` (line 128) - determines device
number assignment range
2. `intel_get_device_num_ida()` (line 262) - allocates IDA-based device
numbers
3. `intel_put_device_num_ida()` (line 276) - frees IDA-based device
numbers
When a codec can generate jack events (headphone plug/unplug) while the
bus is stopped, it needs to be marked as wake-capable so the system
properly handles wake events. Without this, users would not get proper
jack detection on systems using the CS42L45.
### Key concern: CS42L45 is NEW hardware
The CS42L45 codec support was only added in **v6.19** (the
`soc_sdw_cs42l45.c` file and the SDCA class driver entry
`SDW_SLAVE_ENTRY(0x01FA, 0x4245, 0)`). This means:
- The CS42L45 as a whole is only supported starting from v6.19
- The `wake_capable_list` entry is only useful if the cs42l45 codec is
actually present and functioning in the kernel
- Stable trees older than 6.19.y would not have cs42l45 support at all,
making this entry meaningless there
- Even for 6.19.y stable, this is adding support for brand-new hardware
that just landed in 6.19
### Classification
This falls into the "device ID / hardware quirk addition" category.
However, unlike typical device ID additions that enable already-
supported hardware, this is for a very newly added codec. The
wake_capable_list is technically a quirk/workaround list (the code
comments and commit message indicate these codecs generate events while
the bus is stopped), but the underlying codec support itself is brand
new.
### Risk assessment
- **Risk**: Extremely low. Single-line addition to a data array. Cannot
cause regressions for existing hardware.
- **Benefit**: Proper jack detection for CS42L45 users. But only
relevant for 6.19.y.
- **Scope**: Single line in one file.
### Stable tree applicability
The cs42l45 codec support was only introduced in v6.19. Current stable
trees at 6.6.y, 6.1.y, 5.15.y, etc. don't have cs42l45 support at all.
Even the 6.19.y tree would need to have the prerequisite cs42l45 codec
support commits first. This commit only makes sense for 6.19.y stable at
the earliest.
While the change itself is trivially safe and falls into the "hardware
quirk" exception category, its practical value for stable backporting is
limited since:
1. It only applies to 6.19.y (the only stable tree with cs42l45 support)
2. The CS42L45 is brand-new hardware, so the user base on 6.19.y stable
is minimal
3. It's more of a "complete the new hardware support" addition than a
fix for broken existing functionality
That said, the commit IS a trivial, safe addition that fixes a real
functional issue (missing jack events) for systems with this codec. For
6.19.y stable users with cs42l45 hardware, this is needed.
## Verification
- Verified `is_wake_capable()` function at line 72-81 of
`intel_auxdevice.c` - iterates `wake_capable_list` matching mfg_id and
part_id
- Verified `is_wake_capable()` is called in 3 places (lines 128, 262,
276) - all related to device numbering based on wake capability
- Verified cs42l43 was added to wake_capable_list in commit
`fe600c8e2dc5d`, which is in v6.12
- Verified cs42l45 SDW support (`soc_sdw_cs42l45.c`) was added in commit
`3f6b562f2107a`, which is in v6.19 but NOT in v6.14, v6.15, v6.13
- Verified cs42l45 SDCA class entry (0x01FA, 0x4245) exists in
`sound/soc/sdca/sdca_class.c:285`
- Verified cs42l45 SDW utils entry (part_id 0x4245) exists in
`sound/soc/sdw_utils/soc_sdw_utils.c:711`
- Confirmed via `git merge-base` that cs42l45 support first appeared in
v6.19
## Conclusion
While this is a trivially safe, single-line device ID addition (a
category normally YES for stable), the practical case for backporting is
weak. The CS42L45 codec itself is only supported starting in v6.19,
making this relevant only for 6.19.y stable. For such new hardware, the
fix would naturally flow into 6.19.y as part of regular stable updates.
The commit is a reasonable candidate for 6.19.y stable, but it's
essentially completing new hardware enablement rather than fixing a
regression or long-standing bug. Given the narrow applicability and the
fact that it's completing brand-new feature support, this is a
borderline case that leans YES due to its trivially safe nature and
clear functional fix for affected hardware.
**YES**
drivers/soundwire/intel_auxdevice.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/soundwire/intel_auxdevice.c b/drivers/soundwire/intel_auxdevice.c
index 6df2601fff909..8752b0e3ce74c 100644
--- a/drivers/soundwire/intel_auxdevice.c
+++ b/drivers/soundwire/intel_auxdevice.c
@@ -52,6 +52,7 @@ struct wake_capable_part {
static struct wake_capable_part wake_capable_list[] = {
{0x01fa, 0x4243},
+ {0x01fa, 0x4245},
{0x025d, 0x5682},
{0x025d, 0x700},
{0x025d, 0x711},
--
2.51.0
next prev parent reply other threads:[~2026-02-19 2:04 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-19 2:03 [PATCH AUTOSEL 6.19] rust_binder: Fix build failure if !CONFIG_COMPAT Sasha Levin
2026-02-19 2:03 ` [PATCH AUTOSEL 6.19-6.12] usb: chipidea: udc: fix DMA and SG cleanup in _ep_nuke() Sasha Levin
2026-02-19 2:03 ` [PATCH AUTOSEL 6.19-5.15] staging: rtl8723bs: fix memory leak on failure path Sasha Levin
2026-02-19 2:03 ` [PATCH AUTOSEL 6.19] tty: vt/keyboard: Split apart vt_do_diacrit() Sasha Levin
2026-02-19 2:03 ` [PATCH AUTOSEL 6.19-5.10] fix it87_wdt early reboot by reporting running timer Sasha Levin
2026-02-19 2:03 ` [PATCH AUTOSEL 6.19-5.15] misc: eeprom: Fix EWEN/EWDS/ERAL commands for 93xx56 and 93xx66 Sasha Levin
2026-02-19 2:03 ` [PATCH AUTOSEL 6.19-5.15] mmc: rtsx_pci: add quirk to disable MMC_CAP_AGGRESSIVE_PM for RTS525A Sasha Levin
2026-02-19 10:29 ` Ulf Hansson
2026-02-26 13:23 ` Sasha Levin
2026-02-19 2:03 ` [PATCH AUTOSEL 6.19-6.1] fpga: of-fpga-region: Fail if any bridge is missing Sasha Levin
2026-02-19 2:03 ` Sasha Levin [this message]
2026-02-19 2:03 ` [PATCH AUTOSEL 6.19-5.10] iio: magnetometer: Remove IRQF_ONESHOT Sasha Levin
2026-02-19 2:03 ` [PATCH AUTOSEL 6.19-6.1] watchdog: imx7ulp_wdt: handle the nowayout option Sasha Levin
2026-02-19 2:03 ` [PATCH AUTOSEL 6.19-5.10] serial: 8250_dw: handle clock enable errors in runtime_resume Sasha Levin
2026-02-19 2:03 ` [PATCH AUTOSEL 6.19-6.12] most: core: fix resource leak in most_register_interface error paths Sasha Levin
2026-02-19 2:03 ` [PATCH AUTOSEL 6.19] block: fix partial IOVA mapping cleanup in blk_rq_dma_map_iova Sasha Levin
2026-02-19 2:03 ` [PATCH AUTOSEL 6.19-6.1] misc: bcm_vk: Fix possible null-pointer dereferences in bcm_vk_read() Sasha Levin
2026-02-19 2:03 ` [PATCH AUTOSEL 6.19-6.1] dmaengine: sun6i: Choose appropriate burst length under maxburst Sasha Levin
2026-02-19 2:03 ` [PATCH AUTOSEL 6.19-6.1] mmc: rtsx: reset power state on suspend Sasha Levin
2026-02-19 10:27 ` Ulf Hansson
2026-02-26 13:24 ` Sasha Levin
2026-02-19 2:03 ` [PATCH AUTOSEL 6.19] serial: rsci: Add set_rtrg() callback Sasha Levin
2026-02-19 2:03 ` [PATCH AUTOSEL 6.19-5.10] Revert "mfd: da9052-spi: Change read-mask to write-mask" Sasha Levin
2026-02-19 2:03 ` [PATCH AUTOSEL 6.19-6.18] pinctrl: mediatek: make devm allocations safer and clearer in mtk_eint_do_init() Sasha Levin
2026-02-19 2:03 ` [PATCH AUTOSEL 6.19-6.12] serial: 8250: 8250_omap.c: Add support for handling UART error conditions Sasha Levin
2026-02-19 2:03 ` [PATCH AUTOSEL 6.19-6.12] usb: gadget: f_fs: Fix ioctl error handling Sasha Levin
2026-02-19 2:03 ` [PATCH AUTOSEL 6.19-6.12] phy: cadence-torrent: restore parent clock for refclk during resume Sasha Levin
2026-02-19 2:04 ` [PATCH AUTOSEL 6.19-5.10] binder: don't use %pK through printk Sasha Levin
2026-02-19 2:04 ` [PATCH AUTOSEL 6.19-6.18] iio: bmi270_i2c: Add MODULE_DEVICE_TABLE for BMI260/270 Sasha Levin
2026-02-19 2:04 ` [PATCH AUTOSEL 6.19-5.15] iio: Use IRQF_NO_THREAD Sasha Levin
2026-02-19 2:04 ` [PATCH AUTOSEL 6.19-6.12] mfd: intel-lpss: Add Intel Nova Lake-S PCI IDs Sasha Levin
2026-02-19 2:04 ` [PATCH AUTOSEL 6.19-6.12] phy: ti: phy-j721e-wiz: restore mux selection during resume Sasha Levin
2026-02-19 2:04 ` [PATCH AUTOSEL 6.19-5.10] MIPS: Loongson: Make cpumask_of_node() robust against NUMA_NO_NODE Sasha Levin
2026-02-19 2:04 ` [PATCH AUTOSEL 6.19-6.12] usb: gadget: f_fs: fix DMA-BUF OUT queues Sasha Levin
2026-02-19 2:04 ` [PATCH AUTOSEL 6.19-5.10] phy: fsl-imx8mq-usb: disable bind/unbind platform driver feature Sasha Levin
2026-02-19 2:04 ` [PATCH AUTOSEL 6.19-6.18] watchdog: rzv2h_wdt: Discard pm_runtime_put() return value Sasha Levin
2026-02-19 2:04 ` [PATCH AUTOSEL 6.19-6.1] soundwire: dmi-quirks: add mapping for Avell B.ON (OEM rebranded of NUC15) Sasha Levin
2026-02-19 2:04 ` [PATCH AUTOSEL 6.19-6.18] pinctrl: renesas: rzt2h: Allow .get_direction() for IRQ function GPIOs Sasha Levin
2026-02-19 2:04 ` [PATCH AUTOSEL 6.19-6.12] dmaengine: stm32-dma3: use module_platform_driver Sasha Levin
2026-02-19 2:04 ` [PATCH AUTOSEL 6.19-5.15] staging: rtl8723bs: fix missing status update on sdio_alloc_irq() failure Sasha Levin
2026-02-19 2:04 ` [PATCH AUTOSEL 6.19-5.15] phy: mvebu-cp110-utmi: fix dr_mode property read from dts Sasha Levin
2026-02-19 2:04 ` [PATCH AUTOSEL 6.19-6.1] usb: typec: ucsi: psy: Fix voltage and current max for non-Fixed PDOs Sasha Levin
2026-02-19 2:04 ` [PATCH AUTOSEL 6.19-5.10] serial: 8250: 8250_omap.c: Clear DMA RX running status only after DMA termination is done Sasha Levin
2026-02-19 2:04 ` [PATCH AUTOSEL 6.19-6.1] dmaengine: stm32-mdma: initialize m2m_hw_period and ccr to fix warnings Sasha Levin
2026-02-19 2:04 ` [PATCH AUTOSEL 6.19-6.18] misc: ti_fpc202: fix a potential memory leak in probe function Sasha Levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260219020422.1539798-9-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=ckeepax@opensource.cirrus.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sound@vger.kernel.org \
--cc=mstrozek@opensource.cirrus.com \
--cc=patches@lists.linux.dev \
--cc=stable@vger.kernel.org \
--cc=vkoul@kernel.org \
--cc=yung-chuan.liao@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox