[PATCH v2 00/18] genpd: Create a genpd directory to host genpd providers

From: Ulf Hansson
Date: Tue Jul 11 2023 - 10:20:34 EST


Changes in v2:
- Added/updated commit messages to patch2 - > patch18.
- Fixed the build for amlogic
- Added a few tags for acks/reviewed by.
- Cc all platform/soc maintainers on the cover-letter and patch1.
- Updated the path to the git tree. The git is now created.
- Rebased on v6.5-rc1.
- Update the cover letter a bit.

There are currently ~60 users of the genpd provider interface, which
implementations are sprinkled across various subsystems. To help out with
maintenance and to gain a bit better control, let's create a new subsystem
(drivers/genpd) and move some of the providers from the soc directories in here.

Clearly some providers aren't really feasible to move - and that's perfectly
fine too. We don't need to keep all genpd providers together to improve the
situation, but keeping most of them would be nice, I think. At this point I
have walked through driver/soc and /arch/ - deferring others to later. Moreover,
I am intentionally leaving the Kconfig files in drivers/soc/, as I think it's
better to discuss what to with them separately.

Note that, the intention is also to host a git tree (it's not been created yet,
but should be quick if this seems reasonable to everybody), to collect and to
get the patches tested/integrated through the linux-next tree. Ideally this
should release some of the burden on the soc maintainers (Arnd/Olof/etc).

Note that, going forward - it's probably best to funnel this through the soc
tree (I can send a pull request if agreed) the I can take over in the next
release cycle at v6.6-rc1 and onwards. In that case, I will of course require
acks/reviews from the current platform/soc maintainers, hence the MAINTAINERS
are also being updated as a part of $subject series.

Does this make sense?

Kind regards
Ulf Hansson


Ulf Hansson (18):
genpd: Create a new subsystem directory to host genpd providers
soc: actions: Move power-domain driver to the genpd dir
soc: amlogic: Move power-domain drivers to the genpd dir
soc: apple: Move power-domain driver to the genpd dir
soc: bcm: Move power-domain drivers to the genpd dir
soc: imx: Move power-domain drivers to the genpd dir
soc: mediatek: Move power-domain drivers to the genpd dir
soc: qcom: Move power-domain drivers to the genpd dir
soc: renesas: Move power-domain drivers to the genpd dir
soc: rockchip: Mover power-domain driver to the genpd dir
soc: samsung: Move power-domain driver to the genpd dir
soc: starfive: Move the power-domain driver to the genpd dir
soc: sunxi: Move power-domain driver to the genpd dir
soc: tegra: Move powergate-bpmp driver to the genpd dir
soc: ti: Mover power-domain drivers to the genpd dir
soc: xilinx: Move power-domain driver to the genpd dir
ARM: ux500: Convert power-domain code into a regular platform driver
ARM: ux500: Move power-domain driver to the genpd dir

MAINTAINERS | 22 ++++++++++----
arch/arm/mach-ux500/Makefile | 1 -
arch/arm/mach-ux500/cpu-db8500.c | 5 ----
arch/arm/mach-ux500/pm_domains.h | 17 -----------
drivers/Makefile | 1 +
drivers/genpd/Makefile | 16 ++++++++++
drivers/genpd/actions/Makefile | 2 ++
drivers/{soc => genpd}/actions/owl-sps.c | 0
drivers/genpd/amlogic/Makefile | 4 +++
.../{soc => genpd}/amlogic/meson-ee-pwrc.c | 0
.../amlogic/meson-gx-pwrc-vpu.c | 0
.../amlogic/meson-secure-pwrc.c | 0
drivers/genpd/apple/Makefile | 2 ++
.../apple/pmgr-pwrstate.c} | 0
drivers/genpd/bcm/Makefile | 5 ++++
.../{soc/bcm/bcm63xx => genpd/bcm}/bcm-pmb.c | 0
drivers/{soc => genpd}/bcm/bcm2835-power.c | 0
.../bcm/bcm63xx => genpd/bcm}/bcm63xx-power.c | 0
.../{soc => genpd}/bcm/raspberrypi-power.c | 0
drivers/genpd/imx/Makefile | 7 +++++
drivers/{soc => genpd}/imx/gpc.c | 0
drivers/{soc => genpd}/imx/gpcv2.c | 0
drivers/{soc => genpd}/imx/imx8m-blk-ctrl.c | 0
drivers/{soc => genpd}/imx/imx8mp-blk-ctrl.c | 0
drivers/{soc => genpd}/imx/imx93-blk-ctrl.c | 0
drivers/{soc => genpd}/imx/imx93-pd.c | 0
drivers/genpd/mediatek/Makefile | 3 ++
.../mediatek/mt6795-pm-domains.h | 0
.../mediatek/mt8167-pm-domains.h | 0
.../mediatek/mt8173-pm-domains.h | 0
.../mediatek/mt8183-pm-domains.h | 0
.../mediatek/mt8186-pm-domains.h | 0
.../mediatek/mt8188-pm-domains.h | 0
.../mediatek/mt8192-pm-domains.h | 0
.../mediatek/mt8195-pm-domains.h | 0
.../{soc => genpd}/mediatek/mtk-pm-domains.c | 0
.../{soc => genpd}/mediatek/mtk-pm-domains.h | 0
drivers/{soc => genpd}/mediatek/mtk-scpsys.c | 0
drivers/genpd/qcom/Makefile | 4 +++
drivers/{soc => genpd}/qcom/cpr.c | 0
drivers/{soc => genpd}/qcom/rpmhpd.c | 0
drivers/{soc => genpd}/qcom/rpmpd.c | 0
drivers/genpd/renesas/Makefile | 30 +++++++++++++++++++
drivers/{soc => genpd}/renesas/r8a7742-sysc.c | 0
drivers/{soc => genpd}/renesas/r8a7743-sysc.c | 0
drivers/{soc => genpd}/renesas/r8a7745-sysc.c | 0
.../{soc => genpd}/renesas/r8a77470-sysc.c | 0
.../{soc => genpd}/renesas/r8a774a1-sysc.c | 0
.../{soc => genpd}/renesas/r8a774b1-sysc.c | 0
.../{soc => genpd}/renesas/r8a774c0-sysc.c | 0
.../{soc => genpd}/renesas/r8a774e1-sysc.c | 0
drivers/{soc => genpd}/renesas/r8a7779-sysc.c | 0
drivers/{soc => genpd}/renesas/r8a7790-sysc.c | 0
drivers/{soc => genpd}/renesas/r8a7791-sysc.c | 0
drivers/{soc => genpd}/renesas/r8a7792-sysc.c | 0
drivers/{soc => genpd}/renesas/r8a7794-sysc.c | 0
drivers/{soc => genpd}/renesas/r8a7795-sysc.c | 0
drivers/{soc => genpd}/renesas/r8a7796-sysc.c | 0
.../{soc => genpd}/renesas/r8a77965-sysc.c | 0
.../{soc => genpd}/renesas/r8a77970-sysc.c | 0
.../{soc => genpd}/renesas/r8a77980-sysc.c | 0
.../{soc => genpd}/renesas/r8a77990-sysc.c | 0
.../{soc => genpd}/renesas/r8a77995-sysc.c | 0
.../{soc => genpd}/renesas/r8a779a0-sysc.c | 0
.../{soc => genpd}/renesas/r8a779f0-sysc.c | 0
.../{soc => genpd}/renesas/r8a779g0-sysc.c | 0
.../{soc => genpd}/renesas/rcar-gen4-sysc.c | 0
.../{soc => genpd}/renesas/rcar-gen4-sysc.h | 0
drivers/{soc => genpd}/renesas/rcar-sysc.c | 0
drivers/{soc => genpd}/renesas/rcar-sysc.h | 0
drivers/{soc => genpd}/renesas/rmobile-sysc.c | 0
drivers/genpd/rockchip/Makefile | 2 ++
.../rockchip/pm-domains.c} | 0
drivers/genpd/samsung/Makefile | 2 ++
.../samsung/exynos-pm-domains.c} | 0
drivers/genpd/st/Makefile | 2 ++
.../genpd/st/ste-ux500-pm-domain.c | 25 ++++++++++++----
drivers/genpd/starfive/Makefile | 2 ++
.../starfive/jh71xx-pmu.c} | 0
drivers/genpd/sunxi/Makefile | 2 ++
drivers/{soc => genpd}/sunxi/sun20i-ppu.c | 0
drivers/genpd/tegra/Makefile | 2 ++
drivers/{soc => genpd}/tegra/powergate-bpmp.c | 0
drivers/genpd/ti/Makefile | 3 ++
drivers/{soc => genpd}/ti/omap_prm.c | 0
drivers/{soc => genpd}/ti/ti_sci_pm_domains.c | 0
drivers/genpd/xilinx/Makefile | 2 ++
.../xilinx/zynqmp-pm-domains.c} | 0
drivers/soc/actions/Makefile | 1 -
drivers/soc/amlogic/Makefile | 3 --
drivers/soc/apple/Makefile | 2 --
drivers/soc/bcm/Kconfig | 22 +++++++++++++-
drivers/soc/bcm/Makefile | 3 --
drivers/soc/bcm/bcm63xx/Kconfig | 21 -------------
drivers/soc/bcm/bcm63xx/Makefile | 3 --
drivers/soc/imx/Makefile | 7 +----
drivers/soc/mediatek/Makefile | 2 --
drivers/soc/qcom/Makefile | 3 --
drivers/soc/renesas/Makefile | 27 -----------------
drivers/soc/rockchip/Makefile | 1 -
drivers/soc/samsung/Makefile | 1 -
drivers/soc/starfive/Makefile | 3 --
drivers/soc/sunxi/Makefile | 1 -
drivers/soc/tegra/Makefile | 1 -
drivers/soc/ti/Makefile | 2 --
drivers/soc/xilinx/Makefile | 1 -
106 files changed, 150 insertions(+), 115 deletions(-)
delete mode 100644 arch/arm/mach-ux500/pm_domains.h
create mode 100644 drivers/genpd/Makefile
create mode 100644 drivers/genpd/actions/Makefile
rename drivers/{soc => genpd}/actions/owl-sps.c (100%)
create mode 100644 drivers/genpd/amlogic/Makefile
rename drivers/{soc => genpd}/amlogic/meson-ee-pwrc.c (100%)
rename drivers/{soc => genpd}/amlogic/meson-gx-pwrc-vpu.c (100%)
rename drivers/{soc => genpd}/amlogic/meson-secure-pwrc.c (100%)
create mode 100644 drivers/genpd/apple/Makefile
rename drivers/{soc/apple/apple-pmgr-pwrstate.c => genpd/apple/pmgr-pwrstate.c} (100%)
create mode 100644 drivers/genpd/bcm/Makefile
rename drivers/{soc/bcm/bcm63xx => genpd/bcm}/bcm-pmb.c (100%)
rename drivers/{soc => genpd}/bcm/bcm2835-power.c (100%)
rename drivers/{soc/bcm/bcm63xx => genpd/bcm}/bcm63xx-power.c (100%)
rename drivers/{soc => genpd}/bcm/raspberrypi-power.c (100%)
create mode 100644 drivers/genpd/imx/Makefile
rename drivers/{soc => genpd}/imx/gpc.c (100%)
rename drivers/{soc => genpd}/imx/gpcv2.c (100%)
rename drivers/{soc => genpd}/imx/imx8m-blk-ctrl.c (100%)
rename drivers/{soc => genpd}/imx/imx8mp-blk-ctrl.c (100%)
rename drivers/{soc => genpd}/imx/imx93-blk-ctrl.c (100%)
rename drivers/{soc => genpd}/imx/imx93-pd.c (100%)
create mode 100644 drivers/genpd/mediatek/Makefile
rename drivers/{soc => genpd}/mediatek/mt6795-pm-domains.h (100%)
rename drivers/{soc => genpd}/mediatek/mt8167-pm-domains.h (100%)
rename drivers/{soc => genpd}/mediatek/mt8173-pm-domains.h (100%)
rename drivers/{soc => genpd}/mediatek/mt8183-pm-domains.h (100%)
rename drivers/{soc => genpd}/mediatek/mt8186-pm-domains.h (100%)
rename drivers/{soc => genpd}/mediatek/mt8188-pm-domains.h (100%)
rename drivers/{soc => genpd}/mediatek/mt8192-pm-domains.h (100%)
rename drivers/{soc => genpd}/mediatek/mt8195-pm-domains.h (100%)
rename drivers/{soc => genpd}/mediatek/mtk-pm-domains.c (100%)
rename drivers/{soc => genpd}/mediatek/mtk-pm-domains.h (100%)
rename drivers/{soc => genpd}/mediatek/mtk-scpsys.c (100%)
create mode 100644 drivers/genpd/qcom/Makefile
rename drivers/{soc => genpd}/qcom/cpr.c (100%)
rename drivers/{soc => genpd}/qcom/rpmhpd.c (100%)
rename drivers/{soc => genpd}/qcom/rpmpd.c (100%)
create mode 100644 drivers/genpd/renesas/Makefile
rename drivers/{soc => genpd}/renesas/r8a7742-sysc.c (100%)
rename drivers/{soc => genpd}/renesas/r8a7743-sysc.c (100%)
rename drivers/{soc => genpd}/renesas/r8a7745-sysc.c (100%)
rename drivers/{soc => genpd}/renesas/r8a77470-sysc.c (100%)
rename drivers/{soc => genpd}/renesas/r8a774a1-sysc.c (100%)
rename drivers/{soc => genpd}/renesas/r8a774b1-sysc.c (100%)
rename drivers/{soc => genpd}/renesas/r8a774c0-sysc.c (100%)
rename drivers/{soc => genpd}/renesas/r8a774e1-sysc.c (100%)
rename drivers/{soc => genpd}/renesas/r8a7779-sysc.c (100%)
rename drivers/{soc => genpd}/renesas/r8a7790-sysc.c (100%)
rename drivers/{soc => genpd}/renesas/r8a7791-sysc.c (100%)
rename drivers/{soc => genpd}/renesas/r8a7792-sysc.c (100%)
rename drivers/{soc => genpd}/renesas/r8a7794-sysc.c (100%)
rename drivers/{soc => genpd}/renesas/r8a7795-sysc.c (100%)
rename drivers/{soc => genpd}/renesas/r8a7796-sysc.c (100%)
rename drivers/{soc => genpd}/renesas/r8a77965-sysc.c (100%)
rename drivers/{soc => genpd}/renesas/r8a77970-sysc.c (100%)
rename drivers/{soc => genpd}/renesas/r8a77980-sysc.c (100%)
rename drivers/{soc => genpd}/renesas/r8a77990-sysc.c (100%)
rename drivers/{soc => genpd}/renesas/r8a77995-sysc.c (100%)
rename drivers/{soc => genpd}/renesas/r8a779a0-sysc.c (100%)
rename drivers/{soc => genpd}/renesas/r8a779f0-sysc.c (100%)
rename drivers/{soc => genpd}/renesas/r8a779g0-sysc.c (100%)
rename drivers/{soc => genpd}/renesas/rcar-gen4-sysc.c (100%)
rename drivers/{soc => genpd}/renesas/rcar-gen4-sysc.h (100%)
rename drivers/{soc => genpd}/renesas/rcar-sysc.c (100%)
rename drivers/{soc => genpd}/renesas/rcar-sysc.h (100%)
rename drivers/{soc => genpd}/renesas/rmobile-sysc.c (100%)
create mode 100644 drivers/genpd/rockchip/Makefile
rename drivers/{soc/rockchip/pm_domains.c => genpd/rockchip/pm-domains.c} (100%)
create mode 100644 drivers/genpd/samsung/Makefile
rename drivers/{soc/samsung/pm_domains.c => genpd/samsung/exynos-pm-domains.c} (100%)
create mode 100644 drivers/genpd/st/Makefile
rename arch/arm/mach-ux500/pm_domains.c => drivers/genpd/st/ste-ux500-pm-domain.c (75%)
create mode 100644 drivers/genpd/starfive/Makefile
rename drivers/{soc/starfive/jh71xx_pmu.c => genpd/starfive/jh71xx-pmu.c} (100%)
create mode 100644 drivers/genpd/sunxi/Makefile
rename drivers/{soc => genpd}/sunxi/sun20i-ppu.c (100%)
create mode 100644 drivers/genpd/tegra/Makefile
rename drivers/{soc => genpd}/tegra/powergate-bpmp.c (100%)
create mode 100644 drivers/genpd/ti/Makefile
rename drivers/{soc => genpd}/ti/omap_prm.c (100%)
rename drivers/{soc => genpd}/ti/ti_sci_pm_domains.c (100%)
create mode 100644 drivers/genpd/xilinx/Makefile
rename drivers/{soc/xilinx/zynqmp_pm_domains.c => genpd/xilinx/zynqmp-pm-domains.c} (100%)
delete mode 100644 drivers/soc/bcm/bcm63xx/Kconfig
delete mode 100644 drivers/soc/bcm/bcm63xx/Makefile
delete mode 100644 drivers/soc/starfive/Makefile

--
2.34.1