Lines Matching full:rate
65 unsigned long rate, parent_rate; member
97 * so get the parent rate explicitly. in emc_recalc_rate()
108 * Rounds up unless no higher rate exists, in which case down. This way is
109 * safer since things have EMC rate floors. Also don't touch parent_rate
134 if (timing->rate < req->rate && i != t - 1) in emc_determine_rate()
137 if (timing->rate > req->max_rate) { in emc_determine_rate()
139 req->rate = tegra->timings[i - 1].rate; in emc_determine_rate()
143 if (timing->rate < req->min_rate) in emc_determine_rate()
146 req->rate = timing->rate; in emc_determine_rate()
151 req->rate = timing->rate; in emc_determine_rate()
155 req->rate = clk_hw_get_rate(hw); in emc_determine_rate()
213 pr_debug("going to rate %ld prate %ld p %s\n", timing->rate, in emc_set_timing()
218 WARN_ONCE(1, "parent %s rate mismatch %lu %lu\n", in emc_set_timing()
229 pr_err("cannot change parent %s rate to %ld: %d\n", in emc_set_timing()
242 div = timing->parent_rate / (timing->rate / 2) - 2; in emc_set_timing()
244 err = tegra_emc_prepare_timing_change(emc, timing->rate); in emc_set_timing()
262 tegra_emc_complete_timing_change(emc, timing->rate); in emc_set_timing()
276 * find a timing with a higher clock rate to avoid a rate below any set rate
277 * floors. If that is not possible, find a lower rate.
311 static int emc_set_rate(struct clk_hw *hw, unsigned long rate, in emc_set_rate() argument
321 if (clk_hw_get_rate(hw) == rate) in emc_set_rate()
325 * When emc_set_timing changes the parent rate, CCF will propagate in emc_set_rate()
326 * that downward to us, so ignore any set_rate calls while a rate in emc_set_rate()
333 if (tegra->timings[i].rate == rate && in emc_set_rate()
341 pr_err("cannot switch to rate %ld without emc table\n", rate); in emc_set_rate()
349 * Parent clock source not changed but parent rate has changed, in emc_set_rate()
361 pr_debug("using %ld as backup rate when going to %ld\n", in emc_set_rate()
362 backup_timing->rate, rate); in emc_set_rate()
385 pr_err("timing %pOF: failed to read rate\n", node); in load_one_timing_from_dt()
389 timing->rate = tmp; in load_one_timing_from_dt()
393 pr_err("timing %pOF: failed to read parent rate\n", node); in load_one_timing_from_dt()
424 if (a->rate < b->rate) in cmp_timings()
426 else if (a->rate == b->rate) in cmp_timings()