ASoC: cs42l43: Sync the hp ilimit works when removing the component
authorCharles Keepax <ckeepax@opensource.cirrus.com>
Fri, 2 Feb 2024 14:06:18 +0000 (14:06 +0000)
committerMark Brown <broonie@kernel.org>
Mon, 5 Feb 2024 14:32:25 +0000 (14:32 +0000)
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>
Link: https://lore.kernel.org/r/20240202140619.1068560-2-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/cs42l43.c

index 9e1deb3242cb292c20f2330a8bd221f71be33451..c84d5952cdb503b04b1b7cc84912d16b49f0307a 100644 (file)
@@ -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;
 }