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()
94 if (state == dfc->cooling_state) in devfreq_cooling_set_cur_state()
99 if (state > dfc->max_state) in devfreq_cooling_set_cur_state()
102 if (dfc->em_pd) { in devfreq_cooling_set_cur_state()
103 perf_idx = dfc->max_state - state; in devfreq_cooling_set_cur_state()
106 table = em_perf_state_from_pd(dfc->em_pd); in devfreq_cooling_set_cur_state()
110 freq = dfc->freq_table[state]; in devfreq_cooling_set_cur_state()
113 dev_pm_qos_update_request(&dfc->req_max_freq, in devfreq_cooling_set_cur_state()
116 dfc->cooling_state = state; in devfreq_cooling_set_cur_state()
193 struct devfreq_cooling_device *dfc = cdev->devdata; in devfreq_cooling_get_requested_power() local
194 struct devfreq *df = dfc->devfreq; in devfreq_cooling_get_requested_power()
208 if (dfc->power_ops && dfc->power_ops->get_real_power) { in devfreq_cooling_get_requested_power()
215 res = dfc->power_ops->get_real_power(df, power, freq, voltage); in devfreq_cooling_get_requested_power()
217 state = dfc->max_state - dfc->capped_state; in devfreq_cooling_get_requested_power()
221 table = em_perf_state_from_pd(dfc->em_pd); in devfreq_cooling_get_requested_power()
222 dfc->res_util = table[state].power; in devfreq_cooling_get_requested_power()
225 dfc->res_util /= MICROWATT_PER_MILLIWATT; in devfreq_cooling_get_requested_power()
227 dfc->res_util *= SCALE_ERROR_MITIGATION; in devfreq_cooling_get_requested_power()
230 dfc->res_util /= *power; in devfreq_cooling_get_requested_power()
236 perf_idx = get_perf_idx(dfc->em_pd, freq / 1000); in devfreq_cooling_get_requested_power()
246 table = em_perf_state_from_pd(dfc->em_pd); in devfreq_cooling_get_requested_power()
261 dfc->res_util = SCALE_ERROR_MITIGATION; in devfreq_cooling_get_requested_power()
268 struct devfreq_cooling_device *dfc = cdev->devdata; in devfreq_cooling_state2power() local
272 if (state > dfc->max_state) in devfreq_cooling_state2power()
275 perf_idx = dfc->max_state - state; in devfreq_cooling_state2power()
278 table = em_perf_state_from_pd(dfc->em_pd); in devfreq_cooling_state2power()
290 struct devfreq_cooling_device *dfc = cdev->devdata; in devfreq_cooling_power2state() local
291 struct devfreq *df = dfc->devfreq; in devfreq_cooling_power2state()
304 if (dfc->power_ops && dfc->power_ops->get_real_power) { in devfreq_cooling_power2state()
306 est_power = power * dfc->res_util; in devfreq_cooling_power2state()
320 table = em_perf_state_from_pd(dfc->em_pd); in devfreq_cooling_power2state()
321 for (i = dfc->max_state; i > 0; i--) { in devfreq_cooling_power2state()
330 *state = dfc->max_state - i; in devfreq_cooling_power2state()
331 dfc->capped_state = *state; in devfreq_cooling_power2state()
348 static int devfreq_cooling_gen_tables(struct devfreq_cooling_device *dfc, in devfreq_cooling_gen_tables() argument
351 struct devfreq *df = dfc->devfreq; in devfreq_cooling_gen_tables()
356 dfc->freq_table = kcalloc(num_opps, sizeof(*dfc->freq_table), in devfreq_cooling_gen_tables()
358 if (!dfc->freq_table) in devfreq_cooling_gen_tables()
366 kfree(dfc->freq_table); in devfreq_cooling_gen_tables()
371 dfc->freq_table[i] = freq; in devfreq_cooling_gen_tables()
398 struct devfreq_cooling_device *dfc; in of_devfreq_cooling_register_power() local
405 dfc = kzalloc(sizeof(*dfc), GFP_KERNEL); in of_devfreq_cooling_register_power()
406 if (!dfc) in of_devfreq_cooling_register_power()
409 dfc->devfreq = df; in of_devfreq_cooling_register_power()
411 ops = &dfc->cooling_ops; in of_devfreq_cooling_register_power()
418 dfc->em_pd = em; in of_devfreq_cooling_register_power()
424 dfc->power_ops = dfc_power; in of_devfreq_cooling_register_power()
426 num_opps = em_pd_nr_perf_states(dfc->em_pd); in of_devfreq_cooling_register_power()
433 err = devfreq_cooling_gen_tables(dfc, num_opps); in of_devfreq_cooling_register_power()
444 dfc->max_state = num_opps - 1; in of_devfreq_cooling_register_power()
446 err = dev_pm_qos_add_request(dev, &dfc->req_max_freq, in of_devfreq_cooling_register_power()
457 cdev = thermal_of_cooling_device_register(np, name, dfc, ops); in of_devfreq_cooling_register_power()
468 dfc->cdev = cdev; in of_devfreq_cooling_register_power()
473 dev_pm_qos_remove_request(&dfc->req_max_freq); in of_devfreq_cooling_register_power()
475 kfree(dfc->freq_table); in of_devfreq_cooling_register_power()
477 kfree(dfc); in of_devfreq_cooling_register_power()
558 struct devfreq_cooling_device *dfc; in devfreq_cooling_unregister() local
564 dfc = cdev->devdata; in devfreq_cooling_unregister()
565 dev = dfc->devfreq->dev.parent; in devfreq_cooling_unregister()
567 thermal_cooling_device_unregister(dfc->cdev); in devfreq_cooling_unregister()
568 dev_pm_qos_remove_request(&dfc->req_max_freq); in devfreq_cooling_unregister()
572 kfree(dfc->freq_table); in devfreq_cooling_unregister()
573 kfree(dfc); in devfreq_cooling_unregister()