ARM: SAMSUNG: Add call to register array of clocks
authorBen Dooks <ben-linux@fluff.org>
Tue, 5 Jan 2010 16:21:38 +0000 (01:21 +0900)
committerBen Dooks <ben-linux@fluff.org>
Fri, 15 Jan 2010 08:10:11 +0000 (17:10 +0900)
Add s3c_register_clocks() to register an array of clocks, printing
an error message if there is a problem. Replace all points in the code
where this could be used.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
arch/arm/mach-s3c2443/clock.c
arch/arm/plat-s3c/pwm-clock.c
arch/arm/plat-s3c64xx/clock.c
arch/arm/plat-s5pc1xx/clock.c
arch/arm/plat-samsung/clock.c
arch/arm/plat-samsung/include/plat/clock.h

index 91db4f54bb3328be383b6c9e796ee5248585490e..3eb8b935d64c22601c81ed9d89b04370eeecca78 100644 (file)
@@ -1104,14 +1104,7 @@ void __init s3c2443_init_clocks(int xtal)
 
        /* register clocks from clock array */
 
-       clkp = init_clocks;
-       for (ptr = 0; ptr < ARRAY_SIZE(init_clocks); ptr++, clkp++) {
-               ret = s3c24xx_register_clock(clkp);
-               if (ret < 0) {
-                       printk(KERN_ERR "Failed to register clock %s (%d)\n",
-                              clkp->name, ret);
-               }
-       }
+       s3c_register_clocks(init_clocks, ARRAY_SIZE(init_clocks));
 
        /* We must be careful disabling the clocks we are not intending to
         * be using at boot time, as subsystems such as the LCD which do
index 1808fa88609a26e09d85fb5256e137e2e72390b3..46c9381e083b2e19a8a40499d9baec71a5a68c68 100644 (file)
@@ -430,25 +430,15 @@ __init void s3c_pwmclk_init(void)
                return;
        }
 
-       for (clk = 0; clk < ARRAY_SIZE(clk_timer_scaler); clk++) {
+       for (clk = 0; clk < ARRAY_SIZE(clk_timer_scaler); clk++)
                clk_timer_scaler[clk].parent = clk_timers;
-               ret = s3c24xx_register_clock(&clk_timer_scaler[clk]);
-               if (ret < 0) {
-                       printk(KERN_ERR "error adding pwm scaler%d clock\n", clk);
-                       return;
-               }
-       }
 
-       for (clk = 0; clk < ARRAY_SIZE(clk_timer_tclk); clk++) {
-               ret = s3c24xx_register_clock(&clk_timer_tclk[clk]);
-               if (ret < 0) {
-                       printk(KERN_ERR "error adding pww tclk%d\n", clk);
-                       return;
-               }
-       }
+       s3c_register_clocks(clk_timer_scaler, ARRAY_SIZE(clk_timer_scaler));
+       s3c_register_clocks(clk_timer_tclk, ARRAY_SIZE(clk_timer_tclk));
 
        for (clk = 0; clk < ARRAY_SIZE(clk_timer_tdiv); clk++) {
                ret = clk_pwm_tdiv_register(clk);
+
                if (ret < 0) {
                        printk(KERN_ERR "error adding pwm%d tdiv clock\n", clk);
                        return;
index 7a36e899360d5a853ec173a7e010a8a0d16ff8a4..ae5883c00e7ad057edb4e0953028933297f40b52 100644 (file)
@@ -274,15 +274,7 @@ void __init s3c64xx_register_clocks(void)
        int ptr;
 
        s3c24xx_register_clocks(clks, ARRAY_SIZE(clks));
-
-       clkp = init_clocks;
-       for (ptr = 0; ptr < ARRAY_SIZE(init_clocks); ptr++, clkp++) {
-               ret = s3c24xx_register_clock(clkp);
-               if (ret < 0) {
-                       printk(KERN_ERR "Failed to register clock %s (%d)\n",
-                              clkp->name, ret);
-               }
-       }
+       s3c_register_clocks(init_clocks, ARRAY_SIZE(init_clocks));
 
        clkp = init_clocks_disable;
        for (ptr = 0; ptr < ARRAY_SIZE(init_clocks_disable); ptr++, clkp++) {
index 2f4d8d4c4e1c8651d4d35cc9aaa38e3c3814a616..0aff16d1cc2c683c610f20cc9ba08a70c243a49a 100644 (file)
@@ -704,16 +704,8 @@ void __init s5pc1xx_register_clocks(void)
 
        s3c24xx_register_clocks(clks, ARRAY_SIZE(clks));
 
-       clkp = s5pc100_init_clocks;
-       size = ARRAY_SIZE(s5pc100_init_clocks);
-
-       for (ptr = 0; ptr < size; ptr++, clkp++) {
-               ret = s3c24xx_register_clock(clkp);
-               if (ret < 0) {
-                       printk(KERN_ERR "Failed to register clock %s (%d)\n",
-                              clkp->name, ret);
-               }
-       }
+       s3c_register_clocks(s5pc100_init_clocks,
+                           ARRAY_SIZE(s5pc100_init_clocks));
 
        clkp = s5pc100_init_clocks_disable;
        size = ARRAY_SIZE(s5pc100_init_clocks_disable);
index fa91125c7e0e87cc74c5f98c8685e3f9736cd545..9194af91e4b7a92659328b58870bd0e4ca77e8d0 100644 (file)
@@ -336,6 +336,28 @@ int s3c24xx_register_clocks(struct clk **clks, int nr_clks)
        return fails;
 }
 
+/**
+ * s3c_register_clocks() - register an array of clocks
+ * @clkp: Pointer to the first clock in the array.
+ * @nr_clks: Number of clocks to register.
+ *
+ * Call s3c24xx_register_clock() on the @clkp array given, printing an
+ * error if it fails to register the clock (unlikely).
+ */
+void __initdata s3c_register_clocks(struct clk *clkp, int nr_clks)
+{
+       int ret;
+
+       for (; nr_clks > 0; nr_clks--, clkp++) {
+               ret = s3c24xx_register_clock(clkp);
+
+               if (ret < 0) {
+                       printk(KERN_ERR "Failed to register clock %s (%d)\n",
+                              clkp->name, ret);
+               }
+       }
+}
+
 /* initalise all the clocks */
 
 int __init s3c24xx_register_baseclocks(unsigned long xtal)
index 43324af24c6e8a54df666945d0c60312fcc202f3..bd41f828d15d0871151079915c73ad0bf8e73578 100644 (file)
@@ -87,6 +87,8 @@ extern int s3c2410_clkcon_enable(struct clk *clk, int enable);
 extern int s3c24xx_register_clock(struct clk *clk);
 extern int s3c24xx_register_clocks(struct clk **clk, int nr_clks);
 
+extern void s3c_register_clocks(struct clk *clk, int nr_clks);
+
 extern int s3c24xx_register_baseclocks(unsigned long xtal);
 
 extern void s3c64xx_register_clocks(void);