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