cpufreq: dt: Allow platform specific suspend/resume callbacks
authorViresh Kumar <viresh.kumar@linaro.org>
Tue, 24 Apr 2018 09:39:45 +0000 (15:09 +0530)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 10 May 2018 09:43:59 +0000 (11:43 +0200)
Platforms may need to implement platform specific suspend/resume hooks.
Update cpufreq-dt driver's platform data to contain those for such
platforms.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Tested-by: Miquel Raynal <miquel.raynal@bootlin.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/cpufreq/cpufreq-dt.c
drivers/cpufreq/cpufreq-dt.h

index 190ea0dccb7925e524d7fd3ebc4fa6cf46f349ed..0a9ebf00be468e2d78aad853d1dcb7fd0d97558e 100644 (file)
@@ -346,8 +346,14 @@ static int dt_cpufreq_probe(struct platform_device *pdev)
        if (ret)
                return ret;
 
-       if (data && data->have_governor_per_policy)
-               dt_cpufreq_driver.flags |= CPUFREQ_HAVE_GOVERNOR_PER_POLICY;
+       if (data) {
+               if (data->have_governor_per_policy)
+                       dt_cpufreq_driver.flags |= CPUFREQ_HAVE_GOVERNOR_PER_POLICY;
+
+               dt_cpufreq_driver.resume = data->resume;
+               if (data->suspend)
+                       dt_cpufreq_driver.suspend = data->suspend;
+       }
 
        ret = cpufreq_register_driver(&dt_cpufreq_driver);
        if (ret)
index 54d774e46c435e4b3a3537500f61bda9610df61f..d5aeea13433e991b1e1f1d41e849a3618276de5c 100644 (file)
 
 #include <linux/types.h>
 
+struct cpufreq_policy;
+
 struct cpufreq_dt_platform_data {
        bool have_governor_per_policy;
+
+       int (*suspend)(struct cpufreq_policy *policy);
+       int (*resume)(struct cpufreq_policy *policy);
 };
 
 #endif /* __CPUFREQ_DT_H__ */