Lines Matching refs:dfc

67 	struct devfreq_cooling_device *dfc = cdev->devdata;  in devfreq_cooling_get_max_state()  local
69 *state = dfc->max_state; in devfreq_cooling_get_max_state()
77 struct devfreq_cooling_device *dfc = cdev->devdata; in devfreq_cooling_get_cur_state() local
79 *state = dfc->cooling_state; in devfreq_cooling_get_cur_state()
87 struct devfreq_cooling_device *dfc = cdev->devdata; in devfreq_cooling_set_cur_state() local
88 struct devfreq *df = dfc->devfreq; in devfreq_cooling_set_cur_state()
93 if (state == dfc->cooling_state) in devfreq_cooling_set_cur_state()
98 if (state > dfc->max_state) in devfreq_cooling_set_cur_state()
101 if (dfc->em_pd) { in devfreq_cooling_set_cur_state()
102 perf_idx = dfc->max_state - state; in devfreq_cooling_set_cur_state()
103 freq = dfc->em_pd->table[perf_idx].frequency * 1000; in devfreq_cooling_set_cur_state()
105 freq = dfc->freq_table[state]; in devfreq_cooling_set_cur_state()
108 dev_pm_qos_update_request(&dfc->req_max_freq, in devfreq_cooling_set_cur_state()
111 dfc->cooling_state = state; in devfreq_cooling_set_cur_state()
181 struct devfreq_cooling_device *dfc = cdev->devdata; in devfreq_cooling_get_requested_power() local
182 struct devfreq *df = dfc->devfreq; in devfreq_cooling_get_requested_power()
195 if (dfc->power_ops && dfc->power_ops->get_real_power) { in devfreq_cooling_get_requested_power()
202 res = dfc->power_ops->get_real_power(df, power, freq, voltage); in devfreq_cooling_get_requested_power()
204 state = dfc->capped_state; in devfreq_cooling_get_requested_power()
207 dfc->res_util = dfc->em_pd->table[state].power; in devfreq_cooling_get_requested_power()
208 dfc->res_util /= MICROWATT_PER_MILLIWATT; in devfreq_cooling_get_requested_power()
210 dfc->res_util *= SCALE_ERROR_MITIGATION; in devfreq_cooling_get_requested_power()
213 dfc->res_util /= *power; in devfreq_cooling_get_requested_power()
219 perf_idx = get_perf_idx(dfc->em_pd, freq / 1000); in devfreq_cooling_get_requested_power()
228 *power = dfc->em_pd->table[perf_idx].power; in devfreq_cooling_get_requested_power()
240 dfc->res_util = SCALE_ERROR_MITIGATION; in devfreq_cooling_get_requested_power()
247 struct devfreq_cooling_device *dfc = cdev->devdata; in devfreq_cooling_state2power() local
250 if (state > dfc->max_state) in devfreq_cooling_state2power()
253 perf_idx = dfc->max_state - state; in devfreq_cooling_state2power()
254 *power = dfc->em_pd->table[perf_idx].power; in devfreq_cooling_state2power()
263 struct devfreq_cooling_device *dfc = cdev->devdata; in devfreq_cooling_power2state() local
264 struct devfreq *df = dfc->devfreq; in devfreq_cooling_power2state()
276 if (dfc->power_ops && dfc->power_ops->get_real_power) { in devfreq_cooling_power2state()
278 est_power = power * dfc->res_util; in devfreq_cooling_power2state()
291 for (i = dfc->max_state; i > 0; i--) { in devfreq_cooling_power2state()
293 em_power_mw = dfc->em_pd->table[i].power; in devfreq_cooling_power2state()
299 *state = dfc->max_state - i; in devfreq_cooling_power2state()
300 dfc->capped_state = *state; in devfreq_cooling_power2state()
317 static int devfreq_cooling_gen_tables(struct devfreq_cooling_device *dfc, in devfreq_cooling_gen_tables() argument
320 struct devfreq *df = dfc->devfreq; in devfreq_cooling_gen_tables()
325 dfc->freq_table = kcalloc(num_opps, sizeof(*dfc->freq_table), in devfreq_cooling_gen_tables()
327 if (!dfc->freq_table) in devfreq_cooling_gen_tables()
335 kfree(dfc->freq_table); in devfreq_cooling_gen_tables()
340 dfc->freq_table[i] = freq; in devfreq_cooling_gen_tables()
367 struct devfreq_cooling_device *dfc; in of_devfreq_cooling_register_power() local
374 dfc = kzalloc(sizeof(*dfc), GFP_KERNEL); in of_devfreq_cooling_register_power()
375 if (!dfc) in of_devfreq_cooling_register_power()
378 dfc->devfreq = df; in of_devfreq_cooling_register_power()
380 ops = &dfc->cooling_ops; in of_devfreq_cooling_register_power()
387 dfc->em_pd = em; in of_devfreq_cooling_register_power()
393 dfc->power_ops = dfc_power; in of_devfreq_cooling_register_power()
395 num_opps = em_pd_nr_perf_states(dfc->em_pd); in of_devfreq_cooling_register_power()
402 err = devfreq_cooling_gen_tables(dfc, num_opps); in of_devfreq_cooling_register_power()
413 dfc->max_state = num_opps - 1; in of_devfreq_cooling_register_power()
415 err = dev_pm_qos_add_request(dev, &dfc->req_max_freq, in of_devfreq_cooling_register_power()
426 cdev = thermal_of_cooling_device_register(np, name, dfc, ops); in of_devfreq_cooling_register_power()
437 dfc->cdev = cdev; in of_devfreq_cooling_register_power()
442 dev_pm_qos_remove_request(&dfc->req_max_freq); in of_devfreq_cooling_register_power()
444 kfree(dfc->freq_table); in of_devfreq_cooling_register_power()
446 kfree(dfc); in of_devfreq_cooling_register_power()
527 struct devfreq_cooling_device *dfc; in devfreq_cooling_unregister() local
533 dfc = cdev->devdata; in devfreq_cooling_unregister()
534 dev = dfc->devfreq->dev.parent; in devfreq_cooling_unregister()
536 thermal_cooling_device_unregister(dfc->cdev); in devfreq_cooling_unregister()
537 dev_pm_qos_remove_request(&dfc->req_max_freq); in devfreq_cooling_unregister()
541 kfree(dfc->freq_table); in devfreq_cooling_unregister()
542 kfree(dfc); in devfreq_cooling_unregister()