diff options
-rw-r--r-- | drivers/spi/spi-mxs.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/spi/spi-mxs.c b/drivers/spi/spi-mxs.c index 92254a1672e7..ecc59444875c 100644 --- a/drivers/spi/spi-mxs.c +++ b/drivers/spi/spi-mxs.c | |||
@@ -563,7 +563,10 @@ static int mxs_spi_probe(struct platform_device *pdev) | |||
563 | goto out_master_free; | 563 | goto out_master_free; |
564 | } | 564 | } |
565 | 565 | ||
566 | clk_prepare_enable(ssp->clk); | 566 | ret = clk_prepare_enable(ssp->clk); |
567 | if (ret) | ||
568 | goto out_dma_release; | ||
569 | |||
567 | clk_set_rate(ssp->clk, clk_freq); | 570 | clk_set_rate(ssp->clk, clk_freq); |
568 | ssp->clk_rate = clk_get_rate(ssp->clk) / 1000; | 571 | ssp->clk_rate = clk_get_rate(ssp->clk) / 1000; |
569 | 572 | ||
@@ -574,13 +577,14 @@ static int mxs_spi_probe(struct platform_device *pdev) | |||
574 | ret = spi_register_master(master); | 577 | ret = spi_register_master(master); |
575 | if (ret) { | 578 | if (ret) { |
576 | dev_err(&pdev->dev, "Cannot register SPI master, %d\n", ret); | 579 | dev_err(&pdev->dev, "Cannot register SPI master, %d\n", ret); |
577 | goto out_free_dma; | 580 | goto out_disable_clk; |
578 | } | 581 | } |
579 | 582 | ||
580 | return 0; | 583 | return 0; |
581 | 584 | ||
582 | out_free_dma: | 585 | out_disable_clk: |
583 | clk_disable_unprepare(ssp->clk); | 586 | clk_disable_unprepare(ssp->clk); |
587 | out_dma_release: | ||
584 | dma_release_channel(ssp->dmach); | 588 | dma_release_channel(ssp->dmach); |
585 | out_master_free: | 589 | out_master_free: |
586 | spi_master_put(master); | 590 | spi_master_put(master); |