From: Randy Dunlap <rdunlap@infradead.org> To: Arnd Bergmann <arnd@kernel.org>, Chen-Yu Tsai <wens@csie.org>, Jernej Skrabec <jernej.skrabec@gmail.com>, Samuel Holland <samuel@sholland.org>, sparclinux <sparclinux@vger.kernel.org> Cc: Arnd Bergmann <arnd@arndb.de>, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org Subject: Re: [PATCH] soc: sunxi: select CONFIG_PM Date: Fri, 3 Feb 2023 23:47:45 -0800 [thread overview] Message-ID: <46dafb64-81d2-c084-97c5-8d01e8b9785b@infradead.org> (raw) In-Reply-To: <20230130130453.379749-1-arnd@kernel.org> Hi-- On 1/30/23 05:04, Arnd Bergmann wrote: > From: Arnd Bergmann <arnd@arndb.de> > > Selecting CONFIG_PM_GENERIC_DOMAINS without CONFIG_PM leads to a > build failure: > > WARNING: unmet direct dependencies detected for PM_GENERIC_DOMAINS > Depends on [n]: PM [=n] > Selected by [y]: > - SUN20I_PPU [=y] && (ARCH_SUNXI [=n] || COMPILE_TEST [=y]) > > drivers/base/power/domain_governor.c: In function 'default_suspend_ok': > drivers/base/power/domain_governor.c:85:24: error: 'struct dev_pm_info' has no member named 'ignore_children' > 85 | if (!dev->power.ignore_children) > | ^ > drivers/base/power/domain.c: In function 'genpd_queue_power_off_work': > drivers/base/power/domain.c:657:20: error: 'pm_wq' undeclared (first use in this function) > 657 | queue_work(pm_wq, &genpd->power_off_work); > | ^~~~~ > > Unfortunately platforms are inconsistent between using 'select PM' > and 'depends on PM' here. CONFIG_PM is a user-visible symbol, so > in principle we should be using 'depends on', but on the other hand > using 'select' here is more common among drivers/soc. Go with the > majority for now, as this has a smaller risk of introducing circular > dependencies. We may need to clean this up for consistency later. > > Fixes: 0e30ca5ab0a8 ("soc: sunxi: Add Allwinner D1 PPU driver") > Signed-off-by: Arnd Bergmann <arnd@arndb.de> With this patch (in linux-next-20230203), building on sparc32 with COMPILE_TEST=y and ARCH_SUNXI not set: WARNING: unmet direct dependencies detected for PM Depends on [n]: SPARC64 [=n] Selected by [y]: - SUN20I_PPU [=y] && (ARCH_SUNXI || COMPILE_TEST [=y]) WARNING: unmet direct dependencies detected for PM Depends on [n]: SPARC64 [=n] Selected by [y]: - SUN20I_PPU [=y] && (ARCH_SUNXI || COMPILE_TEST [=y]) WARNING: unmet direct dependencies detected for PM_GENERIC_DOMAINS Depends on [n]: SPARC64 [=n] && PM [=y] Selected by [y]: - QCOM_GDSC [=y] && COMMON_CLK [=y] && PM [=y] - SUN20I_PPU [=y] && (ARCH_SUNXI || COMPILE_TEST [=y]) - MESON_GX_PM_DOMAINS [=y] && (ARCH_MESON || COMPILE_TEST [=y]) && PM [=y] && OF [=y] - BCM2835_POWER [=y] && (ARCH_BCM2835 || COMPILE_TEST [=y] && OF [=y]) && PM [=y] - BCM_PMB [=y] && (ARCH_BCMBCA || COMPILE_TEST [=y] && OF [=y]) && PM [=y] - ROCKCHIP_PM_DOMAINS [=y] && (ARCH_ROCKCHIP || COMPILE_TEST [=y]) && PM [=y] Selected by [m]: - ARM_SCPI_POWER_DOMAIN [=m] && (ARM_SCPI_PROTOCOL [=m] || COMPILE_TEST [=y] && OF [=y]) && PM [=y] - MESON_EE_PM_DOMAINS [=m] && (ARCH_MESON || COMPILE_TEST [=y]) && PM [=y] && OF [=y] - QCOM_AOSS_QMP [=m] && (ARCH_QCOM || COMPILE_TEST [=y]) && MAILBOX [=y] && COMMON_CLK [=y] && PM [=y] WARNING: unmet direct dependencies detected for PM_GENERIC_DOMAINS_OF Depends on [n]: SPARC64 [=n] && PM_GENERIC_DOMAINS [=y] && OF [=y] Selected by [y]: - MESON_GX_PM_DOMAINS [=y] && (ARCH_MESON || COMPILE_TEST [=y]) && PM [=y] && OF [=y] Selected by [m]: - MESON_EE_PM_DOMAINS [=m] && (ARCH_MESON || COMPILE_TEST [=y]) && PM [=y] && OF [=y] Apparently sparc32 does not support PM (arch/sparc/Kconfig): if SPARC64 source "kernel/power/Kconfig" endif so I think that SUN20I_PPU should also depend on !SPARC32. Does that make sense? Thanks. > --- > drivers/soc/sunxi/Kconfig | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/soc/sunxi/Kconfig b/drivers/soc/sunxi/Kconfig > index 29e9ba2d520d..02d0b338feb3 100644 > --- a/drivers/soc/sunxi/Kconfig > +++ b/drivers/soc/sunxi/Kconfig > @@ -23,6 +23,7 @@ config SUNXI_SRAM > config SUN20I_PPU > bool "Allwinner D1 PPU power domain driver" > depends on ARCH_SUNXI || COMPILE_TEST > + select PM > select PM_GENERIC_DOMAINS > help > Say y to enable the PPU power domain driver. This saves power -- ~Randy
WARNING: multiple messages have this Message-ID (diff)
From: Randy Dunlap <rdunlap@infradead.org> To: Arnd Bergmann <arnd@kernel.org>, Chen-Yu Tsai <wens@csie.org>, Jernej Skrabec <jernej.skrabec@gmail.com>, Samuel Holland <samuel@sholland.org>, sparclinux <sparclinux@vger.kernel.org> Cc: Arnd Bergmann <arnd@arndb.de>, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org Subject: Re: [PATCH] soc: sunxi: select CONFIG_PM Date: Fri, 3 Feb 2023 23:47:45 -0800 [thread overview] Message-ID: <46dafb64-81d2-c084-97c5-8d01e8b9785b@infradead.org> (raw) In-Reply-To: <20230130130453.379749-1-arnd@kernel.org> Hi-- On 1/30/23 05:04, Arnd Bergmann wrote: > From: Arnd Bergmann <arnd@arndb.de> > > Selecting CONFIG_PM_GENERIC_DOMAINS without CONFIG_PM leads to a > build failure: > > WARNING: unmet direct dependencies detected for PM_GENERIC_DOMAINS > Depends on [n]: PM [=n] > Selected by [y]: > - SUN20I_PPU [=y] && (ARCH_SUNXI [=n] || COMPILE_TEST [=y]) > > drivers/base/power/domain_governor.c: In function 'default_suspend_ok': > drivers/base/power/domain_governor.c:85:24: error: 'struct dev_pm_info' has no member named 'ignore_children' > 85 | if (!dev->power.ignore_children) > | ^ > drivers/base/power/domain.c: In function 'genpd_queue_power_off_work': > drivers/base/power/domain.c:657:20: error: 'pm_wq' undeclared (first use in this function) > 657 | queue_work(pm_wq, &genpd->power_off_work); > | ^~~~~ > > Unfortunately platforms are inconsistent between using 'select PM' > and 'depends on PM' here. CONFIG_PM is a user-visible symbol, so > in principle we should be using 'depends on', but on the other hand > using 'select' here is more common among drivers/soc. Go with the > majority for now, as this has a smaller risk of introducing circular > dependencies. We may need to clean this up for consistency later. > > Fixes: 0e30ca5ab0a8 ("soc: sunxi: Add Allwinner D1 PPU driver") > Signed-off-by: Arnd Bergmann <arnd@arndb.de> With this patch (in linux-next-20230203), building on sparc32 with COMPILE_TEST=y and ARCH_SUNXI not set: WARNING: unmet direct dependencies detected for PM Depends on [n]: SPARC64 [=n] Selected by [y]: - SUN20I_PPU [=y] && (ARCH_SUNXI || COMPILE_TEST [=y]) WARNING: unmet direct dependencies detected for PM Depends on [n]: SPARC64 [=n] Selected by [y]: - SUN20I_PPU [=y] && (ARCH_SUNXI || COMPILE_TEST [=y]) WARNING: unmet direct dependencies detected for PM_GENERIC_DOMAINS Depends on [n]: SPARC64 [=n] && PM [=y] Selected by [y]: - QCOM_GDSC [=y] && COMMON_CLK [=y] && PM [=y] - SUN20I_PPU [=y] && (ARCH_SUNXI || COMPILE_TEST [=y]) - MESON_GX_PM_DOMAINS [=y] && (ARCH_MESON || COMPILE_TEST [=y]) && PM [=y] && OF [=y] - BCM2835_POWER [=y] && (ARCH_BCM2835 || COMPILE_TEST [=y] && OF [=y]) && PM [=y] - BCM_PMB [=y] && (ARCH_BCMBCA || COMPILE_TEST [=y] && OF [=y]) && PM [=y] - ROCKCHIP_PM_DOMAINS [=y] && (ARCH_ROCKCHIP || COMPILE_TEST [=y]) && PM [=y] Selected by [m]: - ARM_SCPI_POWER_DOMAIN [=m] && (ARM_SCPI_PROTOCOL [=m] || COMPILE_TEST [=y] && OF [=y]) && PM [=y] - MESON_EE_PM_DOMAINS [=m] && (ARCH_MESON || COMPILE_TEST [=y]) && PM [=y] && OF [=y] - QCOM_AOSS_QMP [=m] && (ARCH_QCOM || COMPILE_TEST [=y]) && MAILBOX [=y] && COMMON_CLK [=y] && PM [=y] WARNING: unmet direct dependencies detected for PM_GENERIC_DOMAINS_OF Depends on [n]: SPARC64 [=n] && PM_GENERIC_DOMAINS [=y] && OF [=y] Selected by [y]: - MESON_GX_PM_DOMAINS [=y] && (ARCH_MESON || COMPILE_TEST [=y]) && PM [=y] && OF [=y] Selected by [m]: - MESON_EE_PM_DOMAINS [=m] && (ARCH_MESON || COMPILE_TEST [=y]) && PM [=y] && OF [=y] Apparently sparc32 does not support PM (arch/sparc/Kconfig): if SPARC64 source "kernel/power/Kconfig" endif so I think that SUN20I_PPU should also depend on !SPARC32. Does that make sense? Thanks. > --- > drivers/soc/sunxi/Kconfig | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/soc/sunxi/Kconfig b/drivers/soc/sunxi/Kconfig > index 29e9ba2d520d..02d0b338feb3 100644 > --- a/drivers/soc/sunxi/Kconfig > +++ b/drivers/soc/sunxi/Kconfig > @@ -23,6 +23,7 @@ config SUNXI_SRAM > config SUN20I_PPU > bool "Allwinner D1 PPU power domain driver" > depends on ARCH_SUNXI || COMPILE_TEST > + select PM > select PM_GENERIC_DOMAINS > help > Say y to enable the PPU power domain driver. This saves power -- ~Randy _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2023-02-04 7:47 UTC|newest] Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-01-30 13:04 [PATCH] soc: sunxi: select CONFIG_PM Arnd Bergmann 2023-01-30 13:04 ` Arnd Bergmann 2023-01-30 21:18 ` Jernej Škrabec 2023-01-30 21:18 ` Jernej Škrabec 2023-01-30 21:24 ` Arnd Bergmann 2023-01-30 21:24 ` Arnd Bergmann 2023-02-04 7:47 ` Randy Dunlap [this message] 2023-02-04 7:47 ` Randy Dunlap 2023-02-04 10:38 ` Arnd Bergmann 2023-02-04 10:38 ` Arnd Bergmann 2023-02-04 16:54 ` Randy Dunlap 2023-02-04 16:54 ` Randy Dunlap
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=46dafb64-81d2-c084-97c5-8d01e8b9785b@infradead.org \ --to=rdunlap@infradead.org \ --cc=arnd@arndb.de \ --cc=arnd@kernel.org \ --cc=jernej.skrabec@gmail.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-sunxi@lists.linux.dev \ --cc=samuel@sholland.org \ --cc=sparclinux@vger.kernel.org \ --cc=wens@csie.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.