[PATCH v2] clk: samsung: exynos-clkout: Remove misleading of_match_table/MODULE_DEVICE_TABLE

William McVicker willmcvicker at google.com
Wed May 1 09:49:50 PDT 2024


On 04/26/2024, Marek Szyprowski wrote:
> Since commit 9484f2cb8332 ("clk: samsung: exynos-clkout: convert to
> module driver") this driver is instantiated as MFD-cell (matched by
> platform device name) not as a real platform device created by OF code.
> Remove of_match_table and change related MODULE_DEVICE_TABLE to simple
> MODULE_ALIAS to avoid further confusion.
> 
> Signed-off-by: Marek Szyprowski <m.szyprowski at samsung.com>
> ---
>  drivers/clk/samsung/clk-exynos-clkout.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/clk/samsung/clk-exynos-clkout.c b/drivers/clk/samsung/clk-exynos-clkout.c
> index 503c6f5b20d5..e2968784d307 100644
> --- a/drivers/clk/samsung/clk-exynos-clkout.c
> +++ b/drivers/clk/samsung/clk-exynos-clkout.c
> @@ -75,7 +75,6 @@ static const struct of_device_id exynos_clkout_ids[] = {
>  		.data = &exynos_clkout_exynos5,
>  	}, { }
>  };
> -MODULE_DEVICE_TABLE(of, exynos_clkout_ids);
>  
>  /*
>   * Device will be instantiated as child of PMU device without its own
> @@ -237,7 +236,6 @@ static SIMPLE_DEV_PM_OPS(exynos_clkout_pm_ops, exynos_clkout_suspend,
>  static struct platform_driver exynos_clkout_driver = {
>  	.driver = {
>  		.name = "exynos-clkout",
> -		.of_match_table = exynos_clkout_ids,
>  		.pm = &exynos_clkout_pm_ops,
>  	},
>  	.probe = exynos_clkout_probe,
> @@ -248,4 +246,5 @@ module_platform_driver(exynos_clkout_driver);
>  MODULE_AUTHOR("Krzysztof Kozlowski <krzk at kernel.org>");
>  MODULE_AUTHOR("Tomasz Figa <tomasz.figa at gmail.com>");
>  MODULE_DESCRIPTION("Samsung Exynos clock output driver");
> +MODULE_ALIAS("platform:exynos-clkout");

As mentioned by Krzysztof in v1, please create a `platform_device_id` table so
that this is scalable in case we need to add other aliases in the future. For
example, something like this:


static const struct platform_device_id exynos_clkout_platform_ids[] = {
	{ "exynos-clkout" },
	{}
};
MODULE_DEVICE_TABLE(platform, exynos_clkout_platform_ids);

static struct platform_driver exynos_clkout_driver = {
	.driver = {
		.name = "exynos-clkout",
		.pm = &exynos_clkout_pm_ops,
	},
	.probe = exynos_clkout_probe,
	.id_table = exynos_clkout_platform_ids,
...


Thanks,
Will



More information about the linux-arm-kernel mailing list