Browse Source

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>
Fabio Estevam 12 years ago
parent
commit
e11933f626
1 changed files with 2 additions and 5 deletions
  1. 2 5
      drivers/spi/spi-mxs.c

+ 2 - 5
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;