linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* linux-next: build failure after merge of the devicetree tree
@ 2023-12-07  1:57 Stephen Rothwell
  2023-12-07 15:11 ` Rob Herring
  0 siblings, 1 reply; 20+ messages in thread
From: Stephen Rothwell @ 2023-12-07  1:57 UTC (permalink / raw)
  To: Rob Herring; +Cc: Linux Kernel Mailing List, Linux Next Mailing List

[-- Attachment #1: Type: text/plain, Size: 21439 bytes --]

Hi all,

After merging the devicetree tree, today's linux-next build (x86_64
allmodconfig) failed like this:

drivers/auxdisplay/img-ascii-lcd.c: In function 'img_ascii_lcd_probe':
drivers/auxdisplay/img-ascii-lcd.c:234:17: error: implicit declaration of function 'of_match_device'; did you mean 'of_match_node'? [-Werror=implicit-function-declaration]
  234 |         match = of_match_device(img_ascii_lcd_matches, dev);
      |                 ^~~~~~~~~~~~~~~
      |                 of_match_node
drivers/auxdisplay/img-ascii-lcd.c:234:15: warning: assignment to 'const struct of_device_id *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  234 |         match = of_match_device(img_ascii_lcd_matches, dev);
      |               ^
drivers/firmware/microchip/mpfs-auto-update.c:439:42: warning: 'struct platform_device' declared inside parameter list will not be visible outside of this definition or declaration
  439 | static int mpfs_auto_update_probe(struct platform_device *pdev)
      |                                          ^~~~~~~~~~~~~~~
drivers/firmware/microchip/mpfs-auto-update.c: In function 'mpfs_auto_update_probe':
drivers/firmware/microchip/mpfs-auto-update.c:441:35: error: invalid use of undefined type 'struct platform_device'
  441 |         struct device *dev = &pdev->dev;
      |                                   ^~
drivers/firmware/microchip/mpfs-auto-update.c:456:9: error: implicit declaration of function 'platform_set_drvdata' [-Werror=implicit-function-declaration]
  456 |         platform_set_drvdata(pdev, priv);
      |         ^~~~~~~~~~~~~~~~~~~~
drivers/firmware/microchip/mpfs-auto-update.c: At top level:
drivers/firmware/microchip/mpfs-auto-update.c:476:44: warning: 'struct platform_device' declared inside parameter list will not be visible outside of this definition or declaration
  476 | static void mpfs_auto_update_remove(struct platform_device *pdev)
      |                                            ^~~~~~~~~~~~~~~
drivers/firmware/microchip/mpfs-auto-update.c: In function 'mpfs_auto_update_remove':
drivers/firmware/microchip/mpfs-auto-update.c:478:46: error: implicit declaration of function 'platform_get_drvdata' [-Werror=implicit-function-declaration]
  478 |         struct mpfs_auto_update_priv *priv = platform_get_drvdata(pdev);
      |                                              ^~~~~~~~~~~~~~~~~~~~
drivers/firmware/microchip/mpfs-auto-update.c:478:46: warning: initialization of 'struct mpfs_auto_update_priv *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
drivers/firmware/microchip/mpfs-auto-update.c: At top level:
drivers/firmware/microchip/mpfs-auto-update.c:483:15: error: variable 'mpfs_auto_update_driver' has initializer but incomplete type
  483 | static struct platform_driver mpfs_auto_update_driver = {
      |               ^~~~~~~~~~~~~~~
drivers/firmware/microchip/mpfs-auto-update.c:484:10: error: 'struct platform_driver' has no member named 'driver'
  484 |         .driver = {
      |          ^~~~~~
drivers/firmware/microchip/mpfs-auto-update.c:484:19: error: extra brace group at end of initializer
  484 |         .driver = {
      |                   ^
drivers/firmware/microchip/mpfs-auto-update.c:484:19: note: (near initialization for 'mpfs_auto_update_driver')
drivers/firmware/microchip/mpfs-auto-update.c:484:19: warning: excess elements in struct initializer
drivers/firmware/microchip/mpfs-auto-update.c:484:19: note: (near initialization for 'mpfs_auto_update_driver')
drivers/firmware/microchip/mpfs-auto-update.c:487:10: error: 'struct platform_driver' has no member named 'probe'
  487 |         .probe = mpfs_auto_update_probe,
      |          ^~~~~
drivers/firmware/microchip/mpfs-auto-update.c:487:18: warning: excess elements in struct initializer
  487 |         .probe = mpfs_auto_update_probe,
      |                  ^~~~~~~~~~~~~~~~~~~~~~
drivers/firmware/microchip/mpfs-auto-update.c:487:18: note: (near initialization for 'mpfs_auto_update_driver')
drivers/firmware/microchip/mpfs-auto-update.c:488:10: error: 'struct platform_driver' has no member named 'remove_new'
  488 |         .remove_new = mpfs_auto_update_remove,
      |          ^~~~~~~~~~
drivers/firmware/microchip/mpfs-auto-update.c:488:23: warning: excess elements in struct initializer
  488 |         .remove_new = mpfs_auto_update_remove,
      |                       ^~~~~~~~~~~~~~~~~~~~~~~
drivers/firmware/microchip/mpfs-auto-update.c:488:23: note: (near initialization for 'mpfs_auto_update_driver')
drivers/firmware/microchip/mpfs-auto-update.c:490:1: warning: data definition has no type or storage class
  490 | module_platform_driver(mpfs_auto_update_driver);
      | ^~~~~~~~~~~~~~~~~~~~~~
drivers/firmware/microchip/mpfs-auto-update.c:490:1: error: type defaults to 'int' in declaration of 'module_platform_driver' [-Werror=implicit-int]
drivers/firmware/microchip/mpfs-auto-update.c:490:1: warning: parameter names (without types) in function declaration
drivers/firmware/microchip/mpfs-auto-update.c:483:31: error: storage size of 'mpfs_auto_update_driver' isn't known
  483 | static struct platform_driver mpfs_auto_update_driver = {
      |                               ^~~~~~~~~~~~~~~~~~~~~~~
drivers/firmware/microchip/mpfs-auto-update.c:483:31: warning: 'mpfs_auto_update_driver' defined but not used [-Wunused-variable]
drivers/gpu/drm/bridge/aux-hpd-bridge.c: In function 'drm_aux_hpd_bridge_release':
drivers/gpu/drm/bridge/aux-hpd-bridge.c:27:9: error: implicit declaration of function 'of_node_put' [-Werror=implicit-function-declaration]
   27 |         of_node_put(adev->dev.platform_data);
      |         ^~~~~~~~~~~
drivers/tty/serial/esp32_acm.c:367:37: warning: 'struct platform_device' declared inside parameter list will not be visible outside of this definition or declaration
  367 | static int esp32s3_acm_probe(struct platform_device *pdev)
      |                                     ^~~~~~~~~~~~~~~
drivers/tty/serial/esp32_acm.c: In function 'esp32s3_acm_probe':
drivers/tty/serial/esp32_acm.c:369:38: error: invalid use of undefined type 'struct platform_device'
  369 |         struct device_node *np = pdev->dev.of_node;
      |                                      ^~
drivers/tty/serial/esp32_acm.c:374:34: error: invalid use of undefined type 'struct platform_device'
  374 |         port = devm_kzalloc(&pdev->dev, sizeof(*port), GFP_KERNEL);
      |                                  ^~
In file included from include/linux/device.h:15,
                 from include/linux/cdev.h:8,
                 from include/linux/tty_driver.h:9,
                 from include/linux/tty.h:10,
                 from include/linux/serial_core.h:17,
                 from drivers/tty/serial/esp32_acm.c:12:
drivers/tty/serial/esp32_acm.c:380:30: error: invalid use of undefined type 'struct platform_device'
  380 |                 dev_err(&pdev->dev, "failed to get alias id, errno %d\n", ret);
      |                              ^~
include/linux/dev_printk.h:110:25: note: in definition of macro 'dev_printk_index_wrap'
  110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/tty/serial/esp32_acm.c:380:17: note: in expansion of macro 'dev_err'
  380 |                 dev_err(&pdev->dev, "failed to get alias id, errno %d\n", ret);
      |                 ^~~~~~~
drivers/tty/serial/esp32_acm.c:384:30: error: invalid use of undefined type 'struct platform_device'
  384 |                 dev_err(&pdev->dev, "driver limited to %d serial ports\n",
      |                              ^~
include/linux/dev_printk.h:110:25: note: in definition of macro 'dev_printk_index_wrap'
  110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/tty/serial/esp32_acm.c:384:17: note: in expansion of macro 'dev_err'
  384 |                 dev_err(&pdev->dev, "driver limited to %d serial ports\n",
      |                 ^~~~~~~
drivers/tty/serial/esp32_acm.c:391:15: error: implicit declaration of function 'platform_get_resource' [-Werror=implicit-function-declaration]
  391 |         res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
      |               ^~~~~~~~~~~~~~~~~~~~~
drivers/tty/serial/esp32_acm.c:391:13: warning: assignment to 'struct resource *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  391 |         res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
      |             ^
drivers/tty/serial/esp32_acm.c:396:52: error: invalid use of undefined type 'struct platform_device'
  396 |         port->membase = devm_ioremap_resource(&pdev->dev, res);
      |                                                    ^~
drivers/tty/serial/esp32_acm.c:400:26: error: invalid use of undefined type 'struct platform_device'
  400 |         port->dev = &pdev->dev;
      |                          ^~
drivers/tty/serial/esp32_acm.c:403:21: error: implicit declaration of function 'platform_get_irq'; did you mean 'platform_notify'? [-Werror=implicit-function-declaration]
  403 |         port->irq = platform_get_irq(pdev, 0);
      |                     ^~~~~~~~~~~~~~~~
      |                     platform_notify
drivers/tty/serial/esp32_acm.c:411:9: error: implicit declaration of function 'platform_set_drvdata' [-Werror=implicit-function-declaration]
  411 |         platform_set_drvdata(pdev, port);
      |         ^~~~~~~~~~~~~~~~~~~~
drivers/tty/serial/esp32_acm.c: At top level:
drivers/tty/serial/esp32_acm.c:416:38: warning: 'struct platform_device' declared inside parameter list will not be visible outside of this definition or declaration
  416 | static int esp32s3_acm_remove(struct platform_device *pdev)
      |                                      ^~~~~~~~~~~~~~~
drivers/tty/serial/esp32_acm.c: In function 'esp32s3_acm_remove':
drivers/tty/serial/esp32_acm.c:418:34: error: implicit declaration of function 'platform_get_drvdata' [-Werror=implicit-function-declaration]
  418 |         struct uart_port *port = platform_get_drvdata(pdev);
      |                                  ^~~~~~~~~~~~~~~~~~~~
drivers/tty/serial/esp32_acm.c:418:34: warning: initialization of 'struct uart_port *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
drivers/tty/serial/esp32_acm.c: At top level:
drivers/tty/serial/esp32_acm.c:425:15: error: variable 'esp32s3_acm_driver' has initializer but incomplete type
  425 | static struct platform_driver esp32s3_acm_driver = {
      |               ^~~~~~~~~~~~~~~
drivers/tty/serial/esp32_acm.c:426:10: error: 'struct platform_driver' has no member named 'probe'
  426 |         .probe          = esp32s3_acm_probe,
      |          ^~~~~
drivers/tty/serial/esp32_acm.c:426:27: warning: excess elements in struct initializer
  426 |         .probe          = esp32s3_acm_probe,
      |                           ^~~~~~~~~~~~~~~~~
drivers/tty/serial/esp32_acm.c:426:27: note: (near initialization for 'esp32s3_acm_driver')
drivers/tty/serial/esp32_acm.c:427:10: error: 'struct platform_driver' has no member named 'remove'
  427 |         .remove         = esp32s3_acm_remove,
      |          ^~~~~~
drivers/tty/serial/esp32_acm.c:427:27: warning: excess elements in struct initializer
  427 |         .remove         = esp32s3_acm_remove,
      |                           ^~~~~~~~~~~~~~~~~~
drivers/tty/serial/esp32_acm.c:427:27: note: (near initialization for 'esp32s3_acm_driver')
drivers/tty/serial/esp32_acm.c:428:10: error: 'struct platform_driver' has no member named 'driver'
  428 |         .driver         = {
      |          ^~~~~~
drivers/tty/serial/esp32_acm.c:428:27: error: extra brace group at end of initializer
  428 |         .driver         = {
      |                           ^
drivers/tty/serial/esp32_acm.c:428:27: note: (near initialization for 'esp32s3_acm_driver')
drivers/tty/serial/esp32_acm.c:428:27: warning: excess elements in struct initializer
drivers/tty/serial/esp32_acm.c:428:27: note: (near initialization for 'esp32s3_acm_driver')
drivers/tty/serial/esp32_acm.c: In function 'esp32s3_acm_init':
drivers/tty/serial/esp32_acm.c:442:15: error: implicit declaration of function 'platform_driver_register' [-Werror=implicit-function-declaration]
  442 |         ret = platform_driver_register(&esp32s3_acm_driver);
      |               ^~~~~~~~~~~~~~~~~~~~~~~~
drivers/tty/serial/esp32_acm.c: In function 'esp32s3_acm_exit':
drivers/tty/serial/esp32_acm.c:451:9: error: implicit declaration of function 'platform_driver_unregister'; did you mean 'driver_unregister'? [-Werror=implicit-function-declaration]
  451 |         platform_driver_unregister(&esp32s3_acm_driver);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~
      |         driver_unregister
drivers/tty/serial/esp32_acm.c: At top level:
drivers/tty/serial/esp32_acm.c:425:31: error: storage size of 'esp32s3_acm_driver' isn't known
  425 | static struct platform_driver esp32s3_acm_driver = {
      |                               ^~~~~~~~~~~~~~~~~~
drivers/tty/serial/esp32_uart.c:678:36: warning: 'struct platform_device' declared inside parameter list will not be visible outside of this definition or declaration
  678 | static int esp32_uart_probe(struct platform_device *pdev)
      |                                    ^~~~~~~~~~~~~~~
drivers/tty/serial/esp32_uart.c: In function 'esp32_uart_probe':
drivers/tty/serial/esp32_uart.c:680:38: error: invalid use of undefined type 'struct platform_device'
  680 |         struct device_node *np = pdev->dev.of_node;
      |                                      ^~
drivers/tty/serial/esp32_uart.c:687:57: error: invalid use of undefined type 'struct platform_device'
  687 |         match = of_match_device(esp32_uart_dt_ids, &pdev->dev);
      |                                                         ^~
drivers/tty/serial/esp32_uart.c:691:35: error: invalid use of undefined type 'struct platform_device'
  691 |         sport = devm_kzalloc(&pdev->dev, sizeof(*sport), GFP_KERNEL);
      |                                   ^~
In file included from include/linux/device.h:15,
                 from include/linux/cdev.h:8,
                 from include/linux/tty_driver.h:9,
                 from include/linux/tty.h:10,
                 from include/linux/serial_core.h:17,
                 from drivers/tty/serial/esp32_uart.c:13:
drivers/tty/serial/esp32_uart.c:699:30: error: invalid use of undefined type 'struct platform_device'
  699 |                 dev_err(&pdev->dev, "failed to get alias id, errno %d\n", ret);
      |                              ^~
include/linux/dev_printk.h:110:25: note: in definition of macro 'dev_printk_index_wrap'
  110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/tty/serial/esp32_uart.c:699:17: note: in expansion of macro 'dev_err'
  699 |                 dev_err(&pdev->dev, "failed to get alias id, errno %d\n", ret);
      |                 ^~~~~~~
drivers/tty/serial/esp32_uart.c:703:30: error: invalid use of undefined type 'struct platform_device'
  703 |                 dev_err(&pdev->dev, "driver limited to %d serial ports\n", UART_NR);
      |                              ^~
include/linux/dev_printk.h:110:25: note: in definition of macro 'dev_printk_index_wrap'
  110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/tty/serial/esp32_uart.c:703:17: note: in expansion of macro 'dev_err'
  703 |                 dev_err(&pdev->dev, "driver limited to %d serial ports\n", UART_NR);
      |                 ^~~~~~~
drivers/tty/serial/esp32_uart.c:709:15: error: implicit declaration of function 'platform_get_resource' [-Werror=implicit-function-declaration]
  709 |         res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
      |               ^~~~~~~~~~~~~~~~~~~~~
drivers/tty/serial/esp32_uart.c:709:13: warning: assignment to 'struct resource *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  709 |         res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
      |             ^
drivers/tty/serial/esp32_uart.c:714:52: error: invalid use of undefined type 'struct platform_device'
  714 |         port->membase = devm_ioremap_resource(&pdev->dev, res);
      |                                                    ^~
drivers/tty/serial/esp32_uart.c:718:40: error: invalid use of undefined type 'struct platform_device'
  718 |         sport->clk = devm_clk_get(&pdev->dev, NULL);
      |                                        ^~
drivers/tty/serial/esp32_uart.c:723:26: error: invalid use of undefined type 'struct platform_device'
  723 |         port->dev = &pdev->dev;
      |                          ^~
drivers/tty/serial/esp32_uart.c:726:21: error: implicit declaration of function 'platform_get_irq'; did you mean 'platform_notify'? [-Werror=implicit-function-declaration]
  726 |         port->irq = platform_get_irq(pdev, 0);
      |                     ^~~~~~~~~~~~~~~~
      |                     platform_notify
drivers/tty/serial/esp32_uart.c:735:9: error: implicit declaration of function 'platform_set_drvdata' [-Werror=implicit-function-declaration]
  735 |         platform_set_drvdata(pdev, port);
      |         ^~~~~~~~~~~~~~~~~~~~
drivers/tty/serial/esp32_uart.c: At top level:
drivers/tty/serial/esp32_uart.c:740:37: warning: 'struct platform_device' declared inside parameter list will not be visible outside of this definition or declaration
  740 | static int esp32_uart_remove(struct platform_device *pdev)
      |                                     ^~~~~~~~~~~~~~~
drivers/tty/serial/esp32_uart.c: In function 'esp32_uart_remove':
drivers/tty/serial/esp32_uart.c:742:34: error: implicit declaration of function 'platform_get_drvdata' [-Werror=implicit-function-declaration]
  742 |         struct uart_port *port = platform_get_drvdata(pdev);
      |                                  ^~~~~~~~~~~~~~~~~~~~
drivers/tty/serial/esp32_uart.c:742:34: warning: initialization of 'struct uart_port *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
drivers/tty/serial/esp32_uart.c: At top level:
drivers/tty/serial/esp32_uart.c:750:15: error: variable 'esp32_uart_driver' has initializer but incomplete type
  750 | static struct platform_driver esp32_uart_driver = {
      |               ^~~~~~~~~~~~~~~
drivers/tty/serial/esp32_uart.c:751:10: error: 'struct platform_driver' has no member named 'probe'
  751 |         .probe          = esp32_uart_probe,
      |          ^~~~~
drivers/tty/serial/esp32_uart.c:751:27: warning: excess elements in struct initializer
  751 |         .probe          = esp32_uart_probe,
      |                           ^~~~~~~~~~~~~~~~
drivers/tty/serial/esp32_uart.c:751:27: note: (near initialization for 'esp32_uart_driver')
drivers/tty/serial/esp32_uart.c:752:10: error: 'struct platform_driver' has no member named 'remove'
  752 |         .remove         = esp32_uart_remove,
      |          ^~~~~~
drivers/tty/serial/esp32_uart.c:752:27: warning: excess elements in struct initializer
  752 |         .remove         = esp32_uart_remove,
      |                           ^~~~~~~~~~~~~~~~~
drivers/tty/serial/esp32_uart.c:752:27: note: (near initialization for 'esp32_uart_driver')
drivers/tty/serial/esp32_uart.c:753:10: error: 'struct platform_driver' has no member named 'driver'
  753 |         .driver         = {
      |          ^~~~~~
drivers/tty/serial/esp32_uart.c:753:27: error: extra brace group at end of initializer
  753 |         .driver         = {
      |                           ^
drivers/tty/serial/esp32_uart.c:753:27: note: (near initialization for 'esp32_uart_driver')
drivers/tty/serial/esp32_uart.c:753:27: warning: excess elements in struct initializer
drivers/tty/serial/esp32_uart.c:753:27: note: (near initialization for 'esp32_uart_driver')
drivers/tty/serial/esp32_uart.c: In function 'esp32_uart_init':
drivers/tty/serial/esp32_uart.c:767:15: error: implicit declaration of function 'platform_driver_register' [-Werror=implicit-function-declaration]
  767 |         ret = platform_driver_register(&esp32_uart_driver);
      |               ^~~~~~~~~~~~~~~~~~~~~~~~
drivers/tty/serial/esp32_uart.c: In function 'esp32_uart_exit':
drivers/tty/serial/esp32_uart.c:776:9: error: implicit declaration of function 'platform_driver_unregister'; did you mean 'driver_unregister'? [-Werror=implicit-function-declaration]
  776 |         platform_driver_unregister(&esp32_uart_driver);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~
      |         driver_unregister
drivers/tty/serial/esp32_uart.c: At top level:
drivers/tty/serial/esp32_uart.c:750:31: error: storage size of 'esp32_uart_driver' isn't known
  750 | static struct platform_driver esp32_uart_driver = {
      |                               ^~~~~~~~~~~~~~~~~

Presumably caused by commit

  f793fea7761d ("of: Stop circularly including of_device.h and of_platform.h")

I have used the devicetree tree from next-20231206 for today.

-- 
Cheers,
Stephen Rothwell

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread
* linux-next: build failure after merge of the devicetree tree
@ 2023-12-11  5:05 Stephen Rothwell
  2023-12-12  9:04 ` Sibi Sankar
  2024-01-19  0:58 ` Stephen Rothwell
  0 siblings, 2 replies; 20+ messages in thread
From: Stephen Rothwell @ 2023-12-11  5:05 UTC (permalink / raw)
  To: Rob Herring, Andy Gross
  Cc: Abel Vesa, Bjorn Andersson, Rajendra Nayak, Sibi Sankar,
	Linux Kernel Mailing List, Linux Next Mailing List

[-- Attachment #1: Type: text/plain, Size: 3657 bytes --]

Hi all,

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 <sfr@canb.auug.org.au>
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 <sfr@canb.auug.org.au>
---
 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>
-- 
2.40.1

-- 
Cheers,
Stephen Rothwell

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply related	[flat|nested] 20+ messages in thread
* linux-next: build failure after merge of the devicetree tree
@ 2023-12-08  2:51 Stephen Rothwell
  2023-12-08  7:34 ` Krzysztof Kozlowski
  0 siblings, 1 reply; 20+ messages in thread
From: Stephen Rothwell @ 2023-12-08  2:51 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski
  Cc: Kris Chaplin, Thomas Delev, Linux Kernel Mailing List,
	Linux Next Mailing List

[-- Attachment #1: Type: text/plain, Size: 5808 bytes --]

Hi all,

After merging the devicetree tree, today's linux-next build (x86_64
allmodconfig) failed like this:

drivers/w1/masters/amd_axi_w1.c: In function 'amd_axi_w1_probe':
drivers/w1/masters/amd_axi_w1.c:296:35: error: invalid use of undefined type 'struct platform_device'
  296 |         struct device *dev = &pdev->dev;
      |                                   ^~
drivers/w1/masters/amd_axi_w1.c:307:25: error: implicit declaration of function 'devm_platform_ioremap_resource'; did you mean 'devm_ioremap_resource'? [-Werror=implicit-function-declaration]
  307 |         lp->base_addr = devm_platform_ioremap_resource(pdev, 0);
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                         devm_ioremap_resource
drivers/w1/masters/amd_axi_w1.c:307:23: warning: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  307 |         lp->base_addr = devm_platform_ioremap_resource(pdev, 0);
      |                       ^
drivers/w1/masters/amd_axi_w1.c:311:19: error: implicit declaration of function 'platform_get_irq'; did you mean 'platform_notify'? [-Werror=implicit-function-declaration]
  311 |         lp->irq = platform_get_irq(pdev, 0);
      |                   ^~~~~~~~~~~~~~~~
      |                   platform_notify
drivers/w1/masters/amd_axi_w1.c:360:9: error: implicit declaration of function 'platform_set_drvdata' [-Werror=implicit-function-declaration]
  360 |         platform_set_drvdata(pdev, lp);
      |         ^~~~~~~~~~~~~~~~~~~~
drivers/w1/masters/amd_axi_w1.c: In function 'amd_axi_w1_remove':
drivers/w1/masters/amd_axi_w1.c:372:39: error: implicit declaration of function 'platform_get_drvdata' [-Werror=implicit-function-declaration]
  372 |         struct amd_axi_w1_local *lp = platform_get_drvdata(pdev);
      |                                       ^~~~~~~~~~~~~~~~~~~~
drivers/w1/masters/amd_axi_w1.c:372:39: warning: initialization of 'struct amd_axi_w1_local *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
drivers/w1/masters/amd_axi_w1.c: At top level:
drivers/w1/masters/amd_axi_w1.c:383:15: error: variable 'amd_axi_w1_driver' has initializer but incomplete type
  383 | static struct platform_driver amd_axi_w1_driver = {
      |               ^~~~~~~~~~~~~~~
drivers/w1/masters/amd_axi_w1.c:384:10: error: 'struct platform_driver' has no member named 'probe'
  384 |         .probe = amd_axi_w1_probe,
      |          ^~~~~
drivers/w1/masters/amd_axi_w1.c:384:18: warning: excess elements in struct initializer
  384 |         .probe = amd_axi_w1_probe,
      |                  ^~~~~~~~~~~~~~~~
drivers/w1/masters/amd_axi_w1.c:384:18: note: (near initialization for 'amd_axi_w1_driver')
drivers/w1/masters/amd_axi_w1.c:385:10: error: 'struct platform_driver' has no member named 'remove_new'
  385 |         .remove_new = amd_axi_w1_remove,
      |          ^~~~~~~~~~
drivers/w1/masters/amd_axi_w1.c:385:23: warning: excess elements in struct initializer
  385 |         .remove_new = amd_axi_w1_remove,
      |                       ^~~~~~~~~~~~~~~~~
drivers/w1/masters/amd_axi_w1.c:385:23: note: (near initialization for 'amd_axi_w1_driver')
drivers/w1/masters/amd_axi_w1.c:386:10: error: 'struct platform_driver' has no member named 'driver'
  386 |         .driver = {
      |          ^~~~~~
drivers/w1/masters/amd_axi_w1.c:386:19: error: extra brace group at end of initializer
  386 |         .driver = {
      |                   ^
drivers/w1/masters/amd_axi_w1.c:386:19: note: (near initialization for 'amd_axi_w1_driver')
drivers/w1/masters/amd_axi_w1.c:386:19: warning: excess elements in struct initializer
drivers/w1/masters/amd_axi_w1.c:386:19: note: (near initialization for 'amd_axi_w1_driver')
drivers/w1/masters/amd_axi_w1.c:391:1: warning: data definition has no type or storage class
  391 | module_platform_driver(amd_axi_w1_driver);
      | ^~~~~~~~~~~~~~~~~~~~~~
drivers/w1/masters/amd_axi_w1.c:391:1: error: type defaults to 'int' in declaration of 'module_platform_driver' [-Werror=implicit-int]
drivers/w1/masters/amd_axi_w1.c:391:1: warning: parameter names (without types) in function declaration
drivers/w1/masters/amd_axi_w1.c:383:31: error: storage size of 'amd_axi_w1_driver' isn't known
  383 | static struct platform_driver amd_axi_w1_driver = {
      |                               ^~~~~~~~~~~~~~~~~
drivers/w1/masters/amd_axi_w1.c:383:31: warning: 'amd_axi_w1_driver' defined but not used [-Wunused-variable]

Caused by commit

  0d18bcdebb2f ("of: Stop circularly including of_device.h and of_platform.h")

interacting with commit

  271c81935801 ("w1: Add AXI 1-wire host driver for AMD programmable logic IP core")

from the w1 tree.

I have applied the following merge fix patch for today (that could just
be applied to the w1 tree).

From: Stephen Rothwell <sfr@canb.auug.org.au>
Date: Fri, 8 Dec 2023 13:37:03 +1100
Subject: [PATCH] amd_axi_w1: include the correct files

This is to cope with "of: Stop circularly including of_device.h and
of_platform.h"

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
 drivers/w1/masters/amd_axi_w1.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/w1/masters/amd_axi_w1.c b/drivers/w1/masters/amd_axi_w1.c
index 24a05c2de5f1..f8b31cae450d 100644
--- a/drivers/w1/masters/amd_axi_w1.c
+++ b/drivers/w1/masters/amd_axi_w1.c
@@ -13,7 +13,8 @@
 #include <linux/jiffies.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
-#include <linux/of_platform.h>
+#include <linux/platform_device.h>
+#include <linux/mod_devicetable.h>
 #include <linux/types.h>
 #include <linux/wait.h>
 
-- 
2.40.1

-- 
Cheers,
Stephen Rothwell

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply related	[flat|nested] 20+ messages in thread
* linux-next: build failure after merge of the devicetree tree
@ 2023-04-11  2:28 Stephen Rothwell
  0 siblings, 0 replies; 20+ messages in thread
From: Stephen Rothwell @ 2023-04-11  2:28 UTC (permalink / raw)
  To: Rob Herring
  Cc: Petr Pavlu, Rafael J. Wysocki, Linux Kernel Mailing List,
	Linux Next Mailing List

[-- Attachment #1: Type: text/plain, Size: 3924 bytes --]

Hi all,

After merging the devicetree tree, today's linux-next build (x86_64
allmodconfig) failed like this:

drivers/cpufreq/acpi-cpufreq.c:1024:15: error: variable 'acpi_cpufreq_platdrv' has initializer but incomplete type
 1024 | static struct platform_driver acpi_cpufreq_platdrv = {
      |               ^~~~~~~~~~~~~~~
drivers/cpufreq/acpi-cpufreq.c:1025:10: error: 'struct platform_driver' has no member named 'driver'
 1025 |         .driver = {
      |          ^~~~~~
drivers/cpufreq/acpi-cpufreq.c:1025:19: error: extra brace group at end of initializer
 1025 |         .driver = {
      |                   ^
drivers/cpufreq/acpi-cpufreq.c:1025:19: note: (near initialization for 'acpi_cpufreq_platdrv')
drivers/cpufreq/acpi-cpufreq.c:1025:19: error: excess elements in struct initializer [-Werror]
drivers/cpufreq/acpi-cpufreq.c:1025:19: note: (near initialization for 'acpi_cpufreq_platdrv')
drivers/cpufreq/acpi-cpufreq.c:1028:10: error: 'struct platform_driver' has no member named 'remove'
 1028 |         .remove         = acpi_cpufreq_remove,
      |          ^~~~~~
drivers/cpufreq/acpi-cpufreq.c:1028:27: error: excess elements in struct initializer [-Werror]
 1028 |         .remove         = acpi_cpufreq_remove,
      |                           ^~~~~~~~~~~~~~~~~~~
drivers/cpufreq/acpi-cpufreq.c:1028:27: note: (near initialization for 'acpi_cpufreq_platdrv')
drivers/cpufreq/acpi-cpufreq.c: In function 'acpi_cpufreq_init':
drivers/cpufreq/acpi-cpufreq.c:1033:16: error: implicit declaration of function 'platform_driver_probe' [-Werror=implicit-function-declaration]
 1033 |         return platform_driver_probe(&acpi_cpufreq_platdrv, acpi_cpufreq_probe);
      |                ^~~~~~~~~~~~~~~~~~~~~
drivers/cpufreq/acpi-cpufreq.c: In function 'acpi_cpufreq_exit':
drivers/cpufreq/acpi-cpufreq.c:1038:9: error: implicit declaration of function 'platform_driver_unregister'; did you mean 'driver_unregister'? [-Werror=implicit-function-declaration]
 1038 |         platform_driver_unregister(&acpi_cpufreq_platdrv);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~
      |         driver_unregister
drivers/cpufreq/acpi-cpufreq.c: At top level:
drivers/cpufreq/acpi-cpufreq.c:1024:31: error: storage size of 'acpi_cpufreq_platdrv' isn't known
 1024 | static struct platform_driver acpi_cpufreq_platdrv = {
      |                               ^~~~~~~~~~~~~~~~~~~~

I am not sure which of the include file update commits were the direct
cause but they interacted with commit

  691a63712347 ("ACPI: cpufreq: Use platform devices to load ACPI PPC and PCC drivers")

from the pm tree.

I have applied the following merge fix patch.

From: Stephen Rothwell <sfr@canb.auug.org.au>
Date: Tue, 11 Apr 2023 12:15:29 +1000
Subject: [PATCH] devicetree: fix up for include rationalisation

interacting with "ACPI: cpufreq: Use platform devices to load ACPI PPC and PCC drivers"

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
 drivers/cpufreq/acpi-cpufreq.c | 1 +
 drivers/cpufreq/pcc-cpufreq.c  | 1 +
 2 files changed, 2 insertions(+)

diff --git a/drivers/cpufreq/acpi-cpufreq.c b/drivers/cpufreq/acpi-cpufreq.c
index e1a5384cf21c..29904395e95f 100644
--- a/drivers/cpufreq/acpi-cpufreq.c
+++ b/drivers/cpufreq/acpi-cpufreq.c
@@ -20,6 +20,7 @@
 #include <linux/dmi.h>
 #include <linux/slab.h>
 #include <linux/string_helpers.h>
+#include <linux/platform_device.h>
 
 #include <linux/acpi.h>
 #include <linux/io.h>
diff --git a/drivers/cpufreq/pcc-cpufreq.c b/drivers/cpufreq/pcc-cpufreq.c
index 0c362932ca60..b4318a1a9335 100644
--- a/drivers/cpufreq/pcc-cpufreq.c
+++ b/drivers/cpufreq/pcc-cpufreq.c
@@ -36,6 +36,7 @@
 #include <linux/io.h>
 #include <linux/spinlock.h>
 #include <linux/uaccess.h>
+#include <linux/platform_device.h>
 
 #include <acpi/processor.h>
 
-- 
2.39.2

-- 
Cheers,
Stephen Rothwell

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply related	[flat|nested] 20+ messages in thread
* linux-next: build failure after merge of the devicetree tree
@ 2014-05-26  5:05 Stephen Rothwell
  2014-05-26  7:22 ` Thomas Petazzoni
  0 siblings, 1 reply; 20+ messages in thread
From: Stephen Rothwell @ 2014-05-26  5:05 UTC (permalink / raw)
  To: Grant Likely; +Cc: linux-next, linux-kernel, Xiubo Li, Thomas Petazzoni

[-- Attachment #1: Type: text/plain, Size: 1516 bytes --]

Hi Grant,

After merging the devicetree tree, today's linux-next build (powerpc
ppc64_defconfig) failed like this:

drivers/of/base.c: In function 'of_update_property':
drivers/of/base.c:1906:10: error: 'found' undeclared (first use in this function)
   return found ? 0 : -ENODEV;
          ^

Caused by a bad automatic merge resolution between commits 582da6527da3
("of: make of_update_property() usable earlier in the boot process")
(merged into Linus' tree between v3.15-rc4 and rc5) and 947fdaad0627
("of: fix race between search and remove in of_update_property()") from
the devicetree tree.

I have added the following merge fix patch:

From: Stephen Rothwell <sfr@canb.auug.org.au>
Date: Mon, 26 May 2014 14:50:40 +1000
Subject: [PATCH] of: fix bad merge of drivers/of/base.c

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
 drivers/of/base.c | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/drivers/of/base.c b/drivers/of/base.c
index 395ee2b3146d..03e7fc6c93e8 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -1901,10 +1901,6 @@ int of_update_property(struct device_node *np, struct property *newprop)
 	if (!of_kset)
 		return 0;
 
-	/* At early boot, bail out and defer setup to of_init() */
-	if (!of_kset)
-		return found ? 0 : -ENODEV;
-
 	/* Update the sysfs attribute */
 	if (oldprop)
 		sysfs_remove_bin_file(&np->kobj, &oldprop->attr);
-- 
2.0.0.rc4

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply related	[flat|nested] 20+ messages in thread
* linux-next: build failure after merge of the devicetree tree
@ 2011-10-05  5:24 Stephen Rothwell
  2011-10-05  5:54 ` Grant Likely
  0 siblings, 1 reply; 20+ messages in thread
From: Stephen Rothwell @ 2011-10-05  5:24 UTC (permalink / raw)
  To: Grant Likely; +Cc: linux-next, linux-kernel, Ben Dooks

[-- Attachment #1: Type: text/plain, Size: 646 bytes --]

Hi Grant,

After merging the devicetree tree, today's linux-next build (x86_64
allmodconfig) failed like this:

drivers/tty/serial/altera_jtaguart.c:483:3: error: implicit declaration of function 'of_match_ptr' [-Werror=implicit-function-declaration]
drivers/tty/serial/altera_jtaguart.c:483:34: error: 'altera_jtaguart_match' undeclared here (not in a function)

Caused by commit 85888069cf5d ("tty: use of_match_ptr() for
of_match_table entry").

I have used the version of the devicetree tree from next-20111004 for
today.
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread
* linux-next: build failure after merge of the devicetree tree
@ 2010-07-30  3:57 Stephen Rothwell
  2010-07-30  6:11 ` Grant Likely
  0 siblings, 1 reply; 20+ messages in thread
From: Stephen Rothwell @ 2010-07-30  3:57 UTC (permalink / raw)
  To: Grant Likely; +Cc: linux-next, linux-kernel, Anatolij Gustschin

[-- Attachment #1: Type: text/plain, Size: 640 bytes --]

Hi Grant,

After merging the devicetree tree, today's linux-next build (x86_64
allmodconfig) failed like this:

drivers/spi/xilinx_spi.c: In function 'xilinx_spi_init':
drivers/spi/xilinx_spi.c:393: error: 'struct device' has no member named 'of_node'
drivers/spi/xilinx_spi.c:393: error: 'struct device' has no member named 'of_node'

Caused by commit 65b25b3c3080d96c42b31e0d97e7fcf4fabceeb4 ("of/spi: call
of_register_spi_devices() from spi core code").

I have used the devicetree tree from next-20100729 for today.
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread
* linux-next: build failure after merge of the devicetree tree
@ 2010-07-15  2:15 Stephen Rothwell
  2010-07-15  6:06 ` Grant Likely
  0 siblings, 1 reply; 20+ messages in thread
From: Stephen Rothwell @ 2010-07-15  2:15 UTC (permalink / raw)
  To: Grant Likely; +Cc: linux-next, linux-kernel, Andrew Morton

[-- Attachment #1: Type: text/plain, Size: 514 bytes --]

Hi Grant,

After merging the devicetree tree, today's linux-next build (powerpc
ppc64_defconfig) failed like this:

drivers/of/platform.c: In function 'of_device_make_bus_id':
drivers/of/platform.c:437: error: implicit declaration of function 'of_translate_dcr_address'

As you requested, I have dropped that tree form linux-next for today.

Andrew, I hope this does not cause you too much pain.
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2024-01-19 14:07 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-12-07  1:57 linux-next: build failure after merge of the devicetree tree Stephen Rothwell
2023-12-07 15:11 ` Rob Herring
2023-12-07 20:58   ` Stephen Rothwell
2023-12-07 22:05     ` Rob Herring
2023-12-08  3:11       ` Stephen Rothwell
  -- strict thread matches above, loose matches on Subject: below --
2023-12-11  5:05 Stephen Rothwell
2023-12-12  9:04 ` Sibi Sankar
2024-01-19  0:58 ` Stephen Rothwell
2024-01-19 14:07   ` Rob Herring
2023-12-08  2:51 Stephen Rothwell
2023-12-08  7:34 ` Krzysztof Kozlowski
2023-04-11  2:28 Stephen Rothwell
2014-05-26  5:05 Stephen Rothwell
2014-05-26  7:22 ` Thomas Petazzoni
2011-10-05  5:24 Stephen Rothwell
2011-10-05  5:54 ` Grant Likely
2010-07-30  3:57 Stephen Rothwell
2010-07-30  6:11 ` Grant Likely
2010-07-15  2:15 Stephen Rothwell
2010-07-15  6:06 ` Grant Likely

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).