Merge tag 'trace-v5.15-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt...
[linux-2.6-microblaze.git] / include / linux / devfreq.h
index 26ea085..142474b 100644 (file)
@@ -38,6 +38,7 @@ enum devfreq_timer {
 
 struct devfreq;
 struct devfreq_governor;
+struct thermal_cooling_device;
 
 /**
  * struct devfreq_dev_status - Data given from devfreq user device to
@@ -98,11 +99,15 @@ struct devfreq_dev_status {
  * @freq_table:                Optional list of frequencies to support statistics
  *                     and freq_table must be generated in ascending order.
  * @max_state:         The size of freq_table.
+ *
+ * @is_cooling_device: A self-explanatory boolean giving the device a
+ *                     cooling effect property.
  */
 struct devfreq_dev_profile {
        unsigned long initial_freq;
        unsigned int polling_ms;
        enum devfreq_timer timer;
+       bool is_cooling_device;
 
        int (*target)(struct device *dev, unsigned long *freq, u32 flags);
        int (*get_dev_status)(struct device *dev,
@@ -156,6 +161,7 @@ struct devfreq_stats {
  * @suspend_count:      suspend requests counter for a device.
  * @stats:     Statistics of devfreq device behavior
  * @transition_notifier_list: list head of DEVFREQ_TRANSITION_NOTIFIER notifier
+ * @cdev:      Cooling device pointer if the devfreq has cooling property
  * @nb_min:            Notifier block for DEV_PM_QOS_MIN_FREQUENCY
  * @nb_max:            Notifier block for DEV_PM_QOS_MAX_FREQUENCY
  *
@@ -198,6 +204,9 @@ struct devfreq {
 
        struct srcu_notifier_head transition_notifier_list;
 
+       /* Pointer to the cooling device if used for thermal mitigation */
+       struct thermal_cooling_device *cdev;
+
        struct notifier_block nb_min;
        struct notifier_block nb_max;
 };