diff mbox series

[2/3] ASoC: cs42l43: Sync the hp ilimit works when removing the component

Message ID 20240202140619.1068560-2-ckeepax@opensource.cirrus.com
State Accepted
Commit 7fa1a01ba6cb64bc24e7ba0dbee589f3f09f3cf7
Headers show
Series [1/3] ASoC: cs42l43: Add clear of stashed pointer on component remove | expand

Commit Message

Charles Keepax Feb. 2, 2024, 2:06 p.m. UTC
Synchronise the headphone ilimit work functions when removing the
component. These can only trigger whilst the headphone is enabled which
shouldn't be possible once the component is removed but the works rely
on the stashed component pointer so they should be shut down before the
code moves on from component remove.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
---
 sound/soc/codecs/cs42l43.c | 3 +++
 1 file changed, 3 insertions(+)
diff mbox series

Patch

diff --git a/sound/soc/codecs/cs42l43.c b/sound/soc/codecs/cs42l43.c
index 9e1deb3242cb..c84d5952cdb5 100644
--- a/sound/soc/codecs/cs42l43.c
+++ b/sound/soc/codecs/cs42l43.c
@@ -2115,6 +2115,9 @@  static void cs42l43_component_remove(struct snd_soc_component *component)
 {
 	struct cs42l43_codec *priv = snd_soc_component_get_drvdata(component);
 
+	cancel_work_sync(&priv->hp_ilimit_work);
+	cancel_delayed_work_sync(&priv->hp_ilimit_clear_work);
+
 	priv->component = NULL;
 }