summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Brown <broonie@linaro.org>2013-07-23 19:17:07 +0100
committerMark Brown <broonie@linaro.org>2013-07-23 19:17:07 +0100
commit7c9e061729c0c612f57fe27b7e72cde308263cf0 (patch)
tree519cba01d4231fb209201b7d11a3e90aa4174077
parent3b2f64d00c46e1e4e9bd0bb9bb12619adac27a4b (diff)
parent9a9b1c618d835e7a6a4097eb47ee47991202a3c1 (diff)
downloadop-kernel-dev-7c9e061729c0c612f57fe27b7e72cde308263cf0.zip
op-kernel-dev-7c9e061729c0c612f57fe27b7e72cde308263cf0.tar.gz
Merge remote-tracking branch 'asoc/fix/atmel' into asoc-linus
-rw-r--r--drivers/misc/atmel-ssc.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/misc/atmel-ssc.c b/drivers/misc/atmel-ssc.c
index f7b90661..e068a76 100644
--- a/drivers/misc/atmel-ssc.c
+++ b/drivers/misc/atmel-ssc.c
@@ -66,14 +66,19 @@ EXPORT_SYMBOL(ssc_request);
void ssc_free(struct ssc_device *ssc)
{
+ bool disable_clk = true;
+
spin_lock(&user_lock);
- if (ssc->user) {
+ if (ssc->user)
ssc->user--;
- clk_disable_unprepare(ssc->clk);
- } else {
+ else {
+ disable_clk = false;
dev_dbg(&ssc->pdev->dev, "device already free\n");
}
spin_unlock(&user_lock);
+
+ if (disable_clk)
+ clk_disable_unprepare(ssc->clk);
}
EXPORT_SYMBOL(ssc_free);
OpenPOWER on IntegriCloud