aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSanjeev Premi <premi@ti.com>2010-02-24 12:05:56 -0700
committerPaul Walmsley <paul@pwsan.com>2010-02-24 12:05:56 -0700
commita51ba284076437ce36efc8dd9b15983546c043f7 (patch)
tree9548b92b4255cd28e9c1c7bec2d8af95c440d9e0
parent3cc4a2fc2ed7727828f410ab092111cb56cefd61 (diff)
OMAP3 clock: Check return values for clk_get()
This patch checks if clk_get() returned success for the clocks used in function omap2_clk_arch_init(). This version incorporates review comments from Kevin Hilman and Paul Walmsley. Signed-off-by: Sanjeev Premi <premi@ti.com> Signed-off-by: Paul Walmsley <paul@pwsan.com>
-rw-r--r--arch/arm/mach-omap2/clock34xx.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/clock34xx.c b/arch/arm/mach-omap2/clock34xx.c
index 0e4fdba7f20..de7391b6bcf 100644
--- a/arch/arm/mach-omap2/clock34xx.c
+++ b/arch/arm/mach-omap2/clock34xx.c
@@ -21,6 +21,7 @@
#include <linux/delay.h>
#include <linux/clk.h>
#include <linux/io.h>
+#include <linux/err.h>
#include <plat/cpu.h>
#include <plat/clock.h>
@@ -286,6 +287,7 @@ static int __init omap3xxx_clk_arch_init(void)
{
struct clk *osc_sys_ck, *dpll1_ck, *arm_fck, *core_ck;
unsigned long osc_sys_rate;
+ bool err = 0;
if (!cpu_is_omap34xx())
return 0;
@@ -295,9 +297,23 @@ static int __init omap3xxx_clk_arch_init(void)
/* XXX test these for success */
dpll1_ck = clk_get(NULL, "dpll1_ck");
+ if (WARN(IS_ERR(dpll1_ck), "Failed to get dpll1_ck.\n"))
+ err = 1;
+
arm_fck = clk_get(NULL, "arm_fck");
+ if (WARN(IS_ERR(arm_fck), "Failed to get arm_fck.\n"))
+ err = 1;
+
core_ck = clk_get(NULL, "core_ck");
+ if (WARN(IS_ERR(core_ck), "Failed to get core_ck.\n"))
+ err = 1;
+
osc_sys_ck = clk_get(NULL, "osc_sys_ck");
+ if (WARN(IS_ERR(osc_sys_ck), "Failed to get osc_sys_ck.\n"))
+ err = 1;
+
+ if (err)
+ return -ENOENT;
/* REVISIT: not yet ready for 343x */
if (clk_set_rate(dpll1_ck, mpurate))