diff options
| author | Richard Fitzgerald <rf@opensource.cirrus.com> | 2026-08-10 11:40:45 +0100 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2026-08-14 13:53:26 +0100 |
| commit | 243ca1fb53834dfa445ccb5d4dd8c7411e89b878 (patch) | |
| tree | 92a5f775808ae0664c6c6329bf90a5339356872c /include | |
| parent | ee1811eacdbba15a374957c2bcc6ba7102e2b781 (diff) | |
| download | linux-243ca1fb53834dfa445ccb5d4dd8c7411e89b878.tar.gz linux-243ca1fb53834dfa445ccb5d4dd8c7411e89b878.zip | |
ASoC: cs35l56: Use IRQ provided by the SoundWire core
Replace the custom SoundWire IRQ handling with the generic nested IRQ
provided by the SoundWire core. This removes the local IRQ work function
and the convoluted IRQ masking and pm_runtime management around it.
We still need the local functions to mask/disable and unmask/enable the
SoundWire interrupts because the devices handled by the cs35l56 driver
don't have the generic mask bit for the ImpDef1 interrupt so masking and
unmasking has to use a custom mask bit.
cs35l56_sdw_remove() doesn't need to call cs35l56_disable_sdw_interrupts()
now that there isn't a local work function to be flushed. It only masks
the custom interrupt mask bit and the rest of the handler cleanup will be
done the normal way by devm_free_irq() in cs35l56_remove().
Similar applies to cs35l56_sdw_system_suspend() - it is enough to write
the custom mask bits.
cs35l56_irq() doesn't need to be exported because cs35l56_sdw.c isn't
calling it.
Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Link: https://patch.msgid.link/20260810104045.60701-5-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'include')
| -rw-r--r-- | include/sound/cs35l56.h | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/include/sound/cs35l56.h b/include/sound/cs35l56.h index 2490b72c0a7a..45a5df574aa6 100644 --- a/include/sound/cs35l56.h +++ b/include/sound/cs35l56.h @@ -417,7 +417,6 @@ void cs35l56_wait_control_port_ready(void); void cs35l56_wait_min_reset_pulse(void); void cs35l56_system_reset(struct cs35l56_base *cs35l56_base, bool is_soundwire); int cs35l56_irq_request(struct cs35l56_base *cs35l56_base, int irq); -irqreturn_t cs35l56_irq(int irq, void *data); int cs35l56_is_fw_reload_needed(struct cs35l56_base *cs35l56_base); int cs35l56_runtime_suspend_common(struct cs35l56_base *cs35l56_base); int cs35l56_runtime_resume_common(struct cs35l56_base *cs35l56_base, bool is_soundwire); |
