| /Linux-v5.4/drivers/devfreq/ | 
| D | devfreq.c | 54 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 …]
 
 | 
| D | governor_passive.c | 15 static int devfreq_passive_get_target_freq(struct devfreq *devfreq,  in devfreq_passive_get_target_freq()  argument19 			= (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 …]
 
 | 
| D | governor_userspace.c | 22 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 …]
 
 | 
| D | governor.h | 16 #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()
 
 | 
| D | governor_simpleondemand.c | 18 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()
 
 | 
| D | governor_performance.c | 13 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()
 
 | 
| D | governor_powersave.c | 13 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()
 
 | 
| D | tegra20-devfreq.c | 32 	struct devfreq *devfreq;  member41 	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()
 
 | 
| D | tegra30-devfreq.c | 150 	struct devfreq		*devfreq;  member339 	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 …]
 
 | 
| D | exynos-bus.c | 29 	struct devfreq *devfreq;  member297 	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 …]
 
 | 
| D | Makefile | 2 obj-$(CONFIG_PM_DEVFREQ)	+= devfreq.o3 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
 
 | 
| D | Kconfig | 8 	  devfreq, a generic DVFS framework can be registered for a device9 	  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 …]
 
 | 
| D | rk3399_dmc.c | 60 	struct devfreq *devfreq;  member208 	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/ | 
| D | devfreq.h | 33 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 …]
 
 | 
| D | devfreq_cooling.h | 56 	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/ | 
| D | panfrost_devfreq.c | 23 	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 …]
 
 | 
| D | panfrost_device.h | 94 		struct devfreq *devfreq;  member99 	} devfreq;  member
 
 | 
| /Linux-v5.4/Documentation/ABI/testing/ | 
| D | sysfs-class-devfreq | 1 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 …]
 
 | 
| D | sysfs-class-devfreq-event | 1 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/ | 
| D | devfreq.h | 3 #define TRACE_SYSTEM devfreq12 	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/ | 
| D | devfreq_cooling.c | 60 	struct devfreq *devfreq;  member82 	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/ | 
| D | Kconfig | 5 	  The devfreq-event device provide the raw data and events which6 	  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/ | 
| D | exynos5422-odroid-core.dtsi | 45 	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/ | 
| D | exynos-bus.txt | 44 - devfreq-events: the devfreq-event device to monitor the current utilization48 - 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/ | 
| D | msm_gpu.c | 59 	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()
 
 |