Message ID | 20210928235635.1348330-12-willmcvicker@google.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
Series | arm64: Kconfig: Update ARCH_EXYNOS select configs | expand |
On 29/09/2021 01:56, Will McVicker wrote: > Convert the Exynos PM Domains driver into a module. This includes > setting EXYNOS_PM_DOMAINS as tristate and removing it from being > auto-selected by ARCH_EXYNOS. Instead, the config will use > "default y if ARCH_EXYNOS" which allows us to set it to a module via the > defconfig now. > > Signed-off-by: Will McVicker <willmcvicker@google.com> > --- > arch/arm/mach-exynos/Kconfig | 1 - > arch/arm64/Kconfig.platforms | 1 - > drivers/soc/samsung/Kconfig | 3 ++- > drivers/soc/samsung/pm_domains.c | 12 +++++++----- > 4 files changed, 9 insertions(+), 8 deletions(-) > > diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig > index e97e1d8f7b00..2ad19a08bf06 100644 > --- a/arch/arm/mach-exynos/Kconfig > +++ b/arch/arm/mach-exynos/Kconfig > @@ -15,7 +15,6 @@ menuconfig ARCH_EXYNOS > select EXYNOS_THERMAL > select EXYNOS_PMU_ARM > select EXYNOS_SROM > - select EXYNOS_PM_DOMAINS if PM_GENERIC_DOMAINS > select GPIOLIB > select HAVE_ARM_ARCH_TIMER if ARCH_EXYNOS5 > select HAVE_ARM_SCU if SMP > diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms > index e5e4b9b2fb97..e44d5e9f5058 100644 > --- a/arch/arm64/Kconfig.platforms > +++ b/arch/arm64/Kconfig.platforms > @@ -91,7 +91,6 @@ config ARCH_BRCMSTB > > config ARCH_EXYNOS > bool "ARMv8 based Samsung Exynos SoC family" > - select EXYNOS_PM_DOMAINS if PM_GENERIC_DOMAINS > select HAVE_S3C_RTC if RTC_CLASS > select PINCTRL > select PM_GENERIC_DOMAINS if PM > diff --git a/drivers/soc/samsung/Kconfig b/drivers/soc/samsung/Kconfig > index fdf1162ec98b..e4743c29f73c 100644 > --- a/drivers/soc/samsung/Kconfig > +++ b/drivers/soc/samsung/Kconfig > @@ -37,8 +37,9 @@ config EXYNOS_PMU_ARM > depends on ARCH_EXYNOS || (ARM && COMPILE_TEST) > > config EXYNOS_PM_DOMAINS > - bool "Exynos PM domains" if COMPILE_TEST > + tristate "Exynos PM domains" +Cc Arnd and Olof, Unlike in clocks and soc drivers changes, you mentioned the removal of "if", however it is not explained why you do it. Why is the most important part of commit message, not "what". Because "What" we can easily see. But "why" is sometimes trickier. Please also explain why Exynos is so special that we deviate from the policy for all SoC that critical SoC-related drivers have to be enabled (built-in or as module). https://lore.kernel.org/lkml/CAK8P3a1TY+XT1vF=wAh0XA5BXU5Z6Ab1d4DekXbVsN9aj3aL5w@mail.gmail.com/ We follow specific convention or policy and changing it requires some discussion, not silently under the "modularize" hood. It really looks like you want to sneak it in. P.S. I recommend also to Cc Soc maintainers, because their point of view here is crucial. > depends on (ARCH_EXYNOS && PM_GENERIC_DOMAINS) || COMPILE_TEST > + default y if ARCH_EXYNOS Best regards, Krzysztof
diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig index e97e1d8f7b00..2ad19a08bf06 100644 --- a/arch/arm/mach-exynos/Kconfig +++ b/arch/arm/mach-exynos/Kconfig @@ -15,7 +15,6 @@ menuconfig ARCH_EXYNOS select EXYNOS_THERMAL select EXYNOS_PMU_ARM select EXYNOS_SROM - select EXYNOS_PM_DOMAINS if PM_GENERIC_DOMAINS select GPIOLIB select HAVE_ARM_ARCH_TIMER if ARCH_EXYNOS5 select HAVE_ARM_SCU if SMP diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms index e5e4b9b2fb97..e44d5e9f5058 100644 --- a/arch/arm64/Kconfig.platforms +++ b/arch/arm64/Kconfig.platforms @@ -91,7 +91,6 @@ config ARCH_BRCMSTB config ARCH_EXYNOS bool "ARMv8 based Samsung Exynos SoC family" - select EXYNOS_PM_DOMAINS if PM_GENERIC_DOMAINS select HAVE_S3C_RTC if RTC_CLASS select PINCTRL select PM_GENERIC_DOMAINS if PM diff --git a/drivers/soc/samsung/Kconfig b/drivers/soc/samsung/Kconfig index fdf1162ec98b..e4743c29f73c 100644 --- a/drivers/soc/samsung/Kconfig +++ b/drivers/soc/samsung/Kconfig @@ -37,8 +37,9 @@ config EXYNOS_PMU_ARM depends on ARCH_EXYNOS || (ARM && COMPILE_TEST) config EXYNOS_PM_DOMAINS - bool "Exynos PM domains" if COMPILE_TEST + tristate "Exynos PM domains" depends on (ARCH_EXYNOS && PM_GENERIC_DOMAINS) || COMPILE_TEST + default y if ARCH_EXYNOS config SAMSUNG_PM_DEBUG bool "Samsung PM Suspend debug" diff --git a/drivers/soc/samsung/pm_domains.c b/drivers/soc/samsung/pm_domains.c index 5ec0c13f0aaf..6144733fa3c2 100644 --- a/drivers/soc/samsung/pm_domains.c +++ b/drivers/soc/samsung/pm_domains.c @@ -14,6 +14,7 @@ #include <linux/slab.h> #include <linux/pm_domain.h> #include <linux/delay.h> +#include <linux/module.h> #include <linux/of_address.h> #include <linux/of_platform.h> #include <linux/pm_runtime.h> @@ -160,8 +161,9 @@ static struct platform_driver exynos_pd_driver = { } }; -static __init int exynos4_pm_init_power_domain(void) -{ - return platform_driver_register(&exynos_pd_driver); -} -core_initcall(exynos4_pm_init_power_domain); +module_platform_driver(exynos_pd_driver); + +MODULE_DESCRIPTION("Exynos PM domains driver"); +MODULE_AUTHOR("Marek Szyprowski <m.szyprowski@samsung.com>"); +MODULE_AUTHOR("Krzysztof Kozlowski <krzk@kernel.org>"); +MODULE_LICENSE("GPL v2");
Convert the Exynos PM Domains driver into a module. This includes setting EXYNOS_PM_DOMAINS as tristate and removing it from being auto-selected by ARCH_EXYNOS. Instead, the config will use "default y if ARCH_EXYNOS" which allows us to set it to a module via the defconfig now. Signed-off-by: Will McVicker <willmcvicker@google.com> --- arch/arm/mach-exynos/Kconfig | 1 - arch/arm64/Kconfig.platforms | 1 - drivers/soc/samsung/Kconfig | 3 ++- drivers/soc/samsung/pm_domains.c | 12 +++++++----- 4 files changed, 9 insertions(+), 8 deletions(-)