Skip to contentSkip to conversation

aic23: omap-alsa-aic23.c clockrate config fix.

PATCH In review lamikr 1 participant 1 message May 25, 2006 Sound

lore
Share & tools
lore

lamikr

author
#0 lore raw

PATCH 2/3 aic23: omap-alsa-aic23.c clockrate config fix.

Do not try to change the clockrate if it is already ok. This fixes the driver for omap-innovator which uses fixed clockrate.

Quoted 1 line

From nobody Mon Sep 17 00:00:00 2001

From: Mika Laitio <[email protected]>
Date: Thu May 25 23:24:16 2006 +0300
Subject: [PATCH 2/3] aic23: omap-alsa-aic23.c clockrate config fix.

---

 sound/arm/omap/omap-alsa-aic23.c |   16 ++++++++++------
 1 files changed, 10 insertions(+), 6 deletions(-)

48b9327b4d5932cf2f18c8e529e3401b2e926b84

sound/arm/omap/omap-alsa-aic23.c +10 -6
index 18b7395..293c2d4 100644
@@ -212,6 +212,8 @@ void aic23_clock_setup(void)
  */
 int aic23_clock_on(void)
 {
+	uint	curRate;
+
 	if (clk_get_usecount(aic23_mclk) > 0) {
 		/* MCLK is already in use */
 		printk(KERN_WARNING
@@ -219,13 +221,14 @@ int aic23_clock_on(void)
 		       (uint) clk_get_rate(aic23_mclk),
 		       CODEC_CLOCK);
 	}
-	
-	if (clk_set_rate(aic23_mclk, CODEC_CLOCK)) {
-		printk(KERN_ERR
-		       "Cannot set MCLK for AIC23 CODEC\n");
-		return -ECANCELED;
+	curRate	= (uint)clk_get_rate(aic23_mclk);
+	if (curRate != CODEC_CLOCK) {
+		if (clk_set_rate(aic23_mclk, CODEC_CLOCK)) {
+			printk(KERN_ERR
+			       "Cannot set MCLK for AIC23 CODEC\n");
+			return -ECANCELED;
+		}
 	}
-
 	clk_enable(aic23_mclk);
 
 	printk(KERN_DEBUG
@@ -239,6 +242,7 @@ int aic23_clock_on(void)
 			  ~ADC_OFF & ~MIC_OFF & ~LINE_OFF);	
 	return 0;
 }
+
 /*
  * Do some sanity check, turn clock off and then turn
  *  codec audio off
Signature · 1 line
1.2.2