]> Pileus Git - ~andy/linux/commitdiff
Merge branch 'clk-next-shmobile' into clk-next
authorMike Turquette <mturquette@linaro.org>
Tue, 14 Jan 2014 19:41:26 +0000 (11:41 -0800)
committerMike Turquette <mturquette@linaro.org>
Tue, 14 Jan 2014 19:41:26 +0000 (11:41 -0800)
drivers/clk/shmobile/clk-mstp.c

index e576b60de20e5fd47efcd278b8c0598a4ece05f2..42d5912b1d25aa908314f62c4138052e9fd51a15 100644 (file)
@@ -160,7 +160,7 @@ static void __init cpg_mstp_clocks_init(struct device_node *np)
        unsigned int i;
 
        group = kzalloc(sizeof(*group), GFP_KERNEL);
-       clks = kzalloc(MSTP_MAX_CLOCKS * sizeof(*clks), GFP_KERNEL);
+       clks = kmalloc(MSTP_MAX_CLOCKS * sizeof(*clks), GFP_KERNEL);
        if (group == NULL || clks == NULL) {
                kfree(group);
                kfree(clks);
@@ -181,6 +181,9 @@ static void __init cpg_mstp_clocks_init(struct device_node *np)
                return;
        }
 
+       for (i = 0; i < MSTP_MAX_CLOCKS; ++i)
+               clks[i] = ERR_PTR(-ENOENT);
+
        for (i = 0; i < MSTP_MAX_CLOCKS; ++i) {
                const char *parent_name;
                const char *name;
@@ -205,10 +208,11 @@ static void __init cpg_mstp_clocks_init(struct device_node *np)
                        continue;
                }
 
-               clks[clkidx] = cpg_mstp_clock_register(name, parent_name, i,
-                                                      group);
+               clks[clkidx] = cpg_mstp_clock_register(name, parent_name,
+                                                      clkidx, group);
                if (!IS_ERR(clks[clkidx])) {
-                       group->data.clk_num = max(group->data.clk_num, clkidx);
+                       group->data.clk_num = max(group->data.clk_num,
+                                                 clkidx + 1);
                        /*
                         * Register a clkdev to let board code retrieve the
                         * clock by name and register aliases for non-DT