diff options
author | Ben Dooks <ben-linux@fluff.org> | 2009-09-17 10:12:48 +0100 |
---|---|---|
committer | Ben Dooks <ben-linux@fluff.org> | 2009-09-17 10:12:48 +0100 |
commit | 01875d56ae9877f41d672d57524d90d3d4d00adf (patch) | |
tree | df744b76afde73a8649400583bf7dfa1f7e30245 /arch/arm/plat-s3c64xx/s3c6400-clock.c | |
parent | d23b3517400e4638e76e8c8667c100721c6f03fe (diff) | |
parent | b93011e72c1476b08ff62977ecf648080ba38c1a (diff) |
Merge branch 'next-s3c64xx-fixes' into next-s3c-fixes
Diffstat (limited to 'arch/arm/plat-s3c64xx/s3c6400-clock.c')
-rw-r--r-- | arch/arm/plat-s3c64xx/s3c6400-clock.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/arm/plat-s3c64xx/s3c6400-clock.c b/arch/arm/plat-s3c64xx/s3c6400-clock.c index febac1950d8e..9745852261e0 100644 --- a/arch/arm/plat-s3c64xx/s3c6400-clock.c +++ b/arch/arm/plat-s3c64xx/s3c6400-clock.c @@ -302,8 +302,8 @@ static int s3c64xx_setrate_clksrc(struct clk *clk, unsigned long rate) return -EINVAL; val = __raw_readl(reg); - val &= ~(0xf << sclk->shift); - val |= (div - 1) << sclk->shift; + val &= ~(0xf << sclk->divider_shift); + val |= (div - 1) << sclk->divider_shift; __raw_writel(val, reg); return 0; @@ -328,6 +328,8 @@ static int s3c64xx_setparent_clksrc(struct clk *clk, struct clk *parent) clksrc |= src_nr << sclk->shift; __raw_writel(clksrc, S3C_CLK_SRC); + + clk->parent = parent; return 0; } @@ -343,7 +345,7 @@ static unsigned long s3c64xx_roundrate_clksrc(struct clk *clk, if (rate > parent_rate) rate = parent_rate; else { - div = rate / parent_rate; + div = parent_rate / rate; if (div == 0) div = 1; |