Tegra30 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-13-digetx@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
 {
        struct tegra30_i2s *i2s = dev_get_drvdata(&pdev->dev);
 
-       pm_runtime_disable(&pdev->dev);
-       if (!pm_runtime_status_suspended(&pdev->dev))
-               tegra30_i2s_runtime_suspend(&pdev->dev);
-
        tegra_pcm_platform_unregister(&pdev->dev);
        snd_soc_unregister_component(&pdev->dev);
 
        tegra30_ahub_unset_rx_cif_source(i2s->playback_i2s_cif);
        tegra30_ahub_free_tx_fifo(i2s->playback_fifo_cif);
 
+       pm_runtime_disable(&pdev->dev);
+       if (!pm_runtime_status_suspended(&pdev->dev))
+               tegra30_i2s_runtime_suspend(&pdev->dev);
+
        clk_put(i2s->clk_i2s);
 
        return 0;