Browse Source

Merge remote-tracking branch 'asoc/fix/atmel' into asoc-linus

Mark Brown 12 years ago
parent
commit
7c9e061729
1 changed files with 8 additions and 3 deletions
  1. 8 3
      drivers/misc/atmel-ssc.c

+ 8 - 3
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);