Lines Matching refs:ccdev

97 static int clock_cooling_get_property(struct clock_cooling_device *ccdev,  in clock_cooling_get_property()  argument
106 struct cpufreq_frequency_table *pos, *table = ccdev->freq_table; in clock_cooling_get_property()
182 struct clock_cooling_device *ccdev = cdev->devdata; in clock_cooling_get_level() local
185 if (clock_cooling_get_property(ccdev, (unsigned long)freq, &val, in clock_cooling_get_level()
206 clock_cooling_get_frequency(struct clock_cooling_device *ccdev, in clock_cooling_get_frequency() argument
212 ret = clock_cooling_get_property(ccdev, level, &freq, GET_FREQ); in clock_cooling_get_frequency()
231 static int clock_cooling_apply(struct clock_cooling_device *ccdev, in clock_cooling_apply() argument
239 if (ccdev->clock_state == cooling_state) in clock_cooling_apply()
242 clip_freq = clock_cooling_get_frequency(ccdev, cooling_state); in clock_cooling_apply()
246 cur_freq = clk_get_rate(ccdev->clk); in clock_cooling_apply()
248 mutex_lock(&ccdev->lock); in clock_cooling_apply()
249 ccdev->clock_state = cooling_state; in clock_cooling_apply()
250 ccdev->clock_val = clip_freq; in clock_cooling_apply()
253 ret = clk_set_rate(ccdev->clk, clip_freq); in clock_cooling_apply()
254 mutex_unlock(&ccdev->lock); in clock_cooling_apply()
275 struct clock_cooling_device *ccdev = to_clock_cooling_device(nb); in clock_cooling_clock_notifier() local
285 if (ndata->new_rate > ccdev->clock_val) in clock_cooling_clock_notifier()
310 struct clock_cooling_device *ccdev = cdev->devdata; in clock_cooling_get_max_state() local
314 ret = clock_cooling_get_property(ccdev, 0, &count, GET_MAXL); in clock_cooling_get_max_state()
334 struct clock_cooling_device *ccdev = cdev->devdata; in clock_cooling_get_cur_state() local
336 *state = ccdev->clock_state; in clock_cooling_get_cur_state()
386 struct clock_cooling_device *ccdev = NULL; in clock_cooling_register() local
390 ccdev = devm_kzalloc(dev, sizeof(*ccdev), GFP_KERNEL); in clock_cooling_register()
391 if (!ccdev) in clock_cooling_register()
394 mutex_init(&ccdev->lock); in clock_cooling_register()
395 ccdev->dev = dev; in clock_cooling_register()
396 ccdev->clk = devm_clk_get(dev, clock_name); in clock_cooling_register()
397 if (IS_ERR(ccdev->clk)) in clock_cooling_register()
398 return ERR_CAST(ccdev->clk); in clock_cooling_register()
403 ccdev->id = ret; in clock_cooling_register()
405 snprintf(dev_name, sizeof(dev_name), "thermal-clock-%d", ccdev->id); in clock_cooling_register()
407 cdev = thermal_cooling_device_register(dev_name, ccdev, in clock_cooling_register()
410 ida_simple_remove(&clock_ida, ccdev->id); in clock_cooling_register()
413 ccdev->cdev = cdev; in clock_cooling_register()
414 ccdev->clk_rate_change_nb.notifier_call = clock_cooling_clock_notifier; in clock_cooling_register()
417 ret = dev_pm_opp_init_cpufreq_table(dev, &ccdev->freq_table); in clock_cooling_register()
419 ida_simple_remove(&clock_ida, ccdev->id); in clock_cooling_register()
422 ccdev->clock_state = 0; in clock_cooling_register()
423 ccdev->clock_val = clock_cooling_get_frequency(ccdev, 0); in clock_cooling_register()
425 clk_notifier_register(ccdev->clk, &ccdev->clk_rate_change_nb); in clock_cooling_register()
439 struct clock_cooling_device *ccdev; in clock_cooling_unregister() local
444 ccdev = cdev->devdata; in clock_cooling_unregister()
446 clk_notifier_unregister(ccdev->clk, &ccdev->clk_rate_change_nb); in clock_cooling_unregister()
447 dev_pm_opp_free_cpufreq_table(ccdev->dev, &ccdev->freq_table); in clock_cooling_unregister()
449 thermal_cooling_device_unregister(ccdev->cdev); in clock_cooling_unregister()
450 ida_simple_remove(&clock_ida, ccdev->id); in clock_cooling_unregister()