With of_irq_count() exported, the SiFive GPIO driver can be built as a
module. This helps to minimize the size of a multiplatform kernel, and
is required by some downstream distributions (Android GKI).
Samuel Holland (2):
of/irq: Export of_irq_count()
gpio: sifive: Allow building the driver as a module
drivers/gpio/Kconfig | 2 +-
drivers/gpio/gpio-sifive.c | 4 +++-
drivers/of/irq.c | 1 +
3 files changed, 5 insertions(+), 2 deletions(-)
--
2.40.1
This can reduce the kernel image size in multiplatform configurations.
Signed-off-by: Samuel Holland <[email protected]>
---
drivers/gpio/Kconfig | 2 +-
drivers/gpio/gpio-sifive.c | 4 +++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
index e382dfebad7c..1a8e8a8c85d6 100644
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -564,7 +564,7 @@ config GPIO_SAMA5D2_PIOBU
maintain their value during backup/self-refresh.
config GPIO_SIFIVE
- bool "SiFive GPIO support"
+ tristate "SiFive GPIO support"
depends on OF_GPIO
select IRQ_DOMAIN_HIERARCHY
select GPIO_GENERIC
diff --git a/drivers/gpio/gpio-sifive.c b/drivers/gpio/gpio-sifive.c
index 745e5f67254e..5941a817491c 100644
--- a/drivers/gpio/gpio-sifive.c
+++ b/drivers/gpio/gpio-sifive.c
@@ -277,4 +277,6 @@ static struct platform_driver sifive_gpio_driver = {
.of_match_table = sifive_gpio_match,
},
};
-builtin_platform_driver(sifive_gpio_driver)
+module_platform_driver(sifive_gpio_driver)
+
+MODULE_LICENSE("GPL");
--
2.40.1
On Mon, 17 Jul 2023 13:53:55 PDT (-0700), [email protected] wrote:
> With of_irq_count() exported, the SiFive GPIO driver can be built as a
> module. This helps to minimize the size of a multiplatform kernel, and
> is required by some downstream distributions (Android GKI).
>
>
> Samuel Holland (2):
> of/irq: Export of_irq_count()
> gpio: sifive: Allow building the driver as a module
>
> drivers/gpio/Kconfig | 2 +-
> drivers/gpio/gpio-sifive.c | 4 +++-
> drivers/of/irq.c | 1 +
> 3 files changed, 5 insertions(+), 2 deletions(-)
Acked-by: Palmer Dabbelt <[email protected]>
I guess we probably should have just done that the first time around?
Either way it seems reasonable to me, aside from sorting out the OF
stuff.
On Mon, Jul 17, 2023 at 10:54 PM Samuel Holland
<[email protected]> wrote:
>
> This can reduce the kernel image size in multiplatform configurations.
>
> Signed-off-by: Samuel Holland <[email protected]>
> ---
>
> drivers/gpio/Kconfig | 2 +-
> drivers/gpio/gpio-sifive.c | 4 +++-
> 2 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
> index e382dfebad7c..1a8e8a8c85d6 100644
> --- a/drivers/gpio/Kconfig
> +++ b/drivers/gpio/Kconfig
> @@ -564,7 +564,7 @@ config GPIO_SAMA5D2_PIOBU
> maintain their value during backup/self-refresh.
>
> config GPIO_SIFIVE
> - bool "SiFive GPIO support"
> + tristate "SiFive GPIO support"
> depends on OF_GPIO
> select IRQ_DOMAIN_HIERARCHY
> select GPIO_GENERIC
> diff --git a/drivers/gpio/gpio-sifive.c b/drivers/gpio/gpio-sifive.c
> index 745e5f67254e..5941a817491c 100644
> --- a/drivers/gpio/gpio-sifive.c
> +++ b/drivers/gpio/gpio-sifive.c
> @@ -277,4 +277,6 @@ static struct platform_driver sifive_gpio_driver = {
> .of_match_table = sifive_gpio_match,
> },
> };
> -builtin_platform_driver(sifive_gpio_driver)
> +module_platform_driver(sifive_gpio_driver)
> +
> +MODULE_LICENSE("GPL");
> --
> 2.40.1
>
This looks good but please follow Andy's suggestion and convert all
of_*() uses in the driver to generic helpers, then drop patch 1.
Bart
On Wed, 19 Jul 2023 at 08:26, Samuel Holland <[email protected]> wrote:
>
> This can reduce the kernel image size in multiplatform configurations.
>
> Signed-off-by: Samuel Holland <[email protected]>
> ---
>
> drivers/gpio/Kconfig | 2 +-
> drivers/gpio/gpio-sifive.c | 4 +++-
> 2 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
> index e382dfebad7c..1a8e8a8c85d6 100644
> --- a/drivers/gpio/Kconfig
> +++ b/drivers/gpio/Kconfig
> @@ -564,7 +564,7 @@ config GPIO_SAMA5D2_PIOBU
> maintain their value during backup/self-refresh.
>
> config GPIO_SIFIVE
> - bool "SiFive GPIO support"
> + tristate "SiFive GPIO support"
> depends on OF_GPIO
> select IRQ_DOMAIN_HIERARCHY
> select GPIO_GENERIC
> diff --git a/drivers/gpio/gpio-sifive.c b/drivers/gpio/gpio-sifive.c
> index 745e5f67254e..5941a817491c 100644
> --- a/drivers/gpio/gpio-sifive.c
> +++ b/drivers/gpio/gpio-sifive.c
> @@ -277,4 +277,6 @@ static struct platform_driver sifive_gpio_driver = {
> .of_match_table = sifive_gpio_match,
> },
> };
> -builtin_platform_driver(sifive_gpio_driver)
> +module_platform_driver(sifive_gpio_driver)
> +
While you're at it maybe also add the MODULE_AUTHOR() and
MODULE_DESCRIPTION() macros.
> +MODULE_LICENSE("GPL");
> --
> 2.40.1
>
>
> _______________________________________________
> linux-riscv mailing list
> [email protected]
> http://lists.infradead.org/mailman/listinfo/linux-riscv
On Wed, Jul 19, 2023 at 5:12 PM Emil Renner Berthing
<[email protected]> wrote:
> On Wed, 19 Jul 2023 at 08:26, Samuel Holland <[email protected]> wrote:
...
> While you're at it maybe also add the MODULE_AUTHOR() and
> MODULE_DESCRIPTION() macros.
+1, as now we have a new warning that MODULE_DESCRIPTION() is not set.
--
With Best Regards,
Andy Shevchenko