diff --git a/[refs] b/[refs] index a93785ce9b2b..21be30a0be09 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 40d3e0f4942ec12c4521fe1b2a2b774164cd2c80 +refs/heads/master: ac3e2fa6770052a82d42fc4db194a27317518c97 diff --git a/trunk/drivers/amba/bus.c b/trunk/drivers/amba/bus.c index 84bdaace56c8..bd230e801131 100644 --- a/trunk/drivers/amba/bus.c +++ b/trunk/drivers/amba/bus.c @@ -460,9 +460,17 @@ static int amba_get_enable_pclk(struct amba_device *pcdev) if (IS_ERR(pclk)) return PTR_ERR(pclk); + ret = clk_prepare(pclk); + if (ret) { + clk_put(pclk); + return ret; + } + ret = clk_enable(pclk); - if (ret) + if (ret) { + clk_unprepare(pclk); clk_put(pclk); + } return ret; } @@ -472,6 +480,7 @@ static void amba_put_disable_pclk(struct amba_device *pcdev) struct clk *pclk = pcdev->pclk; clk_disable(pclk); + clk_unprepare(pclk); clk_put(pclk); }