/linux-5.10/drivers/devfreq/ |
D | devfreq.c | 3 * devfreq: Generic Dynamic Voltage and Frequency Scaling (DVFS) Framework 21 #include <linux/devfreq.h> 32 #include <trace/events/devfreq.h> 40 * devfreq core provides delayed work based load monitoring helper 46 /* The list of all device-devfreq governors */ 48 /* The list of all device-devfreq */ 58 * find_device_devfreq() - find devfreq struct using device pointer 59 * @dev: device pointer used to lookup device devfreq. 62 * devfreq info. devfreq_list_lock should be held by the caller. 64 static struct devfreq *find_device_devfreq(struct device *dev) in find_device_devfreq() [all …]
|
D | governor_passive.c | 3 * linux/drivers/devfreq/governor_passive.c 12 #include <linux/devfreq.h> 15 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() 26 * If the devfreq device with passive governor has the specific method in devfreq_passive_get_target_freq() 31 ret = p_data->get_target_freq(devfreq, freq); in devfreq_passive_get_target_freq() 36 * If the parent and passive devfreq device uses the OPP table, in devfreq_passive_get_target_freq() 41 * - parent devfreq device uses the governors except for passive. in devfreq_passive_get_target_freq() 42 * - passive devfreq device uses the passive governor. in devfreq_passive_get_target_freq() [all …]
|
D | governor.h | 3 * governor.h - internal header for devfreq governors. 8 * This header is for devfreq governors in drivers/devfreq/ 14 #include <linux/devfreq.h> 16 #define to_devfreq(DEV) container_of((DEV), struct devfreq, dev) 18 /* Devfreq events */ 29 * struct devfreq_governor - Devfreq policy governor 30 * @node: list node - contains registered devfreq governors 34 * @interrupt_driven: Devfreq core won't schedule polling work for this 42 * @event_handler: Callback for devfreq core framework to notify events 44 * init and exit, opp changes out of devfreq, suspend [all …]
|
D | Kconfig | 8 devfreq, a generic DVFS framework can be registered for a device 9 in order to let the governor provided to devfreq choose an 12 Each device may have its own governor and policy. Devfreq can 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 [all …]
|
D | governor_userspace.c | 3 * linux/drivers/devfreq/governor_userspace.c 11 #include <linux/devfreq.h> 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() [all …]
|
D | devfreq-event.c | 3 * devfreq-event: a framework to provide raw data and events of devfreq devices 8 * This driver is based on drivers/devfreq/devfreq.c. 11 #include <linux/devfreq-event.h> 22 /* The list of all devfreq event list */ 29 * devfreq_event_enable_edev() - Enable the devfreq-event dev and increase 30 * the enable_count of devfreq-event dev. 31 * @edev : the devfreq-event device 34 * devfreq-event device. The devfreq-event device should be enabled before 35 * using it by devfreq device. 60 * devfreq_event_disable_edev() - Disable the devfreq-event dev and decrease [all …]
|
D | exynos-bus.c | 3 * Generic Exynos Bus frequency driver with DEVFREQ Framework 9 * DEVFREQ framework and is based on drivers/devfreq/exynos/exynos4_bus.c. 13 #include <linux/devfreq.h> 14 #include <linux/devfreq-event.h> 28 struct devfreq *devfreq; member 41 * Control the devfreq-event device to get the current state of bus 90 * devfreq function for both simple-ondemand and passive governor 129 dev_err(dev, "failed to get event from devfreq-event devices\n"); in exynos_bus_get_dev_status() 137 dev_dbg(dev, "Usage of devfreq-event : %lu/%lu\n", stat->busy_time, in exynos_bus_get_dev_status() 143 dev_err(dev, "failed to set event to devfreq-event devices\n"); in exynos_bus_get_dev_status() [all …]
|
D | tegra30-devfreq.c | 3 * A devfreq driver for NVIDIA Tegra SoCs 11 #include <linux/devfreq.h> 157 struct devfreq *devfreq; member 230 u32 band = avg_band_freq * tegra->devfreq->profile->polling_ms; in tegra_devfreq_update_avg_wmark() 243 u32 val = tegra->cur_freq * tegra->devfreq->profile->polling_ms; in tegra_devfreq_update_wmark() 322 target_freq = dev->avg_count / tegra->devfreq->profile->polling_ms; in actmon_device_target_freq() 356 mutex_lock(&tegra->devfreq->lock); in actmon_thread_isr() 367 update_devfreq(tegra->devfreq); in actmon_thread_isr() 369 mutex_unlock(&tegra->devfreq->lock); in actmon_thread_isr() 403 mutex_lock(&tegra->devfreq->lock); in tegra_actmon_delayed_update() [all …]
|
D | governor_performance.c | 3 * linux/drivers/devfreq/governor_performance.c 9 #include <linux/devfreq.h> 13 static int devfreq_performance_func(struct devfreq *df, in devfreq_performance_func() 18 * said in devfreq.h 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 | 3 * linux/drivers/devfreq/governor_powersave.c 9 #include <linux/devfreq.h> 13 static int devfreq_powersave_func(struct devfreq *df, in devfreq_powersave_func() 18 * said in devfreq.h 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 | 3 * NVIDIA Tegra20 devfreq driver 9 #include <linux/devfreq.h> 32 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() 204 .name = "tegra20-devfreq", [all …]
|
D | governor_simpleondemand.c | 3 * linux/drivers/devfreq/governor_simpleondemand.c 11 #include <linux/devfreq.h> 15 /* Default constants for DevFreq-Simple-Ondemand (DFSO) */ 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_update_interval(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()
|
/linux-5.10/drivers/gpu/drm/lima/ |
D | lima_devfreq.c | 9 #include <linux/devfreq.h> 19 static void lima_devfreq_update_utilization(struct lima_devfreq *devfreq) in lima_devfreq_update_utilization() argument 24 last = devfreq->time_last_update; in lima_devfreq_update_utilization() 26 if (devfreq->busy_count > 0) in lima_devfreq_update_utilization() 27 devfreq->busy_time += ktime_sub(now, last); in lima_devfreq_update_utilization() 29 devfreq->idle_time += ktime_sub(now, last); in lima_devfreq_update_utilization() 31 devfreq->time_last_update = now; in lima_devfreq_update_utilization() 52 static void lima_devfreq_reset(struct lima_devfreq *devfreq) in lima_devfreq_reset() argument 54 devfreq->busy_time = 0; in lima_devfreq_reset() 55 devfreq->idle_time = 0; in lima_devfreq_reset() [all …]
|
D | lima_devfreq.h | 10 struct devfreq; 17 struct devfreq *devfreq; member 38 void lima_devfreq_record_busy(struct lima_devfreq *devfreq); 39 void lima_devfreq_record_idle(struct lima_devfreq *devfreq); 41 int lima_devfreq_resume(struct lima_devfreq *devfreq); 42 int lima_devfreq_suspend(struct lima_devfreq *devfreq);
|
/linux-5.10/include/linux/ |
D | devfreq.h | 3 * devfreq: Generic Dynamic Voltage and Frequency Scaling (DVFS) Framework 20 /* DEVFREQ governor name */ 27 /* DEVFREQ notifier interface */ 34 /* DEVFREQ work timers */ 41 struct devfreq; 45 * struct devfreq_dev_status - Data given from devfreq user device to 53 * @private_data: An entry not specified by the devfreq framework. 76 * struct devfreq_dev_profile - Devfreq's user device profile 89 * status to devfreq. Governors are recommended not to 92 * devfreq.last_status. [all …]
|
D | devfreq-event.h | 3 * devfreq-event: a framework to provide raw data and events of devfreq devices 15 * struct devfreq_event_dev - the devfreq-event device 17 * @node : Contain the devfreq-event device that have been registered. 18 * @dev : the device registered by devfreq-event class. dev.parent is 19 * the device using devfreq-event. 20 * @lock : a mutex to protect accessing devfreq-event. 22 * @desc : the description for devfreq-event device. 24 * This structure contains devfreq-event device information. 37 * struct devfreq_event_data - the devfreq-event data 39 * @load_count : load count of devfreq-event device for the given period. [all …]
|
D | devfreq_cooling.h | 4 * devfreq 13 #include <linux/devfreq.h> 18 * struct devfreq_cooling_power - Devfreq cooling power ops 40 * devfreq 'last_status'). 49 unsigned long (*get_static_power)(struct devfreq *devfreq, 51 unsigned long (*get_dynamic_power)(struct devfreq *devfreq, 54 int (*get_real_power)(struct devfreq *df, u32 *power, 62 of_devfreq_cooling_register_power(struct device_node *np, struct devfreq *df, 65 of_devfreq_cooling_register(struct device_node *np, struct devfreq *df); 66 struct thermal_cooling_device *devfreq_cooling_register(struct devfreq *df); [all …]
|
/linux-5.10/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/.../name 14 The /sys/class/devfreq/.../name shows the name of device 15 of the corresponding devfreq object. 17 What: /sys/class/devfreq/.../governor 21 The /sys/class/devfreq/.../governor show or set the name of the [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-5.10/drivers/thermal/ |
D | devfreq_cooling.c | 4 * devfreq 9 * - If OPPs are added or removed after devfreq cooling has 10 * registered, the devfreq cooling won't react to it. 13 #include <linux/devfreq.h> 30 * struct devfreq_cooling_device - Devfreq cooling device 34 * @devfreq: Pointer to associated devfreq device. 52 * of the devfreq device. 57 struct devfreq *devfreq; member 92 struct devfreq *df = dfc->devfreq; in devfreq_cooling_set_cur_state() 116 * @dfc: Pointer to devfreq cooling device [all …]
|
/linux-5.10/drivers/devfreq/event/ |
D | Kconfig | 3 bool "DEVFREQ-Event device Support" 5 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. 18 tristate "Exynos NoC (Network On Chip) Probe DEVFREQ event Driver" 23 This add the devfreq-event driver for Exynos SoC. It provides NoC 27 tristate "Exynos PPMU (Platform Performance Monitoring Unit) DEVFREQ event Driver" 31 This add the devfreq-event driver for Exynos SoC. It provides PPMU [all …]
|
/linux-5.10/include/trace/events/ |
D | devfreq.h | 3 #define TRACE_SYSTEM devfreq 8 #include <linux/devfreq.h> 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-5.10/Documentation/doc-guide/ |
D | contributing.rst | 58 ./drivers/devfreq/devfreq.c:1818: warning: bad line: 60 ./drivers/devfreq/devfreq.c:1854: warning: bad line: 71 * @dev: The devfreq user device. (parent of devfreq) 72 * @devfreq: The devfreq object. 85 [PATCH] PM / devfreq: Fix two malformed kerneldoc comments 87 Two kerneldoc comments in devfreq.c fail to adhere to the required format, 90 ./drivers/devfreq/devfreq.c:1818: warning: bad line: 92 ./drivers/devfreq/devfreq.c:1854: warning: bad line: 99 drivers/devfreq/devfreq.c | 4 ++-- 102 diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c [all …]
|
/linux-5.10/drivers/gpu/drm/panfrost/ |
D | panfrost_devfreq.c | 5 #include <linux/devfreq.h> 95 struct devfreq *devfreq; in panfrost_devfreq_init() local 115 /* Optional, continue without devfreq */ in panfrost_devfreq_init() 137 devfreq = devm_devfreq_add_device(dev, &panfrost_devfreq_profile, in panfrost_devfreq_init() 139 if (IS_ERR(devfreq)) { in panfrost_devfreq_init() 140 DRM_DEV_ERROR(dev, "Couldn't initialize GPU devfreq\n"); in panfrost_devfreq_init() 141 ret = PTR_ERR(devfreq); in panfrost_devfreq_init() 144 pfdevfreq->devfreq = devfreq; in panfrost_devfreq_init() 146 cooling = of_devfreq_cooling_register(dev->of_node, devfreq); in panfrost_devfreq_init() 183 if (!pfdevfreq->devfreq) in panfrost_devfreq_resume() [all …]
|
/linux-5.10/Documentation/driver-api/ |
D | devfreq.rst | 23 :c:func:`devfreq_add_device` function to create a :c:type:`devfreq` instance. 25 .. kernel-doc:: include/linux/devfreq.h 26 .. kernel-doc:: include/linux/devfreq-event.h 27 .. kernel-doc:: drivers/devfreq/devfreq.c 29 .. kernel-doc:: drivers/devfreq/devfreq-event.c
|