Re: [PATCH 2/2] soc: samsung: exynos-chipid: convert to a module

From: Sam Protsenko
Date: Tue Oct 05 2021 - 08:03:51 EST


On Fri, 17 Sept 2021 at 20:51, Krzysztof Kozlowski
<krzysztof.kozlowski@xxxxxxxxxxxxx> wrote:
>
> Exynos ChipID and ASV (Adaptive Supply Voltage) driver is not essential
> to system boot and it can successfully be built and loaded as module.
>
> This makes core kernel image smaller and reduces the memory footprint
> when multi-platform kernel is booted on non-Exynos board. Usually it is
> also distro-friendly.
>
> Add multiple authors of the driver since its conversion from
> mach-exynos, ordered alphabetically by first name.
>
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxxxxx>
> ---

Reviewed-by: Sam Protsenko <semen.protsenko@xxxxxxxxxx>

> drivers/soc/samsung/Kconfig | 3 ++-
> drivers/soc/samsung/Makefile | 3 ++-
> drivers/soc/samsung/exynos-chipid.c | 11 ++++++++++-
> drivers/soc/samsung/exynos5422-asv.c | 1 +
> 4 files changed, 15 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/soc/samsung/Kconfig b/drivers/soc/samsung/Kconfig
> index 1f643c0f5c93..fe139f26d093 100644
> --- a/drivers/soc/samsung/Kconfig
> +++ b/drivers/soc/samsung/Kconfig
> @@ -13,13 +13,14 @@ config EXYNOS_ASV_ARM
> depends on EXYNOS_CHIPID
>
> config EXYNOS_CHIPID
> - bool "Exynos ChipID controller and ASV driver" if COMPILE_TEST
> + tristate "Exynos ChipID controller and ASV driver" if COMPILE_TEST
> depends on ARCH_EXYNOS || COMPILE_TEST
> select EXYNOS_ASV_ARM if ARM && ARCH_EXYNOS
> select MFD_SYSCON
> select SOC_BUS
> help
> Support for Samsung Exynos SoC ChipID and Adaptive Supply Voltage.
> + This driver can also be built as module (exynos_chipid).
>
> config EXYNOS_PMU
> bool "Exynos PMU controller driver" if COMPILE_TEST
> diff --git a/drivers/soc/samsung/Makefile b/drivers/soc/samsung/Makefile
> index 0c523a8de4eb..2ae4bea804cf 100644
> --- a/drivers/soc/samsung/Makefile
> +++ b/drivers/soc/samsung/Makefile
> @@ -1,8 +1,9 @@
> # SPDX-License-Identifier: GPL-2.0
>
> obj-$(CONFIG_EXYNOS_ASV_ARM) += exynos5422-asv.o
> +obj-$(CONFIG_EXYNOS_CHIPID) += exynos_chipid.o
> +exynos_chipid-y += exynos-chipid.o exynos-asv.o
>
> -obj-$(CONFIG_EXYNOS_CHIPID) += exynos-chipid.o exynos-asv.o
> obj-$(CONFIG_EXYNOS_PMU) += exynos-pmu.o
>
> obj-$(CONFIG_EXYNOS_PMU_ARM_DRIVERS) += exynos3250-pmu.o exynos4-pmu.o \
> diff --git a/drivers/soc/samsung/exynos-chipid.c b/drivers/soc/samsung/exynos-chipid.c
> index 5c1d0f97f766..5e8c957231ff 100644
> --- a/drivers/soc/samsung/exynos-chipid.c
> +++ b/drivers/soc/samsung/exynos-chipid.c
> @@ -15,6 +15,7 @@
> #include <linux/device.h>
> #include <linux/errno.h>
> #include <linux/mfd/syscon.h>
> +#include <linux/module.h>
> #include <linux/of.h>
> #include <linux/platform_device.h>
> #include <linux/regmap.h>
> @@ -129,6 +130,7 @@ static const struct of_device_id exynos_chipid_of_device_ids[] = {
> { .compatible = "samsung,exynos4210-chipid" },
> {}
> };
> +MODULE_DEVICE_TABLE(of, exynos_chipid_of_device_ids);
>
> static struct platform_driver exynos_chipid_driver = {
> .driver = {
> @@ -138,4 +140,11 @@ static struct platform_driver exynos_chipid_driver = {
> .probe = exynos_chipid_probe,
> .remove = exynos_chipid_remove,
> };
> -builtin_platform_driver(exynos_chipid_driver);
> +module_platform_driver(exynos_chipid_driver);
> +
> +MODULE_DESCRIPTION("Samsung Exynos ChipID controller and ASV driver");

Just curious, how exactly ASV is related to chip-id driver?

> +MODULE_AUTHOR("Bartlomiej Zolnierkiewicz <b.zolnierkie@xxxxxxxxxxx>");
> +MODULE_AUTHOR("Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxxxxx>");
> +MODULE_AUTHOR("Pankaj Dubey <pankaj.dubey@xxxxxxxxxxx>");
> +MODULE_AUTHOR("Sylwester Nawrocki <s.nawrocki@xxxxxxxxxxx>");
> +MODULE_LICENSE("GPL");
> diff --git a/drivers/soc/samsung/exynos5422-asv.c b/drivers/soc/samsung/exynos5422-asv.c
> index ca409a976e34..475ae5276529 100644
> --- a/drivers/soc/samsung/exynos5422-asv.c
> +++ b/drivers/soc/samsung/exynos5422-asv.c
> @@ -503,3 +503,4 @@ int exynos5422_asv_init(struct exynos_asv *asv)
>
> return 0;
> }
> +EXPORT_SYMBOL_GPL(exynos5422_asv_init);
> --
> 2.30.2
>