Lines Matching full:devfreq
3 * devfreq: Generic Dynamic Voltage and Frequency Scaling (DVFS) Framework
18 /* DEVFREQ governor name */
25 /* DEVFREQ notifier interface */
32 /* DEVFREQ work timers */
39 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.
95 * @exit: An optional callback that is called when devfreq
96 * is removing the devfreq object due to error or
98 * has registered devfreq->nb at a notifier-head,
124 * struct devfreq_stats - Statistics of devfreq device behavior
125 * @total_trans: Number of devfreq transitions.
126 * @trans_table: Statistics of devfreq transitions.
127 * @time_in_state: Statistics of devfreq states.
138 * struct devfreq - Device devfreq structure
139 * @node: list node - contains the devices with devfreq that have been
141 * @lock: a mutex to protect accessing devfreq.
142 * @dev: device registered by devfreq class. dev.parent is the device
143 * using devfreq.
144 * @profile: device-specific devfreq profile
147 * @nb: notifier block used to notify devfreq object that it should
148 * reevaluate operable frequencies. Devfreq users may use
149 * devfreq.nb to the corresponding register notifier call chain.
151 * @freq_table: current frequency table used by the devfreq driver.
154 * @last_status: devfreq user device info, performance statistics
155 * @data: Private data of the governor. The devfreq framework does not
161 * @stop_polling: devfreq polling status of a device.
165 * @stats: Statistics of devfreq device behavior
167 * @cdev: Cooling device pointer if the devfreq has cooling property
171 * This structure stores the devfreq information for a given device.
173 * Note that when a governor accesses entries in struct devfreq in its
176 * struct mutex lock in struct devfreq. A governor may use this mutex
179 struct devfreq { struct
226 struct devfreq *devfreq_add_device(struct device *dev, argument
230 int devfreq_remove_device(struct devfreq *devfreq);
231 struct devfreq *devm_devfreq_add_device(struct device *dev,
235 void devm_devfreq_remove_device(struct device *dev, struct devfreq *devfreq);
238 int devfreq_suspend_device(struct devfreq *devfreq);
239 int devfreq_resume_device(struct devfreq *devfreq);
245 int update_devfreq(struct devfreq *devfreq);
247 /* Helper functions for devfreq user device driver with OPP. */
251 struct devfreq *devfreq);
253 struct devfreq *devfreq);
255 struct devfreq *devfreq);
257 struct devfreq *devfreq);
258 int devfreq_register_notifier(struct devfreq *devfreq,
261 int devfreq_unregister_notifier(struct devfreq *devfreq,
265 struct devfreq *devfreq,
269 struct devfreq *devfreq,
272 struct devfreq *devfreq_get_devfreq_by_node(struct device_node *node);
273 struct devfreq *devfreq_get_devfreq_by_phandle(struct device *dev,
278 * struct devfreq_simple_ondemand_data - ``void *data`` fed to struct devfreq
303 * struct devfreq_passive_data - ``void *data`` fed to struct devfreq
305 * @parent: the devfreq instance of parent device.
309 * by using the new frequency of parent devfreq device
311 * If the devfreq device has the specific method to decide
314 * @this: the devfreq instance of own device.
319 * The devfreq_passive_data have to set the devfreq instance of parent
321 * initialize the 'this' and 'nb' field because the devfreq core will handle
325 /* Should set the devfreq instance of parent device */
326 struct devfreq *parent;
329 int (*get_target_freq)(struct devfreq *this, unsigned long *freq);
335 struct devfreq *this;
342 static inline struct devfreq *devfreq_add_device(struct device *dev, in devfreq_add_device()
350 static inline int devfreq_remove_device(struct devfreq *devfreq) in devfreq_remove_device() argument
355 static inline struct devfreq *devm_devfreq_add_device(struct device *dev, in devm_devfreq_add_device()
364 struct devfreq *devfreq) in devm_devfreq_remove_device() argument
368 static inline int devfreq_suspend_device(struct devfreq *devfreq) in devfreq_suspend_device() argument
373 static inline int devfreq_resume_device(struct devfreq *devfreq) in devfreq_resume_device() argument
388 struct devfreq *devfreq) in devfreq_register_opp_notifier() argument
394 struct devfreq *devfreq) in devfreq_unregister_opp_notifier() argument
400 struct devfreq *devfreq) in devm_devfreq_register_opp_notifier() argument
406 struct devfreq *devfreq) in devm_devfreq_unregister_opp_notifier() argument
410 static inline int devfreq_register_notifier(struct devfreq *devfreq, in devfreq_register_notifier() argument
417 static inline int devfreq_unregister_notifier(struct devfreq *devfreq, in devfreq_unregister_notifier() argument
425 struct devfreq *devfreq, in devm_devfreq_register_notifier() argument
433 struct devfreq *devfreq, in devm_devfreq_unregister_notifier() argument
439 static inline struct devfreq *devfreq_get_devfreq_by_node(struct device_node *node) in devfreq_get_devfreq_by_node()
444 static inline struct devfreq *devfreq_get_devfreq_by_phandle(struct device *dev, in devfreq_get_devfreq_by_phandle()
450 static inline int devfreq_update_stats(struct devfreq *df) in devfreq_update_stats()