[gpio:gpiochip-no-driver-h 1/1] drivers/net/wireless/broadcom/brcm80211/brcmsmac/led.c:71:44: error: dereferencing pointer to incomplete type 'struct gpio_chip'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git gpiochip-no-driver-h
head:   2ade795a7e0399423f07a9b077b820792be52f5c
commit: 2ade795a7e0399423f07a9b077b820792be52f5c [1/1] See what explodes if we apply this patch
config: alpha-allyesconfig (attached as .config)
compiler: alpha-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        git checkout 2ade795a7e0399423f07a9b077b820792be52f5c
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=alpha 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

   In file included from include/linux/gpio.h:62,
                    from include/linux/bcma/bcma_driver_chipcommon.h:6,
                    from drivers/net/wireless/broadcom/brcm80211/brcmsmac/led.c:3:
   include/asm-generic/gpio.h: In function 'gpio_to_chip':
   include/asm-generic/gpio.h:58:9: error: implicit declaration of function 'gpiod_to_chip'; did you mean 'gpio_to_chip'? [-Werror=implicit-function-declaration]
      58 |  return gpiod_to_chip(gpio_to_desc(gpio));
         |         ^~~~~~~~~~~~~
         |         gpio_to_chip
   include/asm-generic/gpio.h:58:9: warning: returning 'int' from a function with return type 'struct gpio_chip *' makes pointer from integer without a cast [-Wint-conversion]
      58 |  return gpiod_to_chip(gpio_to_desc(gpio));
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/net/wireless/broadcom/brcm80211/brcmsmac/led.c:3:
   include/linux/bcma/bcma_driver_chipcommon.h: At top level:
   include/linux/bcma/bcma_driver_chipcommon.h:647:19: error: field 'gpio' has incomplete type
     647 |  struct gpio_chip gpio;
         |                   ^~~~
   In file included from include/linux/bcma/bcma.h:14,
                    from drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h:20,
                    from drivers/net/wireless/broadcom/brcm80211/brcmsmac/led.c:7:
   include/linux/ssb/ssb.h:496:19: error: field 'gpio' has incomplete type
     496 |  struct gpio_chip gpio;
         |                   ^~~~
   In file included from drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h:24,
                    from drivers/net/wireless/broadcom/brcm80211/brcmsmac/led.c:8:
   drivers/net/wireless/broadcom/brcm80211/brcmsmac/d11.h:786:1: warning: alignment 1 of 'struct d11txh' is less than 2 [-Wpacked-not-aligned]
     786 | } __packed;
         | ^
   drivers/net/wireless/broadcom/brcm80211/brcmsmac/led.c: In function 'brcms_led_register':
>> drivers/net/wireless/broadcom/brcm80211/brcmsmac/led.c:71:44: error: dereferencing pointer to incomplete type 'struct gpio_chip'
      71 |  if (!bcma_gpio || !gpio_is_valid(bcma_gpio->base))
         |                                            ^~
   cc1: some warnings being treated as errors
--
   In file included from include/linux/gpio.h:62,
                    from drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c:22:
   include/asm-generic/gpio.h: In function 'gpio_to_chip':
   include/asm-generic/gpio.h:58:9: error: implicit declaration of function 'gpiod_to_chip'; did you mean 'gpio_to_chip'? [-Werror=implicit-function-declaration]
      58 |  return gpiod_to_chip(gpio_to_desc(gpio));
         |         ^~~~~~~~~~~~~
         |         gpio_to_chip
   include/asm-generic/gpio.h:58:9: warning: returning 'int' from a function with return type 'struct gpio_chip *' makes pointer from integer without a cast [-Wint-conversion]
      58 |  return gpiod_to_chip(gpio_to_desc(gpio));
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c: In function 'hdmi_probe_of':
>> drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c:543:2: error: implicit declaration of function 'of_node_put' [-Werror=implicit-function-declaration]
     543 |  of_node_put(ep);
         |  ^~~~~~~~~~~
   drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c: At top level:
>> drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c:791:34: error: array type has incomplete element type 'struct of_device_id'
     791 | static const struct of_device_id hdmi_of_match[] = {
         |                                  ^~~~~~~~~~~~~
>> drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c:792:4: error: field name not in record or union initializer
     792 |  { .compatible = "ti,omap4-hdmi", },
         |    ^
   drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c:792:4: note: (near initialization for 'hdmi_of_match')
   drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c:791:34: warning: 'hdmi_of_match' defined but not used [-Wunused-variable]
     791 | static const struct of_device_id hdmi_of_match[] = {
         |                                  ^~~~~~~~~~~~~
   cc1: some warnings being treated as errors
--
   In file included from include/linux/gpio.h:62,
                    from drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c:27:
   include/asm-generic/gpio.h: In function 'gpio_to_chip':
   include/asm-generic/gpio.h:58:9: error: implicit declaration of function 'gpiod_to_chip'; did you mean 'gpio_to_chip'? [-Werror=implicit-function-declaration]
      58 |  return gpiod_to_chip(gpio_to_desc(gpio));
         |         ^~~~~~~~~~~~~
         |         gpio_to_chip
   include/asm-generic/gpio.h:58:9: warning: returning 'int' from a function with return type 'struct gpio_chip *' makes pointer from integer without a cast [-Wint-conversion]
      58 |  return gpiod_to_chip(gpio_to_desc(gpio));
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c: In function 'hdmi_probe_of':
>> drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c:573:2: error: implicit declaration of function 'of_node_put' [-Werror=implicit-function-declaration]
     573 |  of_node_put(ep);
         |  ^~~~~~~~~~~
   drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c: At top level:
>> drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c:830:34: error: array type has incomplete element type 'struct of_device_id'
     830 | static const struct of_device_id hdmi_of_match[] = {
         |                                  ^~~~~~~~~~~~~
>> drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c:831:4: error: field name not in record or union initializer
     831 |  { .compatible = "ti,omap5-hdmi", },
         |    ^
   drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c:831:4: note: (near initialization for 'hdmi_of_match')
   drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c:832:4: error: field name not in record or union initializer
     832 |  { .compatible = "ti,dra7-hdmi", },
         |    ^
   drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c:832:4: note: (near initialization for 'hdmi_of_match')
   drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c:830:34: warning: 'hdmi_of_match' defined but not used [-Wunused-variable]
     830 | static const struct of_device_id hdmi_of_match[] = {
         |                                  ^~~~~~~~~~~~~
   cc1: some warnings being treated as errors

vim +71 drivers/net/wireless/broadcom/brcm80211/brcmsmac/led.c

cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03   5  
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03   6  #include "mac80211_if.h"
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03   7  #include "pub.h"
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  @8  #include "main.h"
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03   9  #include "led.h"
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  10  
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  11  	/* number of leds */
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  12  #define  BRCMS_LED_NO		4
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  13  	/* behavior mask */
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  14  #define  BRCMS_LED_BEH_MASK	0x7f
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  15  	/* activelow (polarity) bit */
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  16  #define  BRCMS_LED_AL_MASK	0x80
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  17  	/* radio enabled */
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  18  #define  BRCMS_LED_RADIO	3
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  19  
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  20  static void brcms_radio_led_ctrl(struct brcms_info *wl, bool state)
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  21  {
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  22  	if (wl->radio_led.gpio == -1)
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  23  		return;
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  24  
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  25  	if (wl->radio_led.active_low)
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  26  		state = !state;
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  27  
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  28  	if (state)
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  29  		gpio_set_value(wl->radio_led.gpio, 1);
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  30  	else
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  31  		gpio_set_value(wl->radio_led.gpio, 0);
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  32  }
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  33  
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  34  
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  35  /* Callback from the LED subsystem. */
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  36  static void brcms_led_brightness_set(struct led_classdev *led_dev,
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  37  				   enum led_brightness brightness)
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  38  {
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  39  	struct brcms_info *wl = container_of(led_dev,
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  40  		struct brcms_info, led_dev);
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  41  	brcms_radio_led_ctrl(wl, brightness);
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  42  }
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  43  
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  44  void brcms_led_unregister(struct brcms_info *wl)
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  45  {
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  46  	if (wl->led_dev.dev)
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  47  		led_classdev_unregister(&wl->led_dev);
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  48  	if (wl->radio_led.gpio != -1)
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  49  		gpio_free(wl->radio_led.gpio);
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  50  }
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  51  
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  52  int brcms_led_register(struct brcms_info *wl)
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  53  {
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  54  	int i, err;
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  55  	struct brcms_led *radio_led = &wl->radio_led;
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  56  	/* get CC core */
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  57  	struct bcma_drv_cc *cc_drv  = &wl->wlc->hw->d11core->bus->drv_cc;
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  58  	struct gpio_chip *bcma_gpio = &cc_drv->gpio;
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  59  	struct ssb_sprom *sprom = &wl->wlc->hw->d11core->bus->sprom;
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  60  	u8 *leds[] = { &sprom->gpio0,
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  61  		&sprom->gpio1,
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  62  		&sprom->gpio2,
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  63  		&sprom->gpio3 };
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  64  	unsigned gpio = -1;
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  65  	bool active_low = false;
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  66  
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  67  	/* none by default */
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  68  	radio_led->gpio = -1;
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  69  	radio_led->active_low = false;
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03  70  
cd864522b349cf drivers/net/wireless/brcm80211/brcmsmac/led.c Piotr Haber 2013-03-03 @71  	if (!bcma_gpio || !gpio_is_valid(bcma_gpio->base))

:::::: The code at line 71 was first introduced by commit
:::::: cd864522b349cfe88903cf6f3415293c39856b6c brcmsmac: radio on led support

:::::: TO: Piotr Haber <phaber@xxxxxxxxxxxx>
:::::: CC: John W. Linville <linville@xxxxxxxxxxxxx>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Linux SPI]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux