Lines Matching refs:parent

54 	struct clk_core		*parent;  member
608 return !clk->core->parent ? NULL : clk->core->parent->hw->clk; in __clk_get_parent()
628 struct clk_core *parent; in clk_get_parent_by_index() local
633 parent = clk_core_get_parent_by_index(clk->core, index); in clk_get_parent_by_index()
635 return !parent ? NULL : parent->hw->clk; in clk_get_parent_by_index()
658 if (!clk->parent) in clk_core_get_rate_nolock()
807 struct clk_core *core = hw->core, *parent, *best_parent = NULL; in clk_mux_determine_rate_flags() local
813 parent = core->parent; in clk_mux_determine_rate_flags()
815 best = __clk_determine_rate(parent ? parent->hw : NULL, in clk_mux_determine_rate_flags()
817 else if (parent) in clk_mux_determine_rate_flags()
818 best = clk_core_get_rate_nolock(parent); in clk_mux_determine_rate_flags()
827 parent = clk_core_get_parent_by_index(core, i); in clk_mux_determine_rate_flags()
828 if (!parent) in clk_mux_determine_rate_flags()
831 parent_rate = __clk_determine_rate(parent->hw, rate, in clk_mux_determine_rate_flags()
835 parent_rate = clk_core_get_rate_nolock(parent); in clk_mux_determine_rate_flags()
837 best_parent = parent; in clk_mux_determine_rate_flags()
924 clk_core_unprepare(clk->parent); in clk_core_unprepare()
957 ret = clk_core_prepare(clk->parent); in clk_core_prepare()
969 clk_core_unprepare(clk->parent); in clk_core_prepare()
1024 clk_core_disable(clk->parent); in clk_core_disable()
1071 ret = clk_core_enable(clk->parent); in clk_core_enable()
1084 clk_core_disable(clk->parent); in clk_core_enable()
1133 struct clk_core *parent; in clk_core_round_rate_nolock() local
1141 parent = clk->parent; in clk_core_round_rate_nolock()
1142 if (parent) in clk_core_round_rate_nolock()
1143 parent_rate = parent->rate; in clk_core_round_rate_nolock()
1146 parent_hw = parent ? parent->hw : NULL; in clk_core_round_rate_nolock()
1153 return clk_core_round_rate_nolock(clk->parent, rate, min_rate, in clk_core_round_rate_nolock()
1279 if (clk->parent) in __clk_recalc_accuracies()
1280 parent_accuracy = clk->parent->accuracy; in __clk_recalc_accuracies()
1356 if (clk->parent) in __clk_recalc_rates()
1357 parent_rate = clk->parent->rate; in __clk_recalc_rates()
1405 struct clk_core *parent) in clk_fetch_parent_index() argument
1422 if (clk->parents[i] == parent) in clk_fetch_parent_index()
1428 if (!strcmp(clk->parent_names[i], parent->name)) { in clk_fetch_parent_index()
1429 clk->parents[i] = clk_core_lookup(parent->name); in clk_fetch_parent_index()
1451 clk->parent = new_parent; in clk_reparent()
1455 struct clk_core *parent) in __clk_set_parent_before() argument
1458 struct clk_core *old_parent = clk->parent; in __clk_set_parent_before()
1478 clk_core_prepare(parent); in __clk_set_parent_before()
1480 clk_core_enable(parent); in __clk_set_parent_before()
1487 clk_reparent(clk, parent); in __clk_set_parent_before()
1494 struct clk_core *parent, in __clk_set_parent_after() argument
1512 static int __clk_set_parent(struct clk_core *clk, struct clk_core *parent, in __clk_set_parent() argument
1519 old_parent = __clk_set_parent_before(clk, parent); in __clk_set_parent()
1521 trace_clk_set_parent(clk, parent); in __clk_set_parent()
1524 if (parent && clk->ops->set_parent) in __clk_set_parent()
1527 trace_clk_set_parent_complete(clk, parent); in __clk_set_parent()
1537 clk_core_disable(parent); in __clk_set_parent()
1539 clk_core_unprepare(parent); in __clk_set_parent()
1544 __clk_set_parent_after(clk, parent, old_parent); in __clk_set_parent()
1606 if (new_parent && new_parent != clk->parent) in clk_calc_subtree()
1623 struct clk_core *old_parent, *parent; in clk_calc_new_rates() local
1637 parent = old_parent = clk->parent; in clk_calc_new_rates()
1638 if (parent) in clk_calc_new_rates()
1639 best_parent_rate = parent->rate; in clk_calc_new_rates()
1645 parent_hw = parent ? parent->hw : NULL; in clk_calc_new_rates()
1655 parent = parent_hw ? parent_hw->core : NULL; in clk_calc_new_rates()
1665 } else if (!parent || !(clk->flags & CLK_SET_RATE_PARENT)) { in clk_calc_new_rates()
1671 top = clk_calc_new_rates(parent, rate); in clk_calc_new_rates()
1672 new_rate = parent->new_rate; in clk_calc_new_rates()
1677 if (parent != old_parent && in clk_calc_new_rates()
1685 if (parent && clk->num_parents > 1) { in clk_calc_new_rates()
1686 p_index = clk_fetch_parent_index(clk, parent); in clk_calc_new_rates()
1689 __func__, parent->name, clk->name); in clk_calc_new_rates()
1694 if ((clk->flags & CLK_SET_RATE_PARENT) && parent && in clk_calc_new_rates()
1695 best_parent_rate != parent->rate) in clk_calc_new_rates()
1696 top = clk_calc_new_rates(parent, best_parent_rate); in clk_calc_new_rates()
1699 clk_calc_subtree(clk, new_rate, parent, p_index); in clk_calc_new_rates()
1760 else if (clk->parent) in clk_change_rate()
1761 best_parent_rate = clk->parent->rate; in clk_change_rate()
1763 if (clk->new_parent && clk->new_parent != clk->parent) { in clk_change_rate()
1962 struct clk *parent; in clk_get_parent() local
1965 parent = __clk_get_parent(clk); in clk_get_parent()
1968 return parent; in clk_get_parent()
1992 if (IS_ERR_OR_NULL(clk->parent)) in __clk_init_parent()
1993 clk->parent = clk_core_lookup(clk->parent_names[0]); in __clk_init_parent()
1994 ret = clk->parent; in __clk_init_parent()
2042 bool clk_has_parent(struct clk *clk, struct clk *parent) in clk_has_parent() argument
2048 if (!clk || !parent) in clk_has_parent()
2052 parent_core = parent->core; in clk_has_parent()
2055 if (core->parent == parent_core) in clk_has_parent()
2066 static int clk_core_set_parent(struct clk_core *clk, struct clk_core *parent) in clk_core_set_parent() argument
2078 if (clk->parent == parent) in clk_core_set_parent()
2094 if (parent) { in clk_core_set_parent()
2095 p_index = clk_fetch_parent_index(clk, parent); in clk_core_set_parent()
2096 p_rate = parent->rate; in clk_core_set_parent()
2099 __func__, parent->name, clk->name); in clk_core_set_parent()
2113 ret = __clk_set_parent(clk, parent, p_index); in clk_core_set_parent()
2146 int clk_set_parent(struct clk *clk, struct clk *parent) in clk_set_parent() argument
2151 return clk_core_set_parent(clk->core, parent ? parent->core : NULL); in clk_set_parent()
2349 clk->parent = __clk_init_parent(clk); in __clk_init()
2361 if (clk->parent) in __clk_init()
2363 &clk->parent->children); in __clk_init()
2378 __clk_get_accuracy(clk->parent)); in __clk_init()
2379 else if (clk->parent) in __clk_init()
2380 clk->accuracy = clk->parent->accuracy; in __clk_init()
2402 clk_core_get_rate_nolock(clk->parent)); in __clk_init()
2403 else if (clk->parent) in __clk_init()
2404 rate = clk->parent->rate; in __clk_init()
3136 struct clock_provider *parent = in of_clk_init() local
3139 parent->clk_init_cb = match->data; in of_clk_init()
3140 parent->np = np; in of_clk_init()
3141 list_add_tail(&parent->node, &clk_provider_list); in of_clk_init()