diff options
author | Steve Rae <srae@broadcom.com> | 2016-06-22 02:43:07 +0300 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2016-06-25 00:24:38 +0300 |
commit | 8ada4e0ee652d2108c640a4daaf63865ad8dedb1 (patch) | |
tree | 9f8c4c1407385ce045bbf14c8ae40feec917006f /arch/arm/cpu/armv7/bcm235xx | |
parent | 77a1a677a6db02377921cda1a146d18efb1f31ec (diff) | |
download | u-boot-8ada4e0ee652d2108c640a4daaf63865ad8dedb1.tar.xz |
arm: bcm235xx: update clock framework
The handling of the "usage counter" is incorrect, and the clock should
only be disabled when transitioning from 1 to 0.
Reported-by: Chris Brand <chris.brand@broadcom.com>
Signed-off-by: Steve Rae <srae@broadcom.com>
Diffstat (limited to 'arch/arm/cpu/armv7/bcm235xx')
-rw-r--r-- | arch/arm/cpu/armv7/bcm235xx/clk-core.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/arch/arm/cpu/armv7/bcm235xx/clk-core.c b/arch/arm/cpu/armv7/bcm235xx/clk-core.c index 2b5da6bb6b..a326dfea6c 100644 --- a/arch/arm/cpu/armv7/bcm235xx/clk-core.c +++ b/arch/arm/cpu/armv7/bcm235xx/clk-core.c @@ -449,10 +449,9 @@ int clk_enable(struct clk *c) if (ret) return ret; - if (!c->use_cnt) { - c->use_cnt++; + if (!c->use_cnt) ret = c->ops->enable(c, 1); - } + c->use_cnt++; return ret; } @@ -464,9 +463,10 @@ void clk_disable(struct clk *c) if (!c->ops || !c->ops->enable) return; - if (c->use_cnt) { + if (c->use_cnt > 0) { c->use_cnt--; - c->ops->enable(c, 0); + if (c->use_cnt == 0) + c->ops->enable(c, 0); } /* disable parent */ |