All of lore.kernel.org
 help / color / mirror / Atom feed
* [robh:for-next 6/7] drivers/tty/serial/esp32_acm.c:369:31: error: dereferencing pointer to incomplete type 'struct platform_device'
@ 2023-12-07 14:55 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2023-12-07 14:55 UTC (permalink / raw)
  To: Rob Herring; +Cc: oe-kbuild-all

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
head:   6c26cfb1561efbf12fe3cf700ddc2e956866af45
commit: f793fea7761d32ed64767311c82f39f0798fe6d6 [6/7] of: Stop circularly including of_device.h and of_platform.h
config: x86_64-buildonly-randconfig-002-20231207 (https://download.01.org/0day-ci/archive/20231207/202312072207.oHCE2Lgr-lkp@intel.com/config)
compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231207/202312072207.oHCE2Lgr-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202312072207.oHCE2Lgr-lkp@intel.com/

All error/warnings (new ones prefixed by >>):

   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
    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:31: error: dereferencing pointer to incomplete type 'struct platform_device'
     struct device_node *np = pdev->dev.of_node;
                                  ^~
   drivers/tty/serial/esp32_acm.c:391:8: error: implicit declaration of function 'platform_get_resource'; did you mean 'platform_notify_remove'? [-Werror=implicit-function-declaration]
     res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
           ^~~~~~~~~~~~~~~~~~~~~
           platform_notify_remove
>> drivers/tty/serial/esp32_acm.c:391:6: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
     res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
         ^
   drivers/tty/serial/esp32_acm.c:403:14: error: implicit declaration of function 'platform_get_irq'; did you mean 'platform_notify'? [-Werror=implicit-function-declaration]
     port->irq = platform_get_irq(pdev, 0);
                 ^~~~~~~~~~~~~~~~
                 platform_notify
   drivers/tty/serial/esp32_acm.c:411:2: error: implicit declaration of function 'platform_set_drvdata'; did you mean 'dev_set_drvdata'? [-Werror=implicit-function-declaration]
     platform_set_drvdata(pdev, port);
     ^~~~~~~~~~~~~~~~~~~~
     dev_set_drvdata
   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
    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:27: error: implicit declaration of function 'platform_get_drvdata'; did you mean 'dev_get_drvdata'? [-Werror=implicit-function-declaration]
     struct uart_port *port = platform_get_drvdata(pdev);
                              ^~~~~~~~~~~~~~~~~~~~
                              dev_get_drvdata
>> drivers/tty/serial/esp32_acm.c:418:27: warning: initialization 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
    static struct platform_driver esp32s3_acm_driver = {
                  ^~~~~~~~~~~~~~~
   drivers/tty/serial/esp32_acm.c:426:3: error: 'struct platform_driver' has no member named 'probe'
     .probe  = esp32s3_acm_probe,
      ^~~~~
   drivers/tty/serial/esp32_acm.c:426:12: warning: excess elements in struct initializer
     .probe  = esp32s3_acm_probe,
               ^~~~~~~~~~~~~~~~~
   drivers/tty/serial/esp32_acm.c:426:12: note: (near initialization for 'esp32s3_acm_driver')
   drivers/tty/serial/esp32_acm.c:427:3: error: 'struct platform_driver' has no member named 'remove'
     .remove  = esp32s3_acm_remove,
      ^~~~~~
   drivers/tty/serial/esp32_acm.c:427:13: warning: excess elements in struct initializer
     .remove  = esp32s3_acm_remove,
                ^~~~~~~~~~~~~~~~~~
   drivers/tty/serial/esp32_acm.c:427:13: note: (near initialization for 'esp32s3_acm_driver')
   drivers/tty/serial/esp32_acm.c:428:3: error: 'struct platform_driver' has no member named 'driver'
     .driver  = {
      ^~~~~~
   drivers/tty/serial/esp32_acm.c:428:13: error: extra brace group at end of initializer
     .driver  = {
                ^
   drivers/tty/serial/esp32_acm.c:428:13: note: (near initialization for 'esp32s3_acm_driver')
   drivers/tty/serial/esp32_acm.c:428:13: warning: excess elements in struct initializer
   drivers/tty/serial/esp32_acm.c:428:13: 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:8: error: implicit declaration of function 'platform_driver_register'; did you mean 'driver_register'? [-Werror=implicit-function-declaration]
     ret = platform_driver_register(&esp32s3_acm_driver);
           ^~~~~~~~~~~~~~~~~~~~~~~~
           driver_register
   drivers/tty/serial/esp32_acm.c: In function 'esp32s3_acm_exit':
   drivers/tty/serial/esp32_acm.c:451:2: error: implicit declaration of function 'platform_driver_unregister'; did you mean 'driver_unregister'? [-Werror=implicit-function-declaration]
     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
    static struct platform_driver esp32s3_acm_driver = {
                                  ^~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors


vim +369 drivers/tty/serial/esp32_acm.c

b0c9a045e8c7d4 Max Filippov 2023-10-10  366  
b0c9a045e8c7d4 Max Filippov 2023-10-10  367  static int esp32s3_acm_probe(struct platform_device *pdev)
b0c9a045e8c7d4 Max Filippov 2023-10-10  368  {
b0c9a045e8c7d4 Max Filippov 2023-10-10 @369  	struct device_node *np = pdev->dev.of_node;
b0c9a045e8c7d4 Max Filippov 2023-10-10  370  	struct uart_port *port;
b0c9a045e8c7d4 Max Filippov 2023-10-10  371  	struct resource *res;
b0c9a045e8c7d4 Max Filippov 2023-10-10  372  	int ret;
b0c9a045e8c7d4 Max Filippov 2023-10-10  373  
b0c9a045e8c7d4 Max Filippov 2023-10-10  374  	port = devm_kzalloc(&pdev->dev, sizeof(*port), GFP_KERNEL);
b0c9a045e8c7d4 Max Filippov 2023-10-10  375  	if (!port)
b0c9a045e8c7d4 Max Filippov 2023-10-10  376  		return -ENOMEM;
b0c9a045e8c7d4 Max Filippov 2023-10-10  377  
b0c9a045e8c7d4 Max Filippov 2023-10-10  378  	ret = of_alias_get_id(np, "serial");
b0c9a045e8c7d4 Max Filippov 2023-10-10  379  	if (ret < 0) {
b0c9a045e8c7d4 Max Filippov 2023-10-10  380  		dev_err(&pdev->dev, "failed to get alias id, errno %d\n", ret);
b0c9a045e8c7d4 Max Filippov 2023-10-10  381  		return ret;
b0c9a045e8c7d4 Max Filippov 2023-10-10  382  	}
b0c9a045e8c7d4 Max Filippov 2023-10-10  383  	if (ret >= UART_NR) {
b0c9a045e8c7d4 Max Filippov 2023-10-10  384  		dev_err(&pdev->dev, "driver limited to %d serial ports\n",
b0c9a045e8c7d4 Max Filippov 2023-10-10  385  			UART_NR);
b0c9a045e8c7d4 Max Filippov 2023-10-10  386  		return -ENOMEM;
b0c9a045e8c7d4 Max Filippov 2023-10-10  387  	}
b0c9a045e8c7d4 Max Filippov 2023-10-10  388  
b0c9a045e8c7d4 Max Filippov 2023-10-10  389  	port->line = ret;
b0c9a045e8c7d4 Max Filippov 2023-10-10  390  
b0c9a045e8c7d4 Max Filippov 2023-10-10 @391  	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
b0c9a045e8c7d4 Max Filippov 2023-10-10  392  	if (!res)
b0c9a045e8c7d4 Max Filippov 2023-10-10  393  		return -ENODEV;
b0c9a045e8c7d4 Max Filippov 2023-10-10  394  
b0c9a045e8c7d4 Max Filippov 2023-10-10  395  	port->mapbase = res->start;
b0c9a045e8c7d4 Max Filippov 2023-10-10  396  	port->membase = devm_ioremap_resource(&pdev->dev, res);
b0c9a045e8c7d4 Max Filippov 2023-10-10  397  	if (IS_ERR(port->membase))
b0c9a045e8c7d4 Max Filippov 2023-10-10  398  		return PTR_ERR(port->membase);
b0c9a045e8c7d4 Max Filippov 2023-10-10  399  
b0c9a045e8c7d4 Max Filippov 2023-10-10  400  	port->dev = &pdev->dev;
b0c9a045e8c7d4 Max Filippov 2023-10-10  401  	port->type = PORT_GENERIC;
b0c9a045e8c7d4 Max Filippov 2023-10-10  402  	port->iotype = UPIO_MEM;
b0c9a045e8c7d4 Max Filippov 2023-10-10  403  	port->irq = platform_get_irq(pdev, 0);
b0c9a045e8c7d4 Max Filippov 2023-10-10  404  	port->ops = &esp32s3_acm_pops;
b0c9a045e8c7d4 Max Filippov 2023-10-10  405  	port->flags = UPF_BOOT_AUTOCONF;
b0c9a045e8c7d4 Max Filippov 2023-10-10  406  	port->has_sysrq = 1;
b0c9a045e8c7d4 Max Filippov 2023-10-10  407  	port->fifosize = ESP32S3_ACM_TX_FIFO_SIZE;
b0c9a045e8c7d4 Max Filippov 2023-10-10  408  
b0c9a045e8c7d4 Max Filippov 2023-10-10  409  	esp32s3_acm_ports[port->line] = port;
b0c9a045e8c7d4 Max Filippov 2023-10-10  410  
b0c9a045e8c7d4 Max Filippov 2023-10-10  411  	platform_set_drvdata(pdev, port);
b0c9a045e8c7d4 Max Filippov 2023-10-10  412  
b0c9a045e8c7d4 Max Filippov 2023-10-10  413  	return uart_add_one_port(&esp32s3_acm_reg, port);
b0c9a045e8c7d4 Max Filippov 2023-10-10  414  }
b0c9a045e8c7d4 Max Filippov 2023-10-10  415  
b0c9a045e8c7d4 Max Filippov 2023-10-10  416  static int esp32s3_acm_remove(struct platform_device *pdev)
b0c9a045e8c7d4 Max Filippov 2023-10-10  417  {
b0c9a045e8c7d4 Max Filippov 2023-10-10 @418  	struct uart_port *port = platform_get_drvdata(pdev);
b0c9a045e8c7d4 Max Filippov 2023-10-10  419  
b0c9a045e8c7d4 Max Filippov 2023-10-10  420  	uart_remove_one_port(&esp32s3_acm_reg, port);
b0c9a045e8c7d4 Max Filippov 2023-10-10  421  	return 0;
b0c9a045e8c7d4 Max Filippov 2023-10-10  422  }
b0c9a045e8c7d4 Max Filippov 2023-10-10  423  

:::::: The code at line 369 was first introduced by commit
:::::: b0c9a045e8c7d4791ef8bafae2c29fe00e835067 drivers/tty/serial: add ESP32S3 ACM gadget driver

:::::: TO: Max Filippov <jcmvbkbc@gmail.com>
:::::: CC: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-12-07 14:55 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-07 14:55 [robh:for-next 6/7] drivers/tty/serial/esp32_acm.c:369:31: error: dereferencing pointer to incomplete type 'struct platform_device' kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.