mirror of https://gitee.com/openkylin/linux.git
[ARM] S3C: Fix scaler1 clock rate information
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@fluff.org>
This commit is contained in:
parent
82fd8e681d
commit
7d2dbcf9fa
|
@ -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 {
|
||||
|
|
Loading…
Reference in New Issue