]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ALSA: hda: cs35l41: Component should be unbound before deconstruction
authorSimon Trimmer <simont@opensource.cirrus.com>
Thu, 13 Jun 2024 13:37:12 +0000 (14:37 +0100)
committerTakashi Iwai <tiwai@suse.de>
Fri, 14 Jun 2024 12:48:43 +0000 (14:48 +0200)
The interface associated with the hda_component should be deactivated
before the driver is deconstructed during removal.

Fixes: 7b2f3eb492da ("ALSA: hda: cs35l41: Add support for CS35L41 in HDA systems")
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-3-simont@opensource.cirrus.com
sound/pci/hda/cs35l41_hda.c

index d54d4d60b03ec7344bf704ba5305357fecc91748..031703f010be5b25aee4f124915862a4b1af77dc 100644 (file)
@@ -2019,6 +2019,8 @@ void cs35l41_hda_remove(struct device *dev)
 {
        struct cs35l41_hda *cs35l41 = dev_get_drvdata(dev);
 
+       component_del(cs35l41->dev, &cs35l41_hda_comp_ops);
+
        pm_runtime_get_sync(cs35l41->dev);
        pm_runtime_dont_use_autosuspend(cs35l41->dev);
        pm_runtime_disable(cs35l41->dev);
@@ -2026,8 +2028,6 @@ void cs35l41_hda_remove(struct device *dev)
        if (cs35l41->halo_initialized)
                cs35l41_remove_dsp(cs35l41);
 
-       component_del(cs35l41->dev, &cs35l41_hda_comp_ops);
-
        acpi_dev_put(cs35l41->dacpi);
 
        pm_runtime_put_noidle(cs35l41->dev);