Re: [PATCH] reset: meson: make it possible to build as a module

From: Kevin Hilman
Date: Fri Oct 16 2020 - 16:44:32 EST


Neil Armstrong <narmstrong@xxxxxxxxxxxx> writes:

> In order to reduce the kernel Image size on multi-platform distributions,
> make it possible to build the reset controller driver as a module.
>
> This partially reverts 8290924e ("reset: meson: make it explicitly non-modular")
>
> Signed-off-by: Neil Armstrong <narmstrong@xxxxxxxxxxxx>
> ---
> drivers/reset/Kconfig | 4 ++--
> drivers/reset/reset-meson.c | 7 ++++++-
> 2 files changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/reset/Kconfig b/drivers/reset/Kconfig
> index d9efbfd29646..ab315617565f 100644
> --- a/drivers/reset/Kconfig
> +++ b/drivers/reset/Kconfig
> @@ -94,8 +94,8 @@ config RESET_LPC18XX
> This enables the reset controller driver for NXP LPC18xx/43xx SoCs.
>
> config RESET_MESON
> - bool "Meson Reset Driver" if COMPILE_TEST
> - default ARCH_MESON
> + tristate "Meson Reset Driver"
> + default ARCH_MESON || COMPILE_TEST
> help
> This enables the reset driver for Amlogic Meson SoCs.
>
> diff --git a/drivers/reset/reset-meson.c b/drivers/reset/reset-meson.c
> index 94d7ba88d7d2..434d5c0f877e 100644
> --- a/drivers/reset/reset-meson.c
> +++ b/drivers/reset/reset-meson.c
> @@ -9,6 +9,7 @@
> #include <linux/init.h>
> #include <linux/io.h>
> #include <linux/of.h>
> +#include <linux/module.h>
> #include <linux/platform_device.h>
> #include <linux/reset-controller.h>
> #include <linux/slab.h>
> @@ -142,4 +143,8 @@ static struct platform_driver meson_reset_driver = {
> .of_match_table = meson_reset_dt_ids,
> },
> };
> -builtin_platform_driver(meson_reset_driver);
> +module_platform_driver(meson_reset_driver);

I tried this as as a module, and it never probed because it's missing
this on the compatible table:

MODULE_DEVICE_TABLE(of, meson_reset_dt_ids);

With that minor change:

Reviewed-by: Kevin Hilman <khilman@xxxxxxxxxxxx>
Tested-by: Kevin Hilman <khilman@xxxxxxxxxxxx>

Kevin