ASoC: fsl: fsl_ssi: Fix the order of resources removal
authorFabio Estevam <fabio.estevam@freescale.com>
Sat, 17 Aug 2013 21:13:00 +0000 (18:13 -0300)
committerMark Brown <broonie@linaro.org>
Tue, 20 Aug 2013 10:47:04 +0000 (11:47 +0100)
In fsl_ssi_remove() we need to remove the resources in the opposite order that
they were acquired in probe.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
sound/soc/fsl/fsl_ssi.c

index 0c072ff..3168998 100644 (file)
@@ -928,14 +928,14 @@ static int fsl_ssi_remove(struct platform_device *pdev)
 
        if (!ssi_private->new_binding)
                platform_device_unregister(ssi_private->pdev);
-       if (ssi_private->ssi_on_imx) {
+       if (ssi_private->ssi_on_imx)
                imx_pcm_dma_exit(pdev);
-               clk_disable_unprepare(ssi_private->clk);
-       }
        snd_soc_unregister_component(&pdev->dev);
+       dev_set_drvdata(&pdev->dev, NULL);
        device_remove_file(&pdev->dev, &ssi_private->dev_attr);
+       if (ssi_private->ssi_on_imx)
+               clk_disable_unprepare(ssi_private->clk);
        irq_dispose_mapping(ssi_private->irq);
-       dev_set_drvdata(&pdev->dev, NULL);
 
        return 0;
 }