Hi Mark:
Thanks for the review and for taking this through CI for the merge
window.
On runtime PM: agreed. Enabling it unconditionally from probe after
register_component() allowed set_jack() to run before RPM was enabled,which
can mismatch get/put counts relative to remove()'sfirst_hw_init-gated
pm_runtime_disable(). I'll send an incremental fix that enables runtime PM
from io_init() on first ATTACHED instead,and keeps set_jack() from using
runtime PM until then.
On the build break: thanks for the log. The SN624x call sites need to match
the current sdca_asoc_pde_poll_actual_ps() / sdca_parse_function()
prototypes (drop the unused device argument and the SoundWire slaveargument
respectively). That will be in the same incremental series. I've also
re-tested on the LG Wildcat Lake / PTL machine after thesefixes; audio comes
up normally.
Incremental patches shortly.
Best regards
Qianghua Wang
Re: [PATCH v3 1/3] ASoC: codecs: add SN624x SDCA SoundWire driver
On Fri, Aug 14, 2026 at 10:56:48AM +0800, Qianghua Wang wrote:
> Add a SoundWire SDCA driver for Senary SN624x multi-function codecs
> (jack, speaker amp, and DMIC). Program SDCA SampleFreqIndex in
> hw_params, keep SDCA jack IRQs masked with poll-based detection, and
> extend the Senary MAINTAINERS entry for the new codec files only.
This looks mostly fine but you have some issues around when runtime PM is
enabled.
> + ret = devm_snd_soc_register_component(dev,
> + &soc_sdca_dev_sn624x,
sn624x_sdca_dai,
> + ARRAY_SIZE(sn624x_sdca_dai));
> + if (ret < 0)
> + return ret;
> +
> + pm_runtime_set_autosuspend_delay(dev, 3000);
> + pm_runtime_use_autosuspend(dev);
> + pm_runtime_mark_last_busy(dev);
> + pm_runtime_enable(dev);
The component is registered before we enable runtime PM, this means that
things like jack detection that try to use runtime PM could get run before
it gets enabled which will result in bugs with mismatched counts or missing
references.
> +static void sn624x_sdca_sdw_remove(struct sdw_slave *slave) {
> + struct sn624x_sdca_priv *sn624x = dev_get_drvdata(&slave->dev);
> +
> + SN624X_DBG(&slave->dev, "SoundWire driver remove\n");
> + cancel_delayed_work_sync(&sn624x->jack_detect_work);
> + sn624x_jack_rpm_put(sn624x);
> + if (sn624x->first_hw_init)
> + pm_runtime_disable(&slave->dev);
> + mutex_destroy(&sn624x->disable_irq_lock);
> +}
The runtime PM enable is unconditional in the probe.
Since fixing these would be relatively small changes code wise I'll push
this into CI, assuming it goes OK there I'll apply so the driver makes the
merge window - please send incremental fixes for this and anything else that
gets noticed.
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.