Add a new track_remote flag for devfreq governors as a pre-curor to
adding the devfreq governors that is responsible for tracking
frequency changes on remote devices.

This new governor flag provides for a way track the remote device's
frequency and keep the trans_stat data updated and skip the frequency
update sequency for the device.

Signed-off-by: Sibi Sankar <[email protected]>
---
 drivers/devfreq/devfreq.c        | 5 +++++
 include/linux/devfreq-governor.h | 1 +
 2 files changed, 6 insertions(+)

diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c
index 85e937e321e8..e0272078912b 100644
--- a/drivers/devfreq/devfreq.c
+++ b/drivers/devfreq/devfreq.c
@@ -348,6 +348,10 @@ static int devfreq_set_target(struct devfreq *devfreq, 
unsigned long new_freq,
        unsigned long cur_freq;
        int err = 0;
 
+       /* Frequency already updated, update trans-stat info */
+       if (IS_SUPPORTED_FLAG(devfreq->governor->flags, TRACK_REMOTE))
+               goto update_status;
+
        if (devfreq->profile->get_cur_freq)
                devfreq->profile->get_cur_freq(devfreq->dev.parent, &cur_freq);
        else
@@ -375,6 +379,7 @@ static int devfreq_set_target(struct devfreq *devfreq, 
unsigned long new_freq,
        freqs.new = new_freq;
        devfreq_notify_transition(devfreq, &freqs, DEVFREQ_POSTCHANGE);
 
+update_status:
        if (devfreq_update_status(devfreq, new_freq))
                dev_warn(&devfreq->dev,
                         "Couldn't update frequency transition information.\n");
diff --git a/include/linux/devfreq-governor.h b/include/linux/devfreq-governor.h
index 2853f571dfdf..83aa82c4a9b6 100644
--- a/include/linux/devfreq-governor.h
+++ b/include/linux/devfreq-governor.h
@@ -36,6 +36,7 @@
  */
 #define DEVFREQ_GOV_FLAG_IMMUTABLE                     BIT(0)
 #define DEVFREQ_GOV_FLAG_IRQ_DRIVEN                    BIT(1)
+#define DEVFREQ_GOV_FLAG_TRACK_REMOTE                  BIT(2)
 
 /*
  * Definition of governor attribute flags except for common sysfs attributes
-- 
2.34.1

Reply via email to