Lines Matching refs:parent

49 	struct clk_core		*parent;  member
301 return hw->core->parent ? hw->core->parent->hw : NULL; in clk_hw_get_parent()
365 struct clk_core *parent; in clk_hw_get_parent_by_index() local
367 parent = clk_core_get_parent_by_index(hw->core, index); in clk_hw_get_parent_by_index()
369 return !parent ? NULL : parent->hw; in clk_hw_get_parent_by_index()
392 if (!core->parent) in clk_core_get_rate_nolock()
457 struct clk_core *core = hw->core, *parent, *best_parent = NULL; in clk_mux_determine_rate_flags() local
464 parent = core->parent; in clk_mux_determine_rate_flags()
466 ret = __clk_determine_rate(parent ? parent->hw : NULL, in clk_mux_determine_rate_flags()
472 } else if (parent) { in clk_mux_determine_rate_flags()
473 best = clk_core_get_rate_nolock(parent); in clk_mux_determine_rate_flags()
484 parent = clk_core_get_parent_by_index(core, i); in clk_mux_determine_rate_flags()
485 if (!parent) in clk_mux_determine_rate_flags()
490 ret = __clk_determine_rate(parent->hw, &parent_req); in clk_mux_determine_rate_flags()
494 parent_req.rate = clk_core_get_rate_nolock(parent); in clk_mux_determine_rate_flags()
499 best_parent = parent; in clk_mux_determine_rate_flags()
589 clk_core_unprepare(core->parent); in clk_core_unprepare()
624 ret = clk_core_prepare(core->parent); in clk_core_prepare()
636 clk_core_unprepare(core->parent); in clk_core_prepare()
693 clk_core_disable(core->parent); in clk_core_disable()
734 ret = clk_core_enable(core->parent); in clk_core_enable()
747 clk_core_disable(core->parent); in clk_core_enable()
788 struct clk_core *parent; in clk_core_round_rate_nolock() local
796 parent = core->parent; in clk_core_round_rate_nolock()
797 if (parent) { in clk_core_round_rate_nolock()
798 req->best_parent_hw = parent->hw; in clk_core_round_rate_nolock()
799 req->best_parent_rate = parent->rate; in clk_core_round_rate_nolock()
815 return clk_core_round_rate_nolock(parent, req); in clk_core_round_rate_nolock()
942 if (core->parent) in __clk_recalc_accuracies()
943 parent_accuracy = core->parent->accuracy; in __clk_recalc_accuracies()
1017 if (core->parent) in __clk_recalc_rates()
1018 parent_rate = core->parent->rate; in __clk_recalc_rates()
1066 struct clk_core *parent) in clk_fetch_parent_index() argument
1083 if (core->parents[i] == parent) in clk_fetch_parent_index()
1089 if (!strcmp(core->parent_names[i], parent->name)) { in clk_fetch_parent_index()
1090 core->parents[i] = clk_core_lookup(parent->name); in clk_fetch_parent_index()
1134 core->parent = new_parent; in clk_reparent()
1138 struct clk_core *parent) in __clk_set_parent_before() argument
1141 struct clk_core *old_parent = core->parent; in __clk_set_parent_before()
1161 clk_core_prepare(parent); in __clk_set_parent_before()
1163 clk_core_enable(parent); in __clk_set_parent_before()
1170 clk_reparent(core, parent); in __clk_set_parent_before()
1177 struct clk_core *parent, in __clk_set_parent_after() argument
1195 static int __clk_set_parent(struct clk_core *core, struct clk_core *parent, in __clk_set_parent() argument
1202 old_parent = __clk_set_parent_before(core, parent); in __clk_set_parent()
1204 trace_clk_set_parent(core, parent); in __clk_set_parent()
1207 if (parent && core->ops->set_parent) in __clk_set_parent()
1210 trace_clk_set_parent_complete(core, parent); in __clk_set_parent()
1216 __clk_set_parent_after(core, old_parent, parent); in __clk_set_parent()
1221 __clk_set_parent_after(core, parent, old_parent); in __clk_set_parent()
1281 if (new_parent && new_parent != core->parent) in clk_calc_subtree()
1298 struct clk_core *old_parent, *parent; in clk_calc_new_rates() local
1311 parent = old_parent = core->parent; in clk_calc_new_rates()
1312 if (parent) in clk_calc_new_rates()
1313 best_parent_rate = parent->rate; in clk_calc_new_rates()
1324 if (parent) { in clk_calc_new_rates()
1325 req.best_parent_hw = parent->hw; in clk_calc_new_rates()
1326 req.best_parent_rate = parent->rate; in clk_calc_new_rates()
1338 parent = req.best_parent_hw ? req.best_parent_hw->core : NULL; in clk_calc_new_rates()
1348 } else if (!parent || !(core->flags & CLK_SET_RATE_PARENT)) { in clk_calc_new_rates()
1354 top = clk_calc_new_rates(parent, rate); in clk_calc_new_rates()
1355 new_rate = parent->new_rate; in clk_calc_new_rates()
1360 if (parent != old_parent && in clk_calc_new_rates()
1368 if (parent && core->num_parents > 1) { in clk_calc_new_rates()
1369 p_index = clk_fetch_parent_index(core, parent); in clk_calc_new_rates()
1372 __func__, parent->name, core->name); in clk_calc_new_rates()
1377 if ((core->flags & CLK_SET_RATE_PARENT) && parent && in clk_calc_new_rates()
1378 best_parent_rate != parent->rate) in clk_calc_new_rates()
1379 top = clk_calc_new_rates(parent, best_parent_rate); in clk_calc_new_rates()
1382 clk_calc_subtree(core, new_rate, parent, p_index); in clk_calc_new_rates()
1443 else if (core->parent) in clk_change_rate()
1444 best_parent_rate = core->parent->rate; in clk_change_rate()
1446 if (core->new_parent && core->new_parent != core->parent) { in clk_change_rate()
1648 struct clk *parent; in clk_get_parent() local
1655 parent = !clk->core->parent ? NULL : clk->core->parent->hw->clk; in clk_get_parent()
1658 return parent; in clk_get_parent()
1682 if (IS_ERR_OR_NULL(core->parent)) in __clk_init_parent()
1683 core->parent = clk_core_lookup(core->parent_names[0]); in __clk_init_parent()
1684 ret = core->parent; in __clk_init_parent()
1740 bool clk_has_parent(struct clk *clk, struct clk *parent) in clk_has_parent() argument
1746 if (!clk || !parent) in clk_has_parent()
1750 parent_core = parent->core; in clk_has_parent()
1753 if (core->parent == parent_core) in clk_has_parent()
1764 static int clk_core_set_parent(struct clk_core *core, struct clk_core *parent) in clk_core_set_parent() argument
1776 if (core->parent == parent) in clk_core_set_parent()
1792 if (parent) { in clk_core_set_parent()
1793 p_index = clk_fetch_parent_index(core, parent); in clk_core_set_parent()
1794 p_rate = parent->rate; in clk_core_set_parent()
1797 __func__, parent->name, core->name); in clk_core_set_parent()
1811 ret = __clk_set_parent(core, parent, p_index); in clk_core_set_parent()
1844 int clk_set_parent(struct clk *clk, struct clk *parent) in clk_set_parent() argument
1849 return clk_core_set_parent(clk->core, parent ? parent->core : NULL); in clk_set_parent()
2374 core->parent = __clk_init_parent(core); in __clk_init()
2386 if (core->parent) { in __clk_init()
2388 &core->parent->children); in __clk_init()
2389 core->orphan = core->parent->orphan; in __clk_init()
2407 __clk_get_accuracy(core->parent)); in __clk_init()
2408 else if (core->parent) in __clk_init()
2409 core->accuracy = core->parent->accuracy; in __clk_init()
2431 clk_core_get_rate_nolock(core->parent)); in __clk_init()
2432 else if (core->parent) in __clk_init()
2433 rate = core->parent->rate; in __clk_init()
3198 struct clock_provider *parent; in of_clk_init() local
3200 parent = kzalloc(sizeof(*parent), GFP_KERNEL); in of_clk_init()
3201 if (!parent) { in of_clk_init()
3212 parent->clk_init_cb = match->data; in of_clk_init()
3213 parent->np = of_node_get(np); in of_clk_init()
3214 list_add_tail(&parent->node, &clk_provider_list); in of_clk_init()