summaryrefslogtreecommitdiff
path: root/drivers/spi/spi-mxs.c
diff options
context:
space:
mode:
authorFabio Estevam <fabio.estevam@freescale.com>2013-07-10 03:16:27 (GMT)
committerMark Brown <broonie@linaro.org>2013-07-15 10:38:41 (GMT)
commite11933f626c0a1333ec118d35a0c6c90d576b707 (patch)
tree33114830c13095eb958f62ab58fa6acced3eff75 /drivers/spi/spi-mxs.c
parentad81f0545ef01ea651886dddac4bef6cec930092 (diff)
downloadlinux-e11933f626c0a1333ec118d35a0c6c90d576b707.tar.xz
spi: spi-mxs: Fix the error path sequence
On mxs_spi_probe() the dma channels are requested prior to enabling the SSP clock, so in the error path we should disable the SSP clock first and release the DMA channels later. Same logic applies in mxs_spi_remove(). Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> Acked-by: Marek Vasut <marex@denx.de> Signed-off-by: Mark Brown <broonie@linaro.org>
Diffstat (limited to 'drivers/spi/spi-mxs.c')
-rw-r--r--drivers/spi/spi-mxs.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/drivers/spi/spi-mxs.c b/drivers/spi/spi-mxs.c
index 424d38e..92254a1 100644
--- a/drivers/spi/spi-mxs.c
+++ b/drivers/spi/spi-mxs.c
@@ -580,8 +580,8 @@ static int mxs_spi_probe(struct platform_device *pdev)
return 0;
out_free_dma:
- dma_release_channel(ssp->dmach);
clk_disable_unprepare(ssp->clk);
+ dma_release_channel(ssp->dmach);
out_master_free:
spi_master_put(master);
return ret;
@@ -598,11 +598,8 @@ static int mxs_spi_remove(struct platform_device *pdev)
ssp = &spi->ssp;
spi_unregister_master(master);
-
- dma_release_channel(ssp->dmach);
-
clk_disable_unprepare(ssp->clk);
-
+ dma_release_channel(ssp->dmach);
spi_master_put(master);
return 0;