diff options
| -rw-r--r-- | drivers/clk/clk.c | 21 | 
1 files changed, 6 insertions, 15 deletions
| diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index 5a1507498e05..03820467fbba 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -2422,24 +2422,15 @@ static int __clk_core_init(struct clk_core *core)  	core->rate = core->req_rate = rate;  	/* -	 * walk the list of orphan clocks and reparent any that are children of -	 * this clock +	 * walk the list of orphan clocks and reparent any that newly finds a +	 * parent.  	 */  	hlist_for_each_entry_safe(orphan, tmp2, &clk_orphan_list, child_node) { -		if (orphan->num_parents && orphan->ops->get_parent) { -			i = orphan->ops->get_parent(orphan->hw); -			if (i >= 0 && i < orphan->num_parents && -			    !strcmp(core->name, orphan->parent_names[i])) -				clk_core_reparent(orphan, core); -			continue; -		} +		struct clk_core *parent = __clk_init_parent(orphan); -		for (i = 0; i < orphan->num_parents; i++) -			if (!strcmp(core->name, orphan->parent_names[i])) { -				clk_core_reparent(orphan, core); -				break; -			} -	 } +		if (parent) +			clk_core_reparent(orphan, parent); +	}  	/*  	 * optional platform-specific magic | 
