[RFC PATCH v4 0/2] PM: domain: Support skiping disabling unused domains until sync state

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is another try at making the unused domain remain enabled until
sync state of the provider. There have been already few attempts.
Last one is [1]. This new approach comes after a discussion on the
mentioned mail thread with Saravana and Ulf. The suggestion there was to
move this to the genpd core. This new approach, first is adding the
support for 'unknown' initial state of a domain, then uses 'boot status'
to make decisions whether to power off a unused domain on late initcall
or assume it will be powered off on the provider's sync state callback,
if it has one registered. In order to make use of the newly added
'unknown' state, we need to update all the calls to pm_genpd_init to
pass one of the 'on', 'off' or 'unknown' states.

[1] https://lore.kernel.org/r/20230327193829.3756640-1-abel.vesa@xxxxxxxxxx

Abel Vesa (2):
  PM: domains: Expand initial state of domain to support unknown state
  PM: domains: Skip disabling unused until sync state

 arch/arm/mach-s3c/pm-s3c64xx.c             |  4 +-
 arch/arm/mach-ux500/pm_domains.c           |  2 +-
 drivers/base/power/domain.c                | 62 +++++++++++++++++++---
 drivers/clk/davinci/psc.c                  |  3 +-
 drivers/clk/mmp/pwr-island.c               |  2 +-
 drivers/clk/qcom/gdsc.c                    |  2 +-
 drivers/clk/renesas/clk-mstp.c             |  2 +-
 drivers/clk/renesas/r9a06g032-clocks.c     |  2 +-
 drivers/clk/renesas/renesas-cpg-mssr.c     |  2 +-
 drivers/clk/renesas/rzg2l-cpg.c            |  2 +-
 drivers/cpuidle/cpuidle-psci-domain.c      |  2 +-
 drivers/cpuidle/cpuidle-riscv-sbi.c        |  2 +-
 drivers/firmware/arm_scmi/scmi_pm_domain.c |  2 +-
 drivers/firmware/imx/scu-pd.c              |  3 +-
 drivers/firmware/scpi_pm_domain.c          |  2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c    |  2 +-
 drivers/irqchip/irq-qcom-mpm.c             |  2 +-
 drivers/soc/actions/owl-sps.c              |  2 +-
 drivers/soc/amlogic/meson-ee-pwrc.c        |  7 +--
 drivers/soc/amlogic/meson-gx-pwrc-vpu.c    |  3 +-
 drivers/soc/amlogic/meson-secure-pwrc.c    |  5 +-
 drivers/soc/apple/apple-pmgr-pwrstate.c    |  2 +-
 drivers/soc/bcm/bcm2835-power.c            |  2 +-
 drivers/soc/bcm/bcm63xx/bcm-pmb.c          |  2 +-
 drivers/soc/bcm/bcm63xx/bcm63xx-power.c    |  3 +-
 drivers/soc/bcm/raspberrypi-power.c        |  2 +-
 drivers/soc/dove/pmu.c                     |  4 +-
 drivers/soc/imx/gpc.c                      |  4 +-
 drivers/soc/imx/gpcv2.c                    |  2 +-
 drivers/soc/imx/imx8m-blk-ctrl.c           |  2 +-
 drivers/soc/imx/imx8mp-blk-ctrl.c          |  2 +-
 drivers/soc/imx/imx93-blk-ctrl.c           |  2 +-
 drivers/soc/imx/imx93-pd.c                 |  3 +-
 drivers/soc/mediatek/mtk-pm-domains.c      |  4 +-
 drivers/soc/mediatek/mtk-scpsys.c          |  2 +-
 drivers/soc/qcom/cpr.c                     |  2 +-
 drivers/soc/qcom/rpmhpd.c                  |  2 +-
 drivers/soc/qcom/rpmpd.c                   |  2 +-
 drivers/soc/renesas/rcar-gen4-sysc.c       |  2 +-
 drivers/soc/renesas/rcar-sysc.c            |  2 +-
 drivers/soc/renesas/rmobile-sysc.c         |  2 +-
 drivers/soc/rockchip/pm_domains.c          |  3 +-
 drivers/soc/samsung/pm_domains.c           |  2 +-
 drivers/soc/starfive/jh71xx_pmu.c          |  3 +-
 drivers/soc/sunxi/sun20i-ppu.c             |  6 ++-
 drivers/soc/tegra/pmc.c                    |  5 +-
 drivers/soc/tegra/powergate-bpmp.c         |  3 +-
 drivers/soc/ti/omap_prm.c                  |  2 +-
 drivers/soc/ti/ti_sci_pm_domains.c         |  2 +-
 drivers/soc/xilinx/zynqmp_pm_domains.c     |  2 +-
 include/linux/pm_domain.h                  | 12 ++++-
 51 files changed, 140 insertions(+), 63 deletions(-)

-- 
2.34.1




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux