diff options
Diffstat (limited to 'drivers/clk')
-rw-r--r-- | drivers/clk/sunxi/clk-sunxi.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/drivers/clk/sunxi/clk-sunxi.c b/drivers/clk/sunxi/clk-sunxi.c index 2524d6f..f777b4f 100644 --- a/drivers/clk/sunxi/clk-sunxi.c +++ b/drivers/clk/sunxi/clk-sunxi.c @@ -615,8 +615,8 @@ static const struct mux_data sun8i_h3_ahb2_mux_data __initconst = { .shift = 0, }; -static void __init sunxi_mux_clk_setup(struct device_node *node, - struct mux_data *data) +static struct clk * __init sunxi_mux_clk_setup(struct device_node *node, + struct mux_data *data) { struct clk *clk; const char *clk_name = node->name; @@ -646,10 +646,12 @@ static void __init sunxi_mux_clk_setup(struct device_node *node, of_clk_add_provider(node, of_clk_src_simple_get, clk); clk_register_clkdev(clk, clk_name, NULL); - return; + + return clk; out_unmap: iounmap(reg); + return NULL; } @@ -820,8 +822,8 @@ static const struct divs_data sun6i_a31_pll6_divs_data __initconst = { * |________________________| */ -static void __init sunxi_divs_clk_setup(struct device_node *node, - struct divs_data *data) +static struct clk ** __init sunxi_divs_clk_setup(struct device_node *node, + struct divs_data *data) { struct clk_onecell_data *clk_data; const char *parent; @@ -848,7 +850,7 @@ static void __init sunxi_divs_clk_setup(struct device_node *node, clk_data = kmalloc(sizeof(struct clk_onecell_data), GFP_KERNEL); if (!clk_data) - return; + return NULL; clks = kcalloc(ndivs, sizeof(*clks), GFP_KERNEL); if (!clks) @@ -934,7 +936,7 @@ static void __init sunxi_divs_clk_setup(struct device_node *node, of_clk_add_provider(node, of_clk_src_onecell_get, clk_data); - return; + return clks; free_gate: kfree(gate); @@ -942,6 +944,7 @@ free_clks: kfree(clks); free_clkdata: kfree(clk_data); + return NULL; } |