Subject: Re: linux-next: build failure after merge of the devicetree tree

From: Sibi Sankar <[email-masked]>
Date: Tue, 12 Dec 2023 14:34:26 +0530

On 12/11/23 10:35, Stephen Rothwell wrote:
> Hi all,

Hey Stephen,
Thanks for the fix.

> 
> After merging the devicetree tree, today's linux-next build (x86_64
> allmodconfig) failed like this:
> 
> drivers/clk/qcom/gcc-x1e80100.c:6786:15: error: variable 'gcc_x1e80100_driver' has initializer but incomplete type
>   6786 | static struct platform_driver gcc_x1e80100_driver = {
>        |               ^~~~~~~~~~~~~~~
> drivers/clk/qcom/gcc-x1e80100.c:6787:10: error: 'struct platform_driver' has no member named 'probe'
>   6787 |         .probe = gcc_x1e80100_probe,
>        |          ^~~~~
> drivers/clk/qcom/gcc-x1e80100.c:6787:18: warning: excess elements in struct initializer
>   6787 |         .probe = gcc_x1e80100_probe,
>        |                  ^~~~~~~~~~~~~~~~~~
> drivers/clk/qcom/gcc-x1e80100.c:6787:18: note: (near initialization for 'gcc_x1e80100_driver')
> drivers/clk/qcom/gcc-x1e80100.c:6788:10: error: 'struct platform_driver' has no member named 'driver'
>   6788 |         .driver = {
>        |          ^~~~~~
> drivers/clk/qcom/gcc-x1e80100.c:6788:19: error: extra brace group at end of initializer
>   6788 |         .driver = {
>        |                   ^
> drivers/clk/qcom/gcc-x1e80100.c:6788:19: note: (near initialization for 'gcc_x1e80100_driver')
> drivers/clk/qcom/gcc-x1e80100.c:6788:19: warning: excess elements in struct initializer
> drivers/clk/qcom/gcc-x1e80100.c:6788:19: note: (near initialization for 'gcc_x1e80100_driver')
> drivers/clk/qcom/gcc-x1e80100.c: In function 'gcc_x1e80100_init':
> drivers/clk/qcom/gcc-x1e80100.c:6796:16: error: implicit declaration of function 'platform_driver_register' [-Werror=implicit-function-declaration]
>   6796 |         return platform_driver_register(&gcc_x1e80100_driver);
>        |                ^~~~~~~~~~~~~~~~~~~~~~~~
> drivers/clk/qcom/gcc-x1e80100.c: In function 'gcc_x1e80100_exit':
> drivers/clk/qcom/gcc-x1e80100.c:6802:9: error: implicit declaration of function 'platform_driver_unregister'; did you mean 'driver_unregister'? [-Werror=implicit-function-declaration]
>   6802 |         platform_driver_unregister(&gcc_x1e80100_driver);
>        |         ^~~~~~~~~~~~~~~~~~~~~~~~~~
>        |         driver_unregister
> drivers/clk/qcom/gcc-x1e80100.c: At top level:
> drivers/clk/qcom/gcc-x1e80100.c:6786:31: error: storage size of 'gcc_x1e80100_driver' isn't known
>   6786 | static struct platform_driver gcc_x1e80100_driver = {
>        |                               ^~~~~~~~~~~~~~~~~~~
> 
> Caused by commit
> 
>    0d18bcdebb2f ("of: Stop circularly including of_device.h and of_platform.h")
> 
> interacting with commit
> 
>    161b7c401f4b ("clk: qcom: Add Global Clock controller (GCC) driver for X1E80100")
> 
> from the qcom tree.
> 
> I have applied the following merge resolution patch.  This patch could
> be applied to the gcom tree.
> 
> From: Stephen Rothwell <[email-masked]>
> Date: Mon, 11 Dec 2023 15:47:55 +1100
> Subject: [PATCH] fix up for "of: Stop circularly including of_device.h and of_platform.h"
> 
> interacting with
> "clk: qcom: Add Global Clock controller (GCC) driver for X1E80100"
> 
> Signed-off-by: Stephen Rothwell <[email-masked]>

Reviewed-by: Sibi Sankar <[email-masked]>

> ---
>   drivers/clk/qcom/gcc-x1e80100.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/clk/qcom/gcc-x1e80100.c b/drivers/clk/qcom/gcc-x1e80100.c
> index 74db7fef237b..d7182d6e9783 100644
> --- a/drivers/clk/qcom/gcc-x1e80100.c
> +++ b/drivers/clk/qcom/gcc-x1e80100.c
> @@ -4,8 +4,9 @@
>    */
>   
>   #include <linux/clk-provider.h>
> +#include <linux/mod_devicetable.h>
>   #include <linux/module.h>
> -#include <linux/of_device.h>
> +#include <linux/platform_device.h>
>   #include <linux/regmap.h>
>   
>   #include <dt-bindings/clock/qcom,x1e80100-gcc.h>