diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2013-02-24 05:46:59 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2013-02-24 05:46:59 -0500 |
commit | 86287958bdc49e17dfe3dc8a5dd6234235d9c945 (patch) | |
tree | 84faa506dad928120bd1ff345885ad03d670f893 /arch/arm/plat-omap | |
parent | b269b1709d17794bef0397b3de7d1db72bdef926 (diff) |
ARM: cleanup: clk_get() error handling
Use the correct IS_ERR() to determine if clk_get() returned an error.
Set timer->fclk to be an error value initially, and check everywhere
using IS_ERR(). This keeps the range of valid values for 'struct clk'
consistent.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/plat-omap')
-rw-r--r-- | arch/arm/plat-omap/dmtimer.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c index 7b433f3bddca..7cda34d93c8b 100644 --- a/arch/arm/plat-omap/dmtimer.c +++ b/arch/arm/plat-omap/dmtimer.c | |||
@@ -140,8 +140,7 @@ static int omap_dm_timer_prepare(struct omap_dm_timer *timer) | |||
140 | */ | 140 | */ |
141 | if (!(timer->capability & OMAP_TIMER_NEEDS_RESET)) { | 141 | if (!(timer->capability & OMAP_TIMER_NEEDS_RESET)) { |
142 | timer->fclk = clk_get(&timer->pdev->dev, "fck"); | 142 | timer->fclk = clk_get(&timer->pdev->dev, "fck"); |
143 | if (WARN_ON_ONCE(IS_ERR_OR_NULL(timer->fclk))) { | 143 | if (WARN_ON_ONCE(IS_ERR(timer->fclk))) { |
144 | timer->fclk = NULL; | ||
145 | dev_err(&timer->pdev->dev, ": No fclk handle.\n"); | 144 | dev_err(&timer->pdev->dev, ": No fclk handle.\n"); |
146 | return -EINVAL; | 145 | return -EINVAL; |
147 | } | 146 | } |
@@ -373,7 +372,7 @@ EXPORT_SYMBOL_GPL(omap_dm_timer_modify_idlect_mask); | |||
373 | 372 | ||
374 | struct clk *omap_dm_timer_get_fclk(struct omap_dm_timer *timer) | 373 | struct clk *omap_dm_timer_get_fclk(struct omap_dm_timer *timer) |
375 | { | 374 | { |
376 | if (timer) | 375 | if (timer && !IS_ERR(timer->fclk)) |
377 | return timer->fclk; | 376 | return timer->fclk; |
378 | return NULL; | 377 | return NULL; |
379 | } | 378 | } |
@@ -482,7 +481,7 @@ int omap_dm_timer_set_source(struct omap_dm_timer *timer, int source) | |||
482 | if (pdata && pdata->set_timer_src) | 481 | if (pdata && pdata->set_timer_src) |
483 | return pdata->set_timer_src(timer->pdev, source); | 482 | return pdata->set_timer_src(timer->pdev, source); |
484 | 483 | ||
485 | if (!timer->fclk) | 484 | if (IS_ERR(timer->fclk)) |
486 | return -EINVAL; | 485 | return -EINVAL; |
487 | 486 | ||
488 | switch (source) { | 487 | switch (source) { |
@@ -500,7 +499,7 @@ int omap_dm_timer_set_source(struct omap_dm_timer *timer, int source) | |||
500 | } | 499 | } |
501 | 500 | ||
502 | parent = clk_get(&timer->pdev->dev, parent_name); | 501 | parent = clk_get(&timer->pdev->dev, parent_name); |
503 | if (IS_ERR_OR_NULL(parent)) { | 502 | if (IS_ERR(parent)) { |
504 | pr_err("%s: %s not found\n", __func__, parent_name); | 503 | pr_err("%s: %s not found\n", __func__, parent_name); |
505 | return -EINVAL; | 504 | return -EINVAL; |
506 | } | 505 | } |
@@ -808,6 +807,7 @@ static int omap_dm_timer_probe(struct platform_device *pdev) | |||
808 | return -ENOMEM; | 807 | return -ENOMEM; |
809 | } | 808 | } |
810 | 809 | ||
810 | timer->fclk = ERR_PTR(-ENODEV); | ||
811 | timer->io_base = devm_request_and_ioremap(dev, mem); | 811 | timer->io_base = devm_request_and_ioremap(dev, mem); |
812 | if (!timer->io_base) { | 812 | if (!timer->io_base) { |
813 | dev_err(dev, "%s: region already claimed.\n", __func__); | 813 | dev_err(dev, "%s: region already claimed.\n", __func__); |