[PATCH v2] clk: spacemit: Fix module build for spacemit common ccu driver
Yixun Lan
dlan at gentoo.org
Tue Dec 16 16:18:33 PST 2025
Hi Inochi,
just noticed, you failed to CC to the mailing list
please increase patch version and send a v3 next time..
also please see my comments below
On 07:35 Wed 17 Dec , Inochi Amaoto wrote:
> For build spacemit common clock driver as a module, the build
> process require MODULE_LICENSE()/MODULE_DESCRIPTION() globally
> and EXPORT_SYMBOL() for every exposed symbol. Otherwise, the
> build will fail.
>
> Add these missing hints, so the driver can be built as a module.
>
> Fixes: 1b72c59db0ad ("clk: spacemit: Add clock support for SpacemiT K1 SoC")
> Signed-off-by: Inochi Amaoto <inochiama at gmail.com>
> ---
> Change from v1:
> 1. Use EXPORT_SYMBOL_NS_GPL to export clock ops
> ---
> drivers/clk/spacemit/ccu-k1.c | 1 +
> drivers/clk/spacemit/ccu_ddn.c | 1 +
> drivers/clk/spacemit/ccu_mix.c | 9 +++++++++
> drivers/clk/spacemit/ccu_pll.c | 5 +++++
> 4 files changed, 16 insertions(+)
>
> diff --git a/drivers/clk/spacemit/ccu-k1.c b/drivers/clk/spacemit/ccu-k1.c
> index 4761bc1e3b6e..1f42b8045bf3 100644
> --- a/drivers/clk/spacemit/ccu-k1.c
> +++ b/drivers/clk/spacemit/ccu-k1.c
> @@ -1204,6 +1204,7 @@ static struct platform_driver k1_ccu_driver = {
> };
> module_platform_driver(k1_ccu_driver);
>
> +MODULE_IMPORT_NS("SPACEMIT_CCU");
the name should be ok as long as no collision and unique, but..
I personally would prefer "CLK_SPACEMIT" which follow "subsytem + vendor"
> MODULE_DESCRIPTION("SpacemiT K1 CCU driver");
> MODULE_AUTHOR("Haylen Chu <heylenay at 4d2.org>");
> MODULE_LICENSE("GPL");
> diff --git a/drivers/clk/spacemit/ccu_pll.c b/drivers/clk/spacemit/ccu_pll.c
[snip]...
> index d92f0dae65a4..893af23c6b25 100644
> --- a/drivers/clk/spacemit/ccu_pll.c
> +++ b/drivers/clk/spacemit/ccu_pll.c
> @@ -7,6 +7,7 @@
> #include <linux/clk-provider.h>
> #include <linux/math.h>
> #include <linux/regmap.h>
> +#include <linux/module.h>
>
> #include "ccu_common.h"
> #include "ccu_pll.h"
> @@ -157,3 +158,7 @@ const struct clk_ops spacemit_ccu_pll_ops = {
> .determine_rate = ccu_pll_determine_rate,
> .is_enabled = ccu_pll_is_enabled,
> };
> +EXPORT_SYMBOL_NS_GPL(spacemit_ccu_pll_ops, "SPACEMIT_CCU");
> +
..
> +MODULE_DESCRIPTION("SpacemiT CCU PLL/MIX/DDN common driver");
how about name it more generic? you don't know whether any other clock type
will be added in the future, so
"SpacemiT CCU common clock driver"
> +MODULE_LICENSE("GPL");
I've got a comment [1] from Ziyao in the review of K3 clock driver
that suggest to distill the common probe function, which make sense.
So, I plan to have separated ccu_common.c file, with this change,
it would be more proper to put MODULE_DESCRIPTION/MODULE_LICENSE
into that file
It might takes some time to get there, as I now got a weird panic/hang
issue with that change..
Link: https://lore.kernel.org/all/aTo8sCPpVM1o9PKX@pie/ [1]
--
Yixun Lan (dlan)
More information about the linux-riscv
mailing list