diff options
Diffstat (limited to 'drivers/clk/socfpga/clk-gate-a10.c')
| -rw-r--r-- | drivers/clk/socfpga/clk-gate-a10.c | 9 | 
1 files changed, 5 insertions, 4 deletions
| diff --git a/drivers/clk/socfpga/clk-gate-a10.c b/drivers/clk/socfpga/clk-gate-a10.c index cd5df9103614..738c53391e39 100644 --- a/drivers/clk/socfpga/clk-gate-a10.c +++ b/drivers/clk/socfpga/clk-gate-a10.c @@ -98,7 +98,7 @@ static void __init __socfpga_gate_init(struct device_node *node,  	u32 div_reg[3];  	u32 clk_phase[2];  	u32 fixed_div; -	struct clk *clk; +	struct clk_hw *hw_clk;  	struct socfpga_gate_clk *socfpga_clk;  	const char *clk_name = node->name;  	const char *parent_name[SOCFPGA_MAX_PARENTS]; @@ -146,6 +146,7 @@ static void __init __socfpga_gate_init(struct device_node *node,  		if (IS_ERR(socfpga_clk->sys_mgr_base_addr)) {  			pr_err("%s: failed to find altr,sys-mgr regmap!\n",  					__func__); +			kfree(socfpga_clk);  			return;  		}  	} @@ -159,13 +160,13 @@ static void __init __socfpga_gate_init(struct device_node *node,  	init.num_parents = of_clk_parent_fill(node, parent_name, SOCFPGA_MAX_PARENTS);  	init.parent_names = parent_name;  	socfpga_clk->hw.hw.init = &init; +	hw_clk = &socfpga_clk->hw.hw; -	clk = clk_register(NULL, &socfpga_clk->hw.hw); -	if (WARN_ON(IS_ERR(clk))) { +	if (clk_hw_register(NULL, hw_clk)) {  		kfree(socfpga_clk);  		return;  	} -	rc = of_clk_add_provider(node, of_clk_src_simple_get, clk); +	rc = of_clk_add_provider(node, of_clk_src_simple_get, hw_clk);  	if (WARN_ON(rc))  		return;  } | 
