diff options
Diffstat (limited to 'arch/arm/common/timer-sp.c')
-rw-r--r-- | arch/arm/common/timer-sp.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/arm/common/timer-sp.c b/arch/arm/common/timer-sp.c index 41df47875122..2393b5bc96fa 100644 --- a/arch/arm/common/timer-sp.c +++ b/arch/arm/common/timer-sp.c | |||
@@ -41,9 +41,17 @@ static long __init sp804_get_clock_rate(const char *name) | |||
41 | return PTR_ERR(clk); | 41 | return PTR_ERR(clk); |
42 | } | 42 | } |
43 | 43 | ||
44 | err = clk_prepare(clk); | ||
45 | if (err) { | ||
46 | pr_err("sp804: %s clock failed to prepare: %d\n", name, err); | ||
47 | clk_put(clk); | ||
48 | return err; | ||
49 | } | ||
50 | |||
44 | err = clk_enable(clk); | 51 | err = clk_enable(clk); |
45 | if (err) { | 52 | if (err) { |
46 | pr_err("sp804: %s clock failed to enable: %d\n", name, err); | 53 | pr_err("sp804: %s clock failed to enable: %d\n", name, err); |
54 | clk_unprepare(clk); | ||
47 | clk_put(clk); | 55 | clk_put(clk); |
48 | return err; | 56 | return err; |
49 | } | 57 | } |
@@ -52,6 +60,7 @@ static long __init sp804_get_clock_rate(const char *name) | |||
52 | if (rate < 0) { | 60 | if (rate < 0) { |
53 | pr_err("sp804: %s clock failed to get rate: %ld\n", name, rate); | 61 | pr_err("sp804: %s clock failed to get rate: %ld\n", name, rate); |
54 | clk_disable(clk); | 62 | clk_disable(clk); |
63 | clk_unprepare(clk); | ||
55 | clk_put(clk); | 64 | clk_put(clk); |
56 | } | 65 | } |
57 | 66 | ||