]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ALSA: hda: cs35l56: Component should be unbound before deconstruction
authorSimon Trimmer <simont@opensource.cirrus.com>
Thu, 13 Jun 2024 13:37:11 +0000 (14:37 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Jun 2024 11:52:20 +0000 (13:52 +0200)
[ Upstream commit 721f2e6653f5ab0cc52b3a459c4a2158b92fcf80 ]

The interface associated with the hda_component should be deactivated
before the driver is deconstructed during removal.

Fixes: 73cfbfa9caea ("ALSA: hda/cs35l56: Add driver for Cirrus Logic CS35L56 amplifier")
Signed-off-by: Simon Trimmer <simont@opensource.cirrus.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/20240613133713.75550-2-simont@opensource.cirrus.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
sound/pci/hda/cs35l56_hda.c

index 11b0570ff56d44c42a915ceb04d74d996f06adb1..6b77c38a0e15502958ababc71472dd6ed8f30c3c 100644 (file)
@@ -1072,12 +1072,12 @@ void cs35l56_hda_remove(struct device *dev)
 {
        struct cs35l56_hda *cs35l56 = dev_get_drvdata(dev);
 
+       component_del(cs35l56->base.dev, &cs35l56_hda_comp_ops);
+
        pm_runtime_dont_use_autosuspend(cs35l56->base.dev);
        pm_runtime_get_sync(cs35l56->base.dev);
        pm_runtime_disable(cs35l56->base.dev);
 
-       component_del(cs35l56->base.dev, &cs35l56_hda_comp_ops);
-
        cs_dsp_remove(&cs35l56->cs_dsp);
 
        kfree(cs35l56->system_name);