Home
last modified time | relevance | path

Searched refs:devfreq (Results 1 – 25 of 43) sorted by relevance

12

/Linux-v5.4/drivers/devfreq/
Ddevfreq.c54 static struct devfreq *find_device_devfreq(struct device *dev) in find_device_devfreq()
56 struct devfreq *tmp_devfreq; in find_device_devfreq()
73 static unsigned long find_available_min_freq(struct devfreq *devfreq) in find_available_min_freq() argument
78 opp = dev_pm_opp_find_freq_ceil(devfreq->dev.parent, &min_freq); in find_available_min_freq()
87 static unsigned long find_available_max_freq(struct devfreq *devfreq) in find_available_max_freq() argument
92 opp = dev_pm_opp_find_freq_floor(devfreq->dev.parent, &max_freq); in find_available_max_freq()
106 static int devfreq_get_freq_level(struct devfreq *devfreq, unsigned long freq) in devfreq_get_freq_level() argument
110 for (lev = 0; lev < devfreq->profile->max_state; lev++) in devfreq_get_freq_level()
111 if (freq == devfreq->profile->freq_table[lev]) in devfreq_get_freq_level()
117 static int set_freq_table(struct devfreq *devfreq) in set_freq_table() argument
[all …]
Dgovernor_passive.c15 static int devfreq_passive_get_target_freq(struct devfreq *devfreq, in devfreq_passive_get_target_freq() argument
19 = (struct devfreq_passive_data *)devfreq->data; in devfreq_passive_get_target_freq()
20 struct devfreq *parent_devfreq = (struct devfreq *)p_data->parent; in devfreq_passive_get_target_freq()
31 ret = p_data->get_target_freq(devfreq, freq); in devfreq_passive_get_target_freq()
50 if (!devfreq->profile || !devfreq->profile->freq_table in devfreq_passive_get_target_freq()
51 || devfreq->profile->max_state <= 0) in devfreq_passive_get_target_freq()
81 if (i < devfreq->profile->max_state) { in devfreq_passive_get_target_freq()
82 child_freq = devfreq->profile->freq_table[i]; in devfreq_passive_get_target_freq()
84 count = devfreq->profile->max_state; in devfreq_passive_get_target_freq()
85 child_freq = devfreq->profile->freq_table[count - 1]; in devfreq_passive_get_target_freq()
[all …]
Dgovernor_userspace.c22 static int devfreq_userspace_func(struct devfreq *df, unsigned long *freq) in devfreq_userspace_func()
37 struct devfreq *devfreq = to_devfreq(dev); in store_freq() local
42 mutex_lock(&devfreq->lock); in store_freq()
43 data = devfreq->data; in store_freq()
48 err = update_devfreq(devfreq); in store_freq()
51 mutex_unlock(&devfreq->lock); in store_freq()
58 struct devfreq *devfreq = to_devfreq(dev); in show_freq() local
62 mutex_lock(&devfreq->lock); in show_freq()
63 data = devfreq->data; in show_freq()
69 mutex_unlock(&devfreq->lock); in show_freq()
[all …]
Dgovernor.h16 #define to_devfreq(DEV) container_of((DEV), struct devfreq, dev)
52 int (*get_target_freq)(struct devfreq *this, unsigned long *freq);
53 int (*event_handler)(struct devfreq *devfreq,
57 extern void devfreq_monitor_start(struct devfreq *devfreq);
58 extern void devfreq_monitor_stop(struct devfreq *devfreq);
59 extern void devfreq_monitor_suspend(struct devfreq *devfreq);
60 extern void devfreq_monitor_resume(struct devfreq *devfreq);
61 extern void devfreq_interval_update(struct devfreq *devfreq,
67 extern int devfreq_update_status(struct devfreq *devfreq, unsigned long freq);
69 static inline int devfreq_update_stats(struct devfreq *df) in devfreq_update_stats()
Dgovernor_simpleondemand.c18 static int devfreq_simple_ondemand_func(struct devfreq *df, in devfreq_simple_ondemand_func()
87 static int devfreq_simple_ondemand_handler(struct devfreq *devfreq, in devfreq_simple_ondemand_handler() argument
92 devfreq_monitor_start(devfreq); in devfreq_simple_ondemand_handler()
96 devfreq_monitor_stop(devfreq); in devfreq_simple_ondemand_handler()
100 devfreq_interval_update(devfreq, (unsigned int *)data); in devfreq_simple_ondemand_handler()
104 devfreq_monitor_suspend(devfreq); in devfreq_simple_ondemand_handler()
108 devfreq_monitor_resume(devfreq); in devfreq_simple_ondemand_handler()
Dgovernor_performance.c13 static int devfreq_performance_func(struct devfreq *df, in devfreq_performance_func()
24 static int devfreq_performance_handler(struct devfreq *devfreq, in devfreq_performance_handler() argument
30 mutex_lock(&devfreq->lock); in devfreq_performance_handler()
31 ret = update_devfreq(devfreq); in devfreq_performance_handler()
32 mutex_unlock(&devfreq->lock); in devfreq_performance_handler()
Dgovernor_powersave.c13 static int devfreq_powersave_func(struct devfreq *df, in devfreq_powersave_func()
24 static int devfreq_powersave_handler(struct devfreq *devfreq, in devfreq_powersave_handler() argument
30 mutex_lock(&devfreq->lock); in devfreq_powersave_handler()
31 ret = update_devfreq(devfreq); in devfreq_powersave_handler()
32 mutex_unlock(&devfreq->lock); in devfreq_powersave_handler()
Dtegra20-devfreq.c32 struct devfreq *devfreq; member
41 struct devfreq *devfreq = tegra->devfreq; in tegra_devfreq_target() local
64 clk_set_min_rate(tegra->emc_clock, devfreq->previous_freq); in tegra_devfreq_target()
175 tegra->devfreq = devfreq_add_device(&pdev->dev, &tegra_devfreq_profile, in tegra_devfreq_probe()
177 if (IS_ERR(tegra->devfreq)) { in tegra_devfreq_probe()
178 err = PTR_ERR(tegra->devfreq); in tegra_devfreq_probe()
194 devfreq_remove_device(tegra->devfreq); in tegra_devfreq_remove()
Dtegra30-devfreq.c150 struct devfreq *devfreq; member
339 mutex_lock(&tegra->devfreq->lock); in actmon_thread_isr()
350 update_devfreq(tegra->devfreq); in actmon_thread_isr()
352 mutex_unlock(&tegra->devfreq->lock); in actmon_thread_isr()
453 struct devfreq *devfreq = tegra->devfreq; in tegra_devfreq_target() local
477 clk_set_min_rate(tegra->emc_clock, devfreq->previous_freq); in tegra_devfreq_target()
519 static int tegra_governor_get_target(struct devfreq *devfreq, in tegra_governor_get_target() argument
529 err = devfreq_update_stats(devfreq); in tegra_governor_get_target()
533 stat = &devfreq->last_status; in tegra_governor_get_target()
550 static int tegra_governor_event_handler(struct devfreq *devfreq, in tegra_governor_event_handler() argument
[all …]
Dexynos-bus.c29 struct devfreq *devfreq; member
297 struct devfreq *parent_devfreq; in exynos_bus_probe()
352 bus->devfreq = devm_devfreq_add_device(dev, profile, in exynos_bus_probe()
355 if (IS_ERR(bus->devfreq)) { in exynos_bus_probe()
357 ret = PTR_ERR(bus->devfreq); in exynos_bus_probe()
362 ret = devm_devfreq_register_opp_notifier(dev, bus->devfreq); in exynos_bus_probe()
405 bus->devfreq = devm_devfreq_add_device(dev, profile, DEVFREQ_GOV_PASSIVE, in exynos_bus_probe()
407 if (IS_ERR(bus->devfreq)) { in exynos_bus_probe()
410 ret = PTR_ERR(bus->devfreq); in exynos_bus_probe()
415 max_state = bus->devfreq->profile->max_state; in exynos_bus_probe()
[all …]
DMakefile2 obj-$(CONFIG_PM_DEVFREQ) += devfreq.o
3 obj-$(CONFIG_PM_DEVFREQ_EVENT) += devfreq-event.o
13 obj-$(CONFIG_ARM_TEGRA_DEVFREQ) += tegra30-devfreq.o
14 obj-$(CONFIG_ARM_TEGRA20_DEVFREQ) += tegra20-devfreq.o
DKconfig8 devfreq, a generic DVFS framework can be registered for a device
9 in order to let the governor provided to devfreq choose an
14 notification to "nb", a notifier block, of devfreq.
18 determined by the single device's state, an instance of devfreq
21 to a device by 1-to-1. The device registering devfreq takes the
24 given to devfreq.
26 When OPP is used with the devfreq device, it is recommended to
27 register devfreq's nb to the OPP's notifier head. If OPP is
28 used with the devfreq device, you may use OPP helper
29 functions defined in devfreq.h.
[all …]
Drk3399_dmc.c60 struct devfreq *devfreq; member
208 ret = devfreq_suspend_device(dmcfreq->devfreq); in rk3399_dmcfreq_suspend()
228 ret = devfreq_resume_device(dmcfreq->devfreq); in rk3399_dmcfreq_resume()
450 data->devfreq = devm_devfreq_add_device(dev, in rk3399_dmcfreq_probe()
454 if (IS_ERR(data->devfreq)) { in rk3399_dmcfreq_probe()
455 ret = PTR_ERR(data->devfreq); in rk3399_dmcfreq_probe()
459 devm_devfreq_register_opp_notifier(dev, data->devfreq); in rk3399_dmcfreq_probe()
478 devm_devfreq_unregister_opp_notifier(dmcfreq->dev, dmcfreq->devfreq); in rk3399_dmcfreq_remove()
/Linux-v5.4/include/linux/
Ddevfreq.h33 struct devfreq;
148 struct devfreq { struct
189 extern struct devfreq *devfreq_add_device(struct device *dev, argument
193 extern int devfreq_remove_device(struct devfreq *devfreq);
194 extern struct devfreq *devm_devfreq_add_device(struct device *dev,
199 struct devfreq *devfreq);
202 extern int devfreq_suspend_device(struct devfreq *devfreq);
203 extern int devfreq_resume_device(struct devfreq *devfreq);
214 extern int update_devfreq(struct devfreq *devfreq);
220 struct devfreq *devfreq);
[all …]
Ddevfreq_cooling.h56 unsigned long (*get_static_power)(struct devfreq *devfreq,
58 unsigned long (*get_dynamic_power)(struct devfreq *devfreq,
61 int (*get_real_power)(struct devfreq *df, u32 *power,
69 of_devfreq_cooling_register_power(struct device_node *np, struct devfreq *df,
72 of_devfreq_cooling_register(struct device_node *np, struct devfreq *df);
73 struct thermal_cooling_device *devfreq_cooling_register(struct devfreq *df);
79 of_devfreq_cooling_register_power(struct device_node *np, struct devfreq *df, in of_devfreq_cooling_register_power()
86 of_devfreq_cooling_register(struct device_node *np, struct devfreq *df) in of_devfreq_cooling_register()
92 devfreq_cooling_register(struct devfreq *df) in devfreq_cooling_register()
/Linux-v5.4/drivers/gpu/drm/panfrost/
Dpanfrost_devfreq.c23 unsigned long old_clk_rate = pfdev->devfreq.cur_freq; in panfrost_devfreq_target()
56 regulator_set_voltage(pfdev->regulator, pfdev->devfreq.cur_volt, in panfrost_devfreq_target()
57 pfdev->devfreq.cur_volt); in panfrost_devfreq_target()
68 pfdev->devfreq.cur_freq = target_rate; in panfrost_devfreq_target()
69 pfdev->devfreq.cur_volt = target_volt; in panfrost_devfreq_target()
80 pfdev->devfreq.slot[i].busy_time = 0; in panfrost_devfreq_reset()
81 pfdev->devfreq.slot[i].idle_time = 0; in panfrost_devfreq_reset()
82 pfdev->devfreq.slot[i].time_last_update = now; in panfrost_devfreq_reset()
97 status->total_time = ktime_to_ns(ktime_add(pfdev->devfreq.slot[0].busy_time, in panfrost_devfreq_get_dev_status()
98 pfdev->devfreq.slot[0].idle_time)); in panfrost_devfreq_get_dev_status()
[all …]
Dpanfrost_device.h94 struct devfreq *devfreq; member
99 } devfreq; member
/Linux-v5.4/Documentation/ABI/testing/
Dsysfs-class-devfreq1 What: /sys/class/devfreq/.../
5 Provide a place in sysfs for the devfreq objects.
6 This allows accessing various devfreq specific variables.
7 The name of devfreq object denoted as ... is same as the
8 name of device using devfreq.
10 What: /sys/class/devfreq/.../governor
14 The /sys/class/devfreq/.../governor show or set the name of the
15 governor used by the corresponding devfreq object.
17 What: /sys/class/devfreq/.../cur_freq
21 The /sys/class/devfreq/.../cur_freq shows the current
[all …]
Dsysfs-class-devfreq-event1 What: /sys/class/devfreq-event/event(x)/
5 Provide a place in sysfs for the devfreq-event objects.
6 This allows accessing various devfreq-event specific variables.
7 The name of devfreq-event object denoted as 'event(x)' which
8 includes the unique number of 'x' for each devfreq-event object.
10 What: /sys/class/devfreq-event/event(x)/name
14 The /sys/class/devfreq-event/event(x)/name attribute contains
15 the name of the devfreq-event object. This attribute is
18 What: /sys/class/devfreq-event/event(x)/enable_count
22 The /sys/class/devfreq-event/event(x)/enable_count attribute
[all …]
/Linux-v5.4/include/trace/events/
Ddevfreq.h3 #define TRACE_SYSTEM devfreq
12 TP_PROTO(struct devfreq *devfreq),
14 TP_ARGS(devfreq),
21 __string(dev_name, dev_name(&devfreq->dev))
25 __entry->freq = devfreq->previous_freq;
26 __entry->busy_time = devfreq->last_status.busy_time;
27 __entry->total_time = devfreq->last_status.total_time;
28 __entry->polling_ms = devfreq->profile->polling_ms;
29 __assign_str(dev_name, dev_name(&devfreq->dev));
/Linux-v5.4/drivers/thermal/
Ddevfreq_cooling.c60 struct devfreq *devfreq; member
82 struct device *dev = dfc->devfreq->dev.parent; in partition_enable_opps()
135 struct devfreq *df = dfc->devfreq; in devfreq_cooling_set_cur_state()
177 static unsigned long get_voltage(struct devfreq *df, unsigned long freq) in get_voltage()
218 struct devfreq *df = dfc->devfreq; in get_static_power()
253 return dfc_power->get_dynamic_power(dfc->devfreq, freq, in get_dynamic_power()
278 struct devfreq *df = dfc->devfreq; in devfreq_cooling_get_requested_power()
357 struct devfreq *df = dfc->devfreq; in devfreq_cooling_power2state()
421 struct devfreq *df = dfc->devfreq; in devfreq_cooling_gen_tables()
505 of_devfreq_cooling_register_power(struct device_node *np, struct devfreq *df, in of_devfreq_cooling_register_power()
[all …]
/Linux-v5.4/drivers/devfreq/event/
DKconfig5 The devfreq-event device provide the raw data and events which
6 indicate the current state of devfreq-event device. The provided
7 data from devfreq-event device is used to monitor the state of
11 The devfreq-event device can support the various type of events
13 may be used by devfreq governor and other subsystem.
23 This add the devfreq-event driver for Exynos SoC. It provides NoC
31 This add the devfreq-event driver for Exynos SoC. It provides PPMU
39 This add the devfreq-event driver for Rockchip SoC. It provides DFI
/Linux-v5.4/arch/arm/boot/dts/
Dexynos5422-odroid-core.dtsi45 devfreq-events = <&nocp_mem0_0>, <&nocp_mem0_1>,
53 devfreq = <&bus_wcore>;
58 devfreq = <&bus_wcore>;
63 devfreq = <&bus_wcore>;
68 devfreq = <&bus_wcore>;
73 devfreq = <&bus_wcore>;
78 devfreq = <&bus_wcore>;
83 devfreq = <&bus_wcore>;
88 devfreq = <&bus_wcore>;
93 devfreq = <&bus_wcore>;
[all …]
/Linux-v5.4/Documentation/devicetree/bindings/devfreq/
Dexynos-bus.txt44 - devfreq-events: the devfreq-event device to monitor the current utilization
48 - devfreq: the parent bus device.
379 devfreq-events = <&ppmu_dmc0_3>, <&ppmu_dmc1_3>;
385 devfreq-events = <&ppmu_leftbus_3>, <&ppmu_rightbus_3>;
391 devfreq = <&bus_leftbus>;
396 devfreq = <&bus_leftbus>;
401 devfreq = <&bus_leftbus>;
406 devfreq = <&bus_leftbus>;
411 devfreq = <&bus_leftbus>;
416 devfreq = <&bus_leftbus>;
[all …]
/Linux-v5.4/drivers/gpu/drm/msm/
Dmsm_gpu.c59 status->total_time = ktime_us_delta(time, gpu->devfreq.time); in msm_devfreq_get_dev_status()
60 gpu->devfreq.time = time; in msm_devfreq_get_dev_status()
97 gpu->devfreq.devfreq = devm_devfreq_add_device(&gpu->pdev->dev, in msm_devfreq_init()
101 if (IS_ERR(gpu->devfreq.devfreq)) { in msm_devfreq_init()
103 gpu->devfreq.devfreq = NULL; in msm_devfreq_init()
106 devfreq_suspend_device(gpu->devfreq.devfreq); in msm_devfreq_init()
188 gpu->devfreq.busy_cycles = 0; in msm_gpu_resume_devfreq()
189 gpu->devfreq.time = ktime_get(); in msm_gpu_resume_devfreq()
191 devfreq_resume_device(gpu->devfreq.devfreq); in msm_gpu_resume_devfreq()
225 devfreq_suspend_device(gpu->devfreq.devfreq); in msm_gpu_pm_suspend()

12