From: Charles Keepax Date: Fri, 2 Feb 2024 14:06:18 +0000 (+0000) Subject: ASoC: cs42l43: Sync the hp ilimit works when removing the component X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=7fa1a01ba6cb64bc24e7ba0dbee589f3f09f3cf7;p=linux.git ASoC: cs42l43: Sync the hp ilimit works when removing the component 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 Link: https://lore.kernel.org/r/20240202140619.1068560-2-ckeepax@opensource.cirrus.com Signed-off-by: Mark Brown --- diff --git a/sound/soc/codecs/cs42l43.c b/sound/soc/codecs/cs42l43.c index 9e1deb3242cb2..c84d5952cdb50 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; }