mbox series

[v4,0/9] cpufreq: Add flag to auto-register as cooling device

Message ID cover.1548654899.git.amit.kucheria@linaro.org
Headers show
Series cpufreq: Add flag to auto-register as cooling device | expand

Message

Amit Kucheria Jan. 28, 2019, 6:41 a.m. UTC
Add a flag for cpufreq drivers to tell cpufreq core to auto-register
themselves as a thermal cooling device.

There series converts over all the drivers except arm_big_little.c.
Tested on SDM845 with the qcom-cpufreq-hw driver. Only compile-tested the
others.

Things needing fixing (but not a blocker for the series):
 - Look at how to detect that we're not in IKS mode in arm_big_little's
   .ready callback.

Chnages since v3:
 - Got rid of wrapper function to register/unregister cooling devices.
   Directly call the function in cpufreq.c

Changes since v2:
 - Get rid of #ifdef'ery and let the pointer exist in all cases
 - Get rid of (!CPU_THERMAL || THERMAL) dependency in all cpufreq drivers'
   Kconfig

Changes since v1:
- Fix compilation failures with allmodconfig
- Get rid of #ifdef in cpufreq.c
- Removed miscellaneous patches and sent them separately
- Merged patches 1 and 2 from v1

Amit Kucheria (9):
  thermal: cpu_cooling: Require thermal core to be compiled in
  cpufreq: Auto-register the driver as a thermal cooling device if asked
  cpufreq: qcom-hw: Register as a cpufreq cooling device
  cpufreq: imx6q: Use auto-registration of thermal cooling device
  cpufreq: cpufreq-dt: Use auto-registration of thermal cooling device
  cpufreq: mediatek: Use auto-registration of thermal cooling device
  cpufreq: qoriq: Use auto-registration of thermal cooling device
  cpufreq: scmi: Use auto-registration of thermal cooling device
  cpufreq: scpi: Use auto-registration of thermal cooling device

 drivers/cpufreq/Kconfig            |  3 ---
 drivers/cpufreq/Kconfig.arm        |  5 -----
 drivers/cpufreq/cpufreq-dt.c       | 14 ++------------
 drivers/cpufreq/cpufreq.c          |  9 +++++++++
 drivers/cpufreq/imx6q-cpufreq.c    | 24 ++----------------------
 drivers/cpufreq/mediatek-cpufreq.c | 14 ++------------
 drivers/cpufreq/qcom-cpufreq-hw.c  |  3 ++-
 drivers/cpufreq/qoriq-cpufreq.c    | 15 ++-------------
 drivers/cpufreq/scmi-cpufreq.c     | 14 ++------------
 drivers/cpufreq/scpi-cpufreq.c     | 14 ++------------
 drivers/thermal/Kconfig            |  1 +
 include/linux/cpufreq.h            |  9 +++++++++
 12 files changed, 33 insertions(+), 92 deletions(-)

-- 
2.17.1

Comments

Daniel Lezcano Jan. 28, 2019, 8:32 a.m. UTC | #1
On 28/01/2019 07:41, Amit Kucheria wrote:
> All cpufreq drivers do similar things to register as a cooling device.

> Provide a cpufreq driver flag so drivers can just ask the cpufreq core

> to register the cooling device on their behalf. This allows us to get

> rid of duplicated code in the drivers.

> 

> In order to allow this, we add a struct thermal_cooling_device pointer

> to struct cpufreq_policy so that drivers don't need to store it in a

> private data structure.

> 

> Suggested-by: Stephen Boyd <swboyd@chromium.org>

> Suggested-by: Viresh Kumar <viresh.kumar@linaro.org>

> Signed-off-by: Amit Kucheria <amit.kucheria@linaro.org>

> Reviewed-by: Matthias Kaehlcke <mka@chromium.org>

> Tested-by: Matthias Kaehlcke <mka@chromium.org>

> ---


[ ... ]

> +/*

> + * Set by drivers that want the core to automatically register the cpufreq

> + * driver as a thermal cooling device.

> + */

> +#define CPUFREQ_AUTO_REGISTER_COOLING_DEV	BIT(7)

> +


Isn't the CPUFREQ_IS_COOLING_DEV more appropriate? We define a property
of the cpufreq driver and the resulting action is to auto-register, no?



-- 
 <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
Amit Kucheria Jan. 29, 2019, 4:21 a.m. UTC | #2
On Mon, Jan 28, 2019 at 5:34 PM Rafael J. Wysocki <rjw@rjwysocki.net> wrote:
>

> On Monday, January 28, 2019 9:32:44 AM CET Daniel Lezcano wrote:

> > On 28/01/2019 07:41, Amit Kucheria wrote:

> > > All cpufreq drivers do similar things to register as a cooling device.

> > > Provide a cpufreq driver flag so drivers can just ask the cpufreq core

> > > to register the cooling device on their behalf. This allows us to get

> > > rid of duplicated code in the drivers.

> > >

> > > In order to allow this, we add a struct thermal_cooling_device pointer

> > > to struct cpufreq_policy so that drivers don't need to store it in a

> > > private data structure.

> > >

> > > Suggested-by: Stephen Boyd <swboyd@chromium.org>

> > > Suggested-by: Viresh Kumar <viresh.kumar@linaro.org>

> > > Signed-off-by: Amit Kucheria <amit.kucheria@linaro.org>

> > > Reviewed-by: Matthias Kaehlcke <mka@chromium.org>

> > > Tested-by: Matthias Kaehlcke <mka@chromium.org>

> > > ---

> >

> > [ ... ]

> >

> > > +/*

> > > + * Set by drivers that want the core to automatically register the cpufreq

> > > + * driver as a thermal cooling device.

> > > + */

> > > +#define CPUFREQ_AUTO_REGISTER_COOLING_DEV  BIT(7)

> > > +

> >

> > Isn't the CPUFREQ_IS_COOLING_DEV more appropriate? We define a property

> > of the cpufreq driver and the resulting action is to auto-register, no?

>

> Yes.


OK, will send out another series with this change and the IS_ENABLED guards.

Thank you everyone for the review.