[PATCH 2/2] clk: sifive: Allow building the driver as a module

Samuel Holland samuel.holland at sifive.com
Mon Jul 24 17:19:05 PDT 2023


On 2023-07-19 9:18 AM, Emil Renner Berthing wrote:
> On Wed, 19 Jul 2023 at 10:07, Samuel Holland <samuel.holland at sifive.com> wrote:
>>
>> This can reduce the kernel image size in multiplatform configurations.
> 
> I don't mind this, but booting without this driver also means there is
> no uart for debug output or any other peripheral until the kernel gets
> to the initrd to load the driver. Does the earlycon console work all
> the way until we reach the initrd? Otherwise I can't imagine many
> scenarios where configuring this as a module is desirable.

Thanks for the review.

Yes, an "earlycon" command-line argument still works after this change, since
the stdout-path UART already has its clock set up by a previous boot stage.

>> Signed-off-by: Samuel Holland <samuel.holland at sifive.com>
>> ---
>>
>>  drivers/clk/sifive/Kconfig       | 2 +-
>>  drivers/clk/sifive/sifive-prci.c | 8 +++-----
>>  2 files changed, 4 insertions(+), 6 deletions(-)
>>
>> diff --git a/drivers/clk/sifive/Kconfig b/drivers/clk/sifive/Kconfig
>> index 2322f634a910..49597d95602e 100644
>> --- a/drivers/clk/sifive/Kconfig
>> +++ b/drivers/clk/sifive/Kconfig
>> @@ -10,7 +10,7 @@ menuconfig CLK_SIFIVE
>>  if CLK_SIFIVE
>>
>>  config CLK_SIFIVE_PRCI
>> -       bool "PRCI driver for SiFive SoCs"
>> +       tristate "PRCI driver for SiFive SoCs"
>>         default ARCH_SIFIVE
>>         select RESET_CONTROLLER
>>         select RESET_SIMPLE
>> diff --git a/drivers/clk/sifive/sifive-prci.c b/drivers/clk/sifive/sifive-prci.c
>> index e317f3454e93..8c67d1a7c8df 100644
>> --- a/drivers/clk/sifive/sifive-prci.c
>> +++ b/drivers/clk/sifive/sifive-prci.c
>> @@ -7,6 +7,7 @@
>>  #include <linux/clkdev.h>
>>  #include <linux/delay.h>
>>  #include <linux/io.h>
>> +#include <linux/module.h>
>>  #include <linux/of_device.h>
>>  #include "sifive-prci.h"
>>  #include "fu540-prci.h"
>> @@ -618,9 +619,6 @@ static struct platform_driver sifive_prci_driver = {
>>         },
>>         .probe = sifive_prci_probe,
>>  };
>> +module_platform_driver(sifive_prci_driver);
>>
>> -static int __init sifive_prci_init(void)
>> -{
>> -       return platform_driver_register(&sifive_prci_driver);
>> -}
>> -core_initcall(sifive_prci_init);
> 
> Maybe also add the MODULE_AUTHOR() and MODULE_DESCRIPTION() macros
> while you're at it.

Will do.

>> +MODULE_LICENSE("GPL");
>> --
>> 2.40.1
>>
>>
>> _______________________________________________
>> linux-riscv mailing list
>> linux-riscv at lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/linux-riscv




More information about the linux-riscv mailing list