[pwm-fixes] [ARM] S3C: Fix scaler1 clock rate information

Ben Dooks ben-linux at fluff.org
Fri Nov 21 11:40:19 CET 2008


The pwm-scaler0 and pwm-scaler1 clocks have their
.id field set to -1 as they are not referenced to
any specific device. However, parts of the pwm-clock
code used the .id field to identify which scaler
clock was being used.

Fix the problem by comparing against the pointer to
the clock to identify the scalers.

Signed-off-by: Ben Dooks <ben-linux at fluff.org>
---
 arch/arm/plat-s3c/pwm-clock.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/arch/arm/plat-s3c/pwm-clock.c b/arch/arm/plat-s3c/pwm-clock.c
index ea6ea3e..a318215 100644
--- a/arch/arm/plat-s3c/pwm-clock.c
+++ b/arch/arm/plat-s3c/pwm-clock.c
@@ -73,11 +73,13 @@
  * tclk -------------------------/
 */
 
+static struct clk clk_timer_scaler[];
+
 static unsigned long clk_pwm_scaler_get_rate(struct clk *clk)
 {
 	unsigned long tcfg0 = __raw_readl(S3C2410_TCFG0);
 
-	if (clk->id == 1) {
+	if (clk == &clk_timer_scaler[1]) {
 		tcfg0 &= S3C2410_TCFG_PRESCALER1_MASK;
 		tcfg0 >>= S3C2410_TCFG_PRESCALER1_SHIFT;
 	} else {
@@ -114,7 +116,7 @@ static int clk_pwm_scaler_set_rate(struct clk *clk, unsigned long rate)
 	local_irq_save(flags);
 	tcfg0 = __raw_readl(S3C2410_TCFG0);
 
-	if (clk->id == 1) {
+	if (clk == &clk_timer_scaler[1]) {
 		tcfg0 &= ~S3C2410_TCFG_PRESCALER1_MASK;
 		tcfg0 |= divisor << S3C2410_TCFG_PRESCALER1_SHIFT;
 	} else {
-- 
1.5.6.5




More information about the openmoko-kernel mailing list