ASoC: tegra20: i2s: Correct driver removal order
authorDmitry Osipenko <digetx@gmail.com>
Sun, 14 Mar 2021 15:44:51 +0000 (18:44 +0300)
committerMark Brown <broonie@kernel.org>
Thu, 18 Mar 2021 13:49:37 +0000 (13:49 +0000)
Tegra20 I2S driver has a wrong driver removal order, which should be
opposite to the registration order, but it's not. In particular the
runtime PM is disabled in a wrong order. Fix the order.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Link: https://lore.kernel.org/r/20210314154459.15375-10-digetx@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/tegra/tegra20_i2s.c

index 2675174..0f2bdc2 100644 (file)
@@ -440,13 +440,13 @@ static int tegra20_i2s_platform_remove(struct platform_device *pdev)
 {
        struct tegra20_i2s *i2s = dev_get_drvdata(&pdev->dev);
 
+       tegra_pcm_platform_unregister(&pdev->dev);
+       snd_soc_unregister_component(&pdev->dev);
+
        pm_runtime_disable(&pdev->dev);
        if (!pm_runtime_status_suspended(&pdev->dev))
                tegra20_i2s_runtime_suspend(&pdev->dev);
 
-       tegra_pcm_platform_unregister(&pdev->dev);
-       snd_soc_unregister_component(&pdev->dev);
-
        clk_put(i2s->clk_i2s);
 
        return 0;