Lines Matching refs:rate
160 unsigned long rate; member
228 unsigned long rate) in tegra_emc_find_timing() argument
234 if (emc->timings[i].rate >= rate) { in tegra_emc_find_timing()
241 dev_err(emc->dev, "no timing for rate %lu\n", rate); in tegra_emc_find_timing()
248 static int emc_prepare_timing_change(struct tegra_emc *emc, unsigned long rate) in emc_prepare_timing_change() argument
250 struct emc_timing *timing = tegra_emc_find_timing(emc, rate); in emc_prepare_timing_change()
257 __func__, timing->rate, rate); in emc_prepare_timing_change()
330 u32 rate; in load_one_timing_from_dt() local
338 err = of_property_read_u32(node, "clock-frequency", &rate); in load_one_timing_from_dt()
359 timing->rate = rate * 2 * 1000; in load_one_timing_from_dt()
362 __func__, node, timing->rate); in load_one_timing_from_dt()
372 if (a->rate < b->rate) in cmp_timings()
375 if (a->rate > b->rate) in cmp_timings()
418 emc->timings[0].rate / 1000000, in tegra_emc_load_timings_from_dt()
419 emc->timings[emc->num_timings - 1].rate / 1000000); in tegra_emc_load_timings_from_dt()
504 static long emc_round_rate(unsigned long rate, in emc_round_rate() argument
516 min_rate = min(min_rate, emc->timings[emc->num_timings - 1].rate); in emc_round_rate()
519 if (emc->timings[i].rate < rate && i != emc->num_timings - 1) in emc_round_rate()
522 if (emc->timings[i].rate > max_rate) { in emc_round_rate()
525 if (emc->timings[i].rate < min_rate) in emc_round_rate()
529 if (emc->timings[i].rate < min_rate) in emc_round_rate()
538 rate, min_rate, max_rate); in emc_round_rate()
542 return timing->rate; in emc_round_rate()
596 static int emc_set_min_rate(struct tegra_emc *emc, unsigned long rate, in emc_set_min_rate() argument
603 ret = emc_request_rate(emc, rate, req->max_rate, type); in emc_set_min_rate()
609 static int emc_set_max_rate(struct tegra_emc *emc, unsigned long rate, in emc_set_max_rate() argument
616 ret = emc_request_rate(emc, req->min_rate, rate, type); in emc_set_max_rate()
647 static bool tegra_emc_validate_rate(struct tegra_emc *emc, unsigned long rate) in tegra_emc_validate_rate() argument
652 if (rate == emc->timings[i].rate) in tegra_emc_validate_rate()
665 seq_printf(s, "%s%lu", prefix, emc->timings[i].rate); in tegra_emc_debug_available_rates_show()
688 static int tegra_emc_debug_min_rate_get(void *data, u64 *rate) in tegra_emc_debug_min_rate_get() argument
692 *rate = emc->debugfs.min_rate; in tegra_emc_debug_min_rate_get()
697 static int tegra_emc_debug_min_rate_set(void *data, u64 rate) in tegra_emc_debug_min_rate_set() argument
702 if (!tegra_emc_validate_rate(emc, rate)) in tegra_emc_debug_min_rate_set()
705 err = emc_set_min_rate(emc, rate, EMC_RATE_DEBUG); in tegra_emc_debug_min_rate_set()
709 emc->debugfs.min_rate = rate; in tegra_emc_debug_min_rate_set()
718 static int tegra_emc_debug_max_rate_get(void *data, u64 *rate) in tegra_emc_debug_max_rate_get() argument
722 *rate = emc->debugfs.max_rate; in tegra_emc_debug_max_rate_get()
727 static int tegra_emc_debug_max_rate_set(void *data, u64 rate) in tegra_emc_debug_max_rate_set() argument
732 if (!tegra_emc_validate_rate(emc, rate)) in tegra_emc_debug_max_rate_set()
735 err = emc_set_max_rate(emc, rate, EMC_RATE_DEBUG); in tegra_emc_debug_max_rate_set()
739 emc->debugfs.max_rate = rate; in tegra_emc_debug_max_rate_set()
758 if (emc->timings[i].rate < emc->debugfs.min_rate) in tegra_emc_debugfs_init()
759 emc->debugfs.min_rate = emc->timings[i].rate; in tegra_emc_debugfs_init()
761 if (emc->timings[i].rate > emc->debugfs.max_rate) in tegra_emc_debugfs_init()
762 emc->debugfs.max_rate = emc->timings[i].rate; in tegra_emc_debugfs_init()
828 unsigned long long rate = max(avg_bw, peak_bw); in emc_icc_set() local
838 do_div(rate, dram_data_bus_width_bytes); in emc_icc_set()
839 rate = min_t(u64, rate, U32_MAX); in emc_icc_set()
841 err = emc_set_min_rate(emc, rate, EMC_RATE_ICC); in emc_icc_set()
955 unsigned long rate; in tegra_emc_devfreq_target() local
963 rate = dev_pm_opp_get_freq(opp); in tegra_emc_devfreq_target()
966 return emc_set_min_rate(emc, rate, EMC_RATE_DEVFREQ); in tegra_emc_devfreq_target()