Skip to content

cpufreq: cpu0: Extend support beyond CPU0, V2

Viresh Kumar linux-arm-msm linux-devicetree linux-omap linux-pm lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest14 patches 54 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/14of: Create of_property_match()drivers/of/base.c include/linux/of.h+39 -00 replies
2/14clk: Create of_clk_shared_by_cpus()drivers/clk/clk.c include/linux/clk.h+62 -05 replies
3/14cpufreq: Add support for per-policy driver datainclude/linux/cpufreq.h+3 -02 replies
4/14cpufreq: cpu0: Add Module Authordrivers/cpufreq/cpufreq-cpu0.c+4 -03 replies
5/14cpufreq: cpu0: don't validate clock on clk_put()drivers/cpufreq/cpufreq-cpu0.c+1 -21 reply
6/14cpufreq: cpu0: defer probe if clock isn't registered yetdrivers/cpufreq/cpufreq-cpu0.c+11 -26 replies
7/14cpufreq: cpu0: OPPs can be populated at runtimedrivers/cpufreq/cpufreq-cpu0.c+2 -510 replies
8/14cpufreq: cpu0: use dev_{err|warn|dbg} instead of pr_{err|warn|debug}drivers/cpufreq/cpufreq-cpu0.c+18 -141 reply
9/14cpufreq: cpu0: Move per-cluster initialization code to ->init()drivers/cpufreq/cpufreq-cpu0.c+136 -538 replies
10/14cpufreq: cpu0: try regulators with name "cpu-supply"drivers/cpufreq/cpufreq-cpu0.c+13 -10 replies
11/14cpufreq: cpu0: Make allocate_resources() work for any CPUdrivers/cpufreq/cpufreq-cpu0.c+17 -130 replies
12/14cpufreq: cpu0: Extend support beyond CPU0Documentation/devicetree/bindings/cpufreq/cpufreq-cpu0.txt drivers/cpufreq/cpufreq-cpu0.c+101 -60 replies
13/14cpufreq: cpu0: rename driver and internals to 'cpufreq_generic'Documentation/devicetree/bindings/cpufreq/cpufreq-generic.txt drivers/cpufreq/Kconfig drivers/cpufreq/Kconfig.arm +2 more+25 -250 replies
14/14cpufreq: generic: set platform_{driver|device} '.name' to 'cpufreq-generic'arch/arm/mach-imx/imx27-dt.c arch/arm/mach-imx/imx51-dt.c arch/arm/mach-omap2/pm.c +6 more+12 -120 replies

Reviews trailers per patch

4 of 14 patches have a Reviewed-by or Acked-by.

PatchStephen BoydSantosh Shilimkar
SeriesT-b
1/14
2/14
3/14
4/14
5/14A-b
6/14A-b
7/14A-b
8/14A-b
9/14
10/14
11/14
12/14
13/14
14/14

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [PATCH 00/14] cpufreq: cpu0: Extend support beyond CPU0, V2

V1: https://lkml.org/lkml/2014/6/25/152

Stephen Boyd sent few patches some time back around a new cpufreq driver for Qualcomm's Krait SoC: https://lkml.org/lkml/2014/6/24/918.

Krait couldn't use existing cpufreq-cpu0 driver as it doesn't have support for SoC's with multiple clusters or SoC's which don't share clock line across all CPUs.

This patchset is all about extending support beyond CPU0. It can be used for platforms like Krait or ARM big LITTLE architecture now.

First two patches add helper routine for of and clk layer, which would be used by later patches.

Third one adds space for driver specific data in 'struct cpufreq_policy' and later ones migrate cpufreq-cpu0 to cpufreq-generic, i.e. can be used for SoCs which don't share clock lines across all CPUs.

@Stephen: I haven't added your Tested-by as there were few modifications since the time you tested it last.

Pushed here:
Rebased over v3.16-rc3:
git://git.linaro.org/people/viresh.kumar/linux.git cpufreq/cpu0-krait-v2

For guys looking to test on exynos, rebased over linux-next + some patches from Thomas Abraham to use cpufreq-cpu0 for exynos:
git://git.linaro.org/people/viresh.kumar/linux.git cpufreq/cpu0-exynos-v2

Cc Kukjin Kim <[email protected]>
Cc Michal Simek <[email protected]>
Cc Mike Turquette <[email protected]>
Cc Rob Herring <[email protected]>
Cc Santosh Shilimkar <[email protected]>
Cc Simon Horman <[email protected]>

Viresh Kumar (14):
of: Create of_property_match()
clk: Create of_clk_shared_by_cpus()
cpufreq: Add support for per-policy driver data
cpufreq: cpu0: Add Module Author
cpufreq: cpu0: don't validate clock on clk_put()
cpufreq: cpu0: defer probe if clock isn't registered yet
cpufreq: cpu0: OPPs can be populated at runtime
cpufreq: cpu0: use dev_{err|warn|dbg} instead of pr_{err|warn|debug}
cpufreq: cpu0: Move per-cluster initialization code to ->init()
cpufreq: cpu0: try regulators with name "cpu-supply"
cpufreq: cpu0: Make allocate_resources() work for any CPU
cpufreq: cpu0: Extend support beyond CPU0
cpufreq: cpu0: rename driver and internals to 'cpufreq_generic'
cpufreq: generic: set platform_{driver|device} '.name' to
'cpufreq-generic'

 .../devicetree/bindings/cpufreq/cpufreq-cpu0.txt   |  62 ----
 .../bindings/cpufreq/cpufreq-generic.txt           | 126 +++++++
 arch/arm/mach-imx/imx27-dt.c                       |   2 +-
 arch/arm/mach-imx/imx51-dt.c                       |   2 +-
 arch/arm/mach-omap2/pm.c                           |   2 +-
 arch/arm/mach-shmobile/board-ape6evm-reference.c   |   2 +-
 arch/arm/mach-shmobile/setup-sh73a0.c              |   4 +-
 arch/arm/mach-zynq/common.c                        |   2 +-
 drivers/clk/clk.c                                  |  56 +++
 drivers/cpufreq/Kconfig                            |  10 +-
 drivers/cpufreq/Kconfig.arm                        |   2 +-
 drivers/cpufreq/Makefile                           |   2 +-
 drivers/cpufreq/cpufreq-cpu0.c                     | 251 -------------
 drivers/cpufreq/cpufreq-generic.c                  | 394 +++++++++++++++++++++
 drivers/cpufreq/exynos4x12-cpufreq.c               |   2 +-
 drivers/cpufreq/highbank-cpufreq.c                 |   6 +-
 drivers/of/base.c                                  |  29 ++
 include/linux/clk.h                                |   6 +
 include/linux/cpufreq.h                            |   3 +
 include/linux/of.h                                 |  10 +
 20 files changed, 642 insertions(+), 331 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/cpufreq/cpufreq-cpu0.txt
 create mode 100644 Documentation/devicetree/bindings/cpufreq/cpufreq-generic.txt
 delete mode 100644 drivers/cpufreq/cpufreq-cpu0.c
 create mode 100644 drivers/cpufreq/cpufreq-generic.c
Signature · 1 line
2.0.0.rc2