From: Russell King Date: Thu, 22 Sep 2011 13:27:11 +0000 (+0100) Subject: clk: spi-pl022: convert to clk_prepare()/clk_unprepare() X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=7ff6bcf048e6a9849ea0b44269fa4c1c72869db2;p=linux-beck.git clk: spi-pl022: convert to clk_prepare()/clk_unprepare() Signed-off-by: Russell King --- diff --git a/drivers/spi/spi-pl022.c b/drivers/spi/spi-pl022.c index 3520cf955b95..1ab2fa0d37fd 100644 --- a/drivers/spi/spi-pl022.c +++ b/drivers/spi/spi-pl022.c @@ -2187,6 +2187,13 @@ pl022_probe(struct amba_device *adev, const struct amba_id *id) dev_err(&adev->dev, "could not retrieve SSP/SPI bus clock\n"); goto err_no_clk; } + + status = clk_prepare(pl022->clk); + if (status) { + dev_err(&adev->dev, "could not prepare SSP/SPI bus clock\n"); + goto err_clk_prep; + } + /* Disable SSP */ writew((readw(SSP_CR1(pl022->virtbase)) & (~SSP_CR1_MASK_SSE)), SSP_CR1(pl022->virtbase)); @@ -2238,6 +2245,8 @@ pl022_probe(struct amba_device *adev, const struct amba_id *id) pl022_dma_remove(pl022); free_irq(adev->irq[0], pl022); err_no_irq: + clk_unprepare(pl022->clk); + err_clk_prep: clk_put(pl022->clk); err_no_clk: iounmap(pl022->virtbase); @@ -2271,6 +2280,7 @@ pl022_remove(struct amba_device *adev) pl022_dma_remove(pl022); free_irq(adev->irq[0], pl022); clk_disable(pl022->clk); + clk_unprepare(pl022->clk); clk_put(pl022->clk); iounmap(pl022->virtbase); amba_release_regions(adev);