Message ID | 20230710154932.68377-9-andriy.shevchenko@linux.intel.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | spi: Header and core clean up and refactoring | expand |
On Mon, Jul 10, 2023 at 06:49:25PM +0300, Andy Shevchenko wrote: > There is a few things done: > - include only the headers we are direct user of > - when pointer is in use, provide a forward declaration > - add missing headers > - group generic headers and subsystem headers > - sort each group alphabetically The previous commit was supposed to be sorting things and AFAICT did so... > +struct spi_device_id; Why are we adding this given that there's also an inclusion of mod_devicetable that you didn't remove?
On Mon, Jul 10, 2023 at 06:49:25PM +0300, Andy Shevchenko wrote: > There is a few things done: > - include only the headers we are direct user of > - when pointer is in use, provide a forward declaration > - add missing headers > - group generic headers and subsystem headers > - sort each group alphabetically This breaks an x86 allmodconfig build: /build/stage/linux/drivers/gpio/gpio-xra1403.c: In function ‘xra1403_probe’: /build/stage/linux/drivers/gpio/gpio-xra1403.c:161:22: error: implicit declaration of function ‘devm_gpiod_get_optional’ [-Werror=implicit-function-declaration] 161 | reset_gpio = devm_gpiod_get_optional(&spi->dev, "reset", GPIOD_OUT_LOW); | ^~~~~~~~~~~~~~~~~~~~~~~ /build/stage/linux/drivers/gpio/gpio-xra1403.c:161:66: error: ‘GPIOD_OUT_LOW’ undeclared (first use in this function) 161 | reset_gpio = devm_gpiod_get_optional(&spi->dev, "reset", GPIOD_OUT_LOW); | ^~~~~~~~~~~~~ /build/stage/linux/drivers/gpio/gpio-xra1403.c:161:66: note: each undeclared identifier is reported only once for each function it appears in cc1: all warnings being treated as errors make[5]: *** [/build/stage/linux/scripts/Makefile.build:243: drivers/gpio/gpio-xra1403.o] Error 1 make[5]: Target 'drivers/gpio/' not remade because of errors. make[4]: *** [/build/stage/linux/scripts/Makefile.build:477: drivers/gpio] Error 2 /build/stage/linux/sound/soc/intel/boards/bytcr_wm5102.c: In function ‘byt_wm5102_spkvdd_power_event’: /build/stage/linux/sound/soc/intel/boards/bytcr_wm5102.c:46:9: error: implicit declaration of function ‘gpiod_set_value_cansleep’ [-Werror=implicit-function-declaration] 46 | gpiod_set_value_cansleep(priv->spkvdd_en_gpio, | ^~~~~~~~~~~~~~~~~~~~~~~~ /build/stage/linux/sound/soc/intel/boards/bytcr_wm5102.c: In function ‘snd_byt_wm5102_mc_probe’: /build/stage/linux/sound/soc/intel/boards/bytcr_wm5102.c:421:32: error: implicit declaration of function ‘gpiod_get’; did you mean ‘bio_get’? [-Werror=implicit-function-declaration] 421 | priv->spkvdd_en_gpio = gpiod_get(codec_dev, "wlf,spkvdd-ena", GPIOD_OUT_LOW); | ^~~~~~~~~ | bio_get /build/stage/linux/sound/soc/intel/boards/bytcr_wm5102.c:421:71: error: ‘GPIOD_OUT_LOW’ undeclared (first use in this function) 421 | priv->spkvdd_en_gpio = gpiod_get(codec_dev, "wlf,spkvdd-ena", GPIOD_OUT_LOW); | ^~~~~~~~~~~~~ /build/stage/linux/sound/soc/intel/boards/bytcr_wm5102.c:421:71: note: each undeclared identifier is reported only once for each function it appears in /build/stage/linux/sound/soc/intel/boards/bytcr_wm5102.c:465:9: error: implicit declaration of function ‘gpiod_put’; did you mean ‘bio_put’? [-Werror=implicit-function-declaration] 465 | gpiod_put(priv->spkvdd_en_gpio); | ^~~~~~~~~ | bio_put cc1: all warnings being treated as errors make[7]: *** [/build/stage/linux/scripts/Makefile.build:243: sound/soc/intel/boards/bytcr_wm5102.o] Error 1 make[7]: Target 'sound/soc/intel/boards/' not remade because of errors. make[6]: *** [/build/stage/linux/scripts/Makefile.build:477: sound/soc/intel/boards] Error 2 make[6]: Target 'sound/soc/intel/' not remade because of errors. make[5]: *** [/build/stage/linux/scripts/Makefile.build:477: sound/soc/intel] Error 2 /build/stage/linux/drivers/gpu/drm/solomon/ssd130x-spi.c: In function ‘ssd130x_spi_write’: /build/stage/linux/drivers/gpu/drm/solomon/ssd130x-spi.c:38:17: error: implicit declaration of function ‘gpiod_set_value_cansleep’ [-Werror=implicit-function-declaration] 38 | gpiod_set_value_cansleep(t->dc, 0); | ^~~~~~~~~~~~~~~~~~~~~~~~ /build/stage/linux/drivers/gpu/drm/solomon/ssd130x-spi.c: In function ‘ssd130x_spi_probe’: /build/stage/linux/drivers/gpu/drm/solomon/ssd130x-spi.c:70:14: error: implicit declaration of function ‘devm_gpiod_get’; did you mean ‘em_pd_get’? [-Werror=implicit-function-declaration] 70 | dc = devm_gpiod_get(dev, "dc", GPIOD_OUT_LOW); | ^~~~~~~~~~~~~~ | em_pd_get /build/stage/linux/drivers/gpu/drm/solomon/ssd130x-spi.c:70:40: error: ‘GPIOD_OUT_LOW’ undeclared (first use in this function) 70 | dc = devm_gpiod_get(dev, "dc", GPIOD_OUT_LOW); | ^~~~~~~~~~~~~ /build/stage/linux/drivers/gpu/drm/solomon/ssd130x-spi.c:70:40: note: each undeclared identifier is reported only once for each function it appears in cc1: all warnings being treated as errors make[7]: *** [/build/stage/linux/scripts/Makefile.build:243: drivers/gpu/drm/solomon/ssd130x-spi.o] Error 1 make[7]: Target 'drivers/gpu/drm/solomon/' not remade because of errors. make[6]: *** [/build/stage/linux/scripts/Makefile.build:477: drivers/gpu/drm/solomon] Error 2 /build/stage/linux/drivers/net/ethernet/asix/ax88796c_main.c: In function ‘ax88796c_hard_reset’: /build/stage/linux/drivers/net/ethernet/asix/ax88796c_main.c:950:22: error: implicit declaration of function ‘gpiod_get’; did you mean ‘guid_gen’? [-Werror=implicit-function-declaration] 950 | reset_gpio = gpiod_get(dev, "reset", 0); | ^~~~~~~~~ | guid_gen /build/stage/linux/drivers/net/ethernet/asix/ax88796c_main.c:950:20: error: assignment to ‘struct gpio_desc *’ from ‘int’ makes pointer from integer without a cast [-Werror=int-conversion] 950 | reset_gpio = gpiod_get(dev, "reset", 0); | ^ /build/stage/linux/drivers/net/ethernet/asix/ax88796c_main.c:957:9: error: implicit declaration of function ‘gpiod_direction_output’ [-Werror=implicit-function-declaration] 957 | gpiod_direction_output(reset_gpio, 1); | ^~~~~~~~~~~~~~~~~~~~~~ /build/stage/linux/drivers/net/ethernet/asix/ax88796c_main.c:960:9: error: implicit declaration of function ‘gpiod_put’ [-Werror=implicit-function-declaration] 960 | gpiod_put(reset_gpio); | ^~~~~~~~~ cc1: all warnings being treated as errors make[7]: *** [/build/stage/linux/scripts/Makefile.build:243: drivers/net/ethernet/asix/ax88796c_main.o] Error 1 make[7]: Target 'drivers/net/ethernet/asix/' not remade because of errors. make[6]: *** [/build/stage/linux/scripts/Makefile.build:477: drivers/net/ethernet/asix] Error 2 /build/stage/linux/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c: In function ‘td043mtea1_power_on’: /build/stage/linux/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c:147:9: error: implicit declaration of function ‘gpiod_set_value’ [-Werror=implicit-function-declaration] 147 | gpiod_set_value(lcd->reset_gpio, 0); | ^~~~~~~~~~~~~~~ /build/stage/linux/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c: In function ‘td043mtea1_probe’: /build/stage/linux/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c:438:27: error: implicit declaration of function ‘devm_gpiod_get’; did you mean ‘em_pd_get’? [-Werror=implicit-function-declaration] 438 | lcd->reset_gpio = devm_gpiod_get(&spi->dev, "reset", GPIOD_OUT_HIGH); | ^~~~~~~~~~~~~~ | em_pd_get /build/stage/linux/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c:438:62: error: ‘GPIOD_OUT_HIGH’ undeclared (first use in this function) 438 | lcd->reset_gpio = devm_gpiod_get(&spi->dev, "reset", GPIOD_OUT_HIGH); | ^~~~~~~~~~~~~~ /build/stage/linux/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c:438:62: note: each undeclared identifier is reported only once for each function it appears in cc1: all warnings being treated as errors make[7]: *** [/build/stage/linux/scripts/Makefile.build:243: drivers/gpu/drm/panel/panel-tpo-td043mtea1.o] Error 1 make[7]: Target 'drivers/gpu/drm/panel/' not remade because of errors. make[6]: *** [/build/stage/linux/scripts/Makefile.build:477: drivers/gpu/drm/panel] Error 2 /build/stage/linux/drivers/spi/spi-fsl-dspi.c: In function ‘dspi_assert_cs’: /build/stage/linux/drivers/spi/spi-fsl-dspi.c:908:9: error: implicit declaration of function ‘gpiod_set_value_cansleep’ [-Werror=implicit-function-declaration] 908 | gpiod_set_value_cansleep(spi_get_csgpiod(spi, 0), true); | ^~~~~~~~~~~~~~~~~~~~~~~~ /build/stage/linux/drivers/spi/spi-fsl-dspi.c: In function ‘dspi_setup’: /build/stage/linux/drivers/spi/spi-fsl-dspi.c:1076:9: error: implicit declaration of function ‘gpiod_direction_output’; did you mean ‘pinctrl_gpio_direction_output’? [-Werror=implicit-function-declaration] 1076 | gpiod_direction_output(spi_get_csgpiod(spi, 0), false); | ^~~~~~~~~~~~~~~~~~~~~~ | pinctrl_gpio_direction_output cc1: all warnings being treated as errors make[5]: *** [/build/stage/linux/scripts/Makefile.build:243: drivers/spi/spi-fsl-dspi.o] Error 1 make[6]: Target 'drivers/net/ethernet/' not remade because of errors. make[5]: *** [/build/stage/linux/scripts/Makefile.build:477: drivers/net/ethernet] Error 2 /build/stage/linux/drivers/media/i2c/ar0521.c: In function ‘ar0521_power_off’: /build/stage/linux/drivers/media/i2c/ar0521.c:850:17: error: implicit declaration of function ‘gpiod_set_value’ [-Werror=implicit-function-declaration] 850 | gpiod_set_value(sensor->reset_gpio, 1); /* assert RESET signal */ | ^~~~~~~~~~~~~~~ /build/stage/linux/drivers/media/i2c/ar0521.c: In function ‘ar0521_probe’: /build/stage/linux/drivers/media/i2c/ar0521.c:1114:30: error: implicit declaration of function ‘devm_gpiod_get_optional’; did you mean ‘devm_clk_get_optional’? [-Werror=implicit-function-declaration] 1114 | sensor->reset_gpio = devm_gpiod_get_optional(dev, "reset", | ^~~~~~~~~~~~~~~~~~~~~~~ | devm_clk_get_optional /build/stage/linux/drivers/media/i2c/ar0521.c:1115:54: error: ‘GPIOD_OUT_HIGH’ undeclared (first use in this function) 1115 | GPIOD_OUT_HIGH); | ^~~~~~~~~~~~~~ /build/stage/linux/drivers/media/i2c/ar0521.c:1115:54: note: each undeclared identifier is reported only once for each function it appears in cc1: all warnings being treated as errors make[6]: *** [/build/stage/linux/scripts/Makefile.build:243: drivers/media/i2c/ar0521.o] Error 1 make[6]: Target 'drivers/gpu/drm/' not remade because of errors. make[5]: *** [/build/stage/linux/scripts/Makefile.build:477: drivers/gpu/drm] Error 2 make[5]: Target 'drivers/gpu/' not remade because of errors. make[4]: *** [/build/stage/linux/scripts/Makefile.build:477: drivers/gpu] Error 2 /build/stage/linux/drivers/media/i2c/imx334.c: In function ‘imx334_parse_hw_config’: /build/stage/linux/drivers/media/i2c/imx334.c:1081:30: error: implicit declaration of function ‘devm_gpiod_get_optional’; did you mean ‘devm_clk_get_optional’? [-Werror=implicit-function-declaration] 1081 | imx334->reset_gpio = devm_gpiod_get_optional(imx334->dev, "reset", | ^~~~~~~~~~~~~~~~~~~~~~~ | devm_clk_get_optional /build/stage/linux/drivers/media/i2c/imx334.c:1082:54: error: ‘GPIOD_OUT_LOW’ undeclared (first use in this function) 1082 | GPIOD_OUT_LOW); | ^~~~~~~~~~~~~ /build/stage/linux/drivers/media/i2c/imx334.c:1082:54: note: each undeclared identifier is reported only once for each function it appears in /build/stage/linux/drivers/media/i2c/imx334.c: In function ‘imx334_power_on’: /build/stage/linux/drivers/media/i2c/imx334.c:1176:9: error: implicit declaration of function ‘gpiod_set_value_cansleep’ [-Werror=implicit-function-declaration] 1176 | gpiod_set_value_cansleep(imx334->reset_gpio, 1); | ^~~~~~~~~~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors make[6]: *** [/build/stage/linux/scripts/Makefile.build:243: drivers/media/i2c/imx334.o] Error 1 /build/stage/linux/drivers/media/i2c/imx335.c: In function ‘imx335_parse_hw_config’: /build/stage/linux/drivers/media/i2c/imx335.c:785:30: error: implicit declaration of function ‘devm_gpiod_get_optional’; did you mean ‘devm_clk_get_optional’? [-Werror=implicit-function-declaration] 785 | imx335->reset_gpio = devm_gpiod_get_optional(imx335->dev, "reset", | ^~~~~~~~~~~~~~~~~~~~~~~ | devm_clk_get_optional /build/stage/linux/drivers/media/i2c/imx335.c:786:54: error: ‘GPIOD_OUT_LOW’ undeclared (first use in this function) 786 | GPIOD_OUT_LOW); | ^~~~~~~~~~~~~ /build/stage/linux/drivers/media/i2c/imx335.c:786:54: note: each undeclared identifier is reported only once for each function it appears in /build/stage/linux/drivers/media/i2c/imx335.c: In function ‘imx335_power_on’: /build/stage/linux/drivers/media/i2c/imx335.c:871:9: error: implicit declaration of function ‘gpiod_set_value_cansleep’ [-Werror=implicit-function-declaration] 871 | gpiod_set_value_cansleep(imx335->reset_gpio, 1); | ^~~~~~~~~~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors make[6]: *** [/build/stage/linux/scripts/Makefile.build:243: drivers/media/i2c/imx335.o] Error 1 /build/stage/linux/drivers/media/i2c/imx412.c: In function ‘imx412_parse_hw_config’: /build/stage/linux/drivers/media/i2c/imx412.c:937:30: error: implicit declaration of function ‘devm_gpiod_get_optional’; did you mean ‘devm_clk_get_optional’? [-Werror=implicit-function-declaration] 937 | imx412->reset_gpio = devm_gpiod_get_optional(imx412->dev, "reset", | ^~~~~~~~~~~~~~~~~~~~~~~ | devm_clk_get_optional /build/stage/linux/drivers/media/i2c/imx412.c:938:54: error: ‘GPIOD_OUT_LOW’ undeclared (first use in this function) 938 | GPIOD_OUT_LOW); | ^~~~~~~~~~~~~ /build/stage/linux/drivers/media/i2c/imx412.c:938:54: note: each undeclared identifier is reported only once for each function it appears in /build/stage/linux/drivers/media/i2c/imx412.c: In function ‘imx412_power_on’: /build/stage/linux/drivers/media/i2c/imx412.c:1040:9: error: implicit declaration of function ‘gpiod_set_value_cansleep’ [-Werror=implicit-function-declaration] 1040 | gpiod_set_value_cansleep(imx412->reset_gpio, 0); | ^~~~~~~~~~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors make[6]: *** [/build/stage/linux/scripts/Makefile.build:243: drivers/media/i2c/imx412.o] Error 1 make[5]: Target 'drivers/net/' not remade because of errors. make[4]: *** [/build/stage/linux/scripts/Makefile.build:477: drivers/net] Error 2 /build/stage/linux/drivers/spi/spi-tegra114.c: In function ‘tegra_spi_setup_transfer_one’: /build/stage/linux/drivers/spi/spi-tegra114.c:835:25: error: implicit declaration of function ‘gpiod_set_value’ [-Werror=implicit-function-declaration] 835 | gpiod_set_value(spi_get_csgpiod(spi, 0), 1); | ^~~~~~~~~~~~~~~ cc1: all warnings being treated as errors make[5]: *** [/build/stage/linux/scripts/Makefile.build:243: drivers/spi/spi-tegra114.o] Error 1 make[5]: Target 'drivers/spi/' not remade because of errors. make[4]: *** [/build/stage/linux/scripts/Makefile.build:477: drivers/spi] Error 2 make[5]: Target 'sound/soc/' not remade because of errors. make[4]: *** [/build/stage/linux/scripts/Makefile.build:477: sound/soc] Error 2 make[4]: Target 'sound/' not remade because of errors. make[3]: *** [/build/stage/linux/scripts/Makefile.build:477: sound] Error 2 /build/stage/linux/drivers/media/i2c/ov5648.c: In function ‘ov5648_sensor_power’: /build/stage/linux/drivers/media/i2c/ov5648.c:1878:17: error: implicit declaration of function ‘gpiod_set_value_cansleep’ [-Werror=implicit-function-declaration] 1878 | gpiod_set_value_cansleep(sensor->reset, 1); | ^~~~~~~~~~~~~~~~~~~~~~~~ /build/stage/linux/drivers/media/i2c/ov5648.c: In function ‘ov5648_probe’: /build/stage/linux/drivers/media/i2c/ov5648.c:2476:29: error: implicit declaration of function ‘devm_gpiod_get_optional’; did you mean ‘devm_clk_get_optional’? [-Werror=implicit-function-declaration] 2476 | sensor->powerdown = devm_gpiod_get_optional(dev, "powerdown", | ^~~~~~~~~~~~~~~~~~~~~~~ | devm_clk_get_optional /build/stage/linux/drivers/media/i2c/ov5648.c:2477:53: error: ‘GPIOD_OUT_HIGH’ undeclared (first use in this function) 2477 | GPIOD_OUT_HIGH); | ^~~~~~~~~~~~~~ /build/stage/linux/drivers/media/i2c/ov5648.c:2477:53: note: each undeclared identifier is reported only once for each function it appears in cc1: all warnings being treated as errors make[6]: *** [/build/stage/linux/scripts/Makefile.build:243: drivers/media/i2c/ov5648.o] Error 1 /build/stage/linux/drivers/media/i2c/ov5693.c: In function ‘ov5693_sensor_powerdown’: /build/stage/linux/drivers/media/i2c/ov5693.c:793:9: error: implicit declaration of function ‘gpiod_set_value_cansleep’ [-Werror=implicit-function-declaration] 793 | gpiod_set_value_cansleep(ov5693->privacy_led, 0); | ^~~~~~~~~~~~~~~~~~~~~~~~ /build/stage/linux/drivers/media/i2c/ov5693.c: In function ‘ov5693_configure_gpios’: /build/stage/linux/drivers/media/i2c/ov5693.c:1317:25: error: implicit declaration of function ‘devm_gpiod_get_optional’; did you mean ‘devm_clk_get_optional’? [-Werror=implicit-function-declaration] 1317 | ov5693->reset = devm_gpiod_get_optional(ov5693->dev, "reset", | ^~~~~~~~~~~~~~~~~~~~~~~ | devm_clk_get_optional /build/stage/linux/drivers/media/i2c/ov5693.c:1318:49: error: ‘GPIOD_OUT_HIGH’ undeclared (first use in this function) 1318 | GPIOD_OUT_HIGH); | ^~~~~~~~~~~~~~ /build/stage/linux/drivers/media/i2c/ov5693.c:1318:49: note: each undeclared identifier is reported only once for each function it appears in /build/stage/linux/drivers/media/i2c/ov5693.c:1332:55: error: ‘GPIOD_OUT_LOW’ undeclared (first use in this function) 1332 | GPIOD_OUT_LOW); | ^~~~~~~~~~~~~ cc1: all warnings being treated as errors make[6]: *** [/build/stage/linux/scripts/Makefile.build:243: drivers/media/i2c/ov5693.o] Error 1 /build/stage/linux/drivers/media/i2c/ov8865.c: In function ‘ov8865_sensor_power’: /build/stage/linux/drivers/media/i2c/ov8865.c:2403:17: error: implicit declaration of function ‘gpiod_set_value_cansleep’ [-Werror=implicit-function-declaration] 2403 | gpiod_set_value_cansleep(sensor->reset, 1); | ^~~~~~~~~~~~~~~~~~~~~~~~ /build/stage/linux/drivers/media/i2c/ov9282.c: In function ‘ov9282_parse_hw_config’: /build/stage/linux/drivers/media/i2c/ov9282.c:1129:30: error: implicit declaration of function ‘devm_gpiod_get_optional’; did you mean ‘devm_clk_get_optional’? [-Werror=implicit-function-declaration] 1129 | ov9282->reset_gpio = devm_gpiod_get_optional(ov9282->dev, "reset", | ^~~~~~~~~~~~~~~~~~~~~~~ | devm_clk_get_optional /build/stage/linux/drivers/media/i2c/ov8865.c: In function ‘ov8865_probe’: /build/stage/linux/drivers/media/i2c/ov8865.c:2999:29: error: implicit declaration of function ‘devm_gpiod_get_optional’; did you mean ‘devm_clk_get_optional’? [-Werror=implicit-function-declaration] 2999 | sensor->powerdown = devm_gpiod_get_optional(dev, "powerdown", | ^~~~~~~~~~~~~~~~~~~~~~~ | devm_clk_get_optional /build/stage/linux/drivers/media/i2c/ov9282.c:1130:54: error: ‘GPIOD_OUT_LOW’ undeclared (first use in this function) 1130 | GPIOD_OUT_LOW); | ^~~~~~~~~~~~~ /build/stage/linux/drivers/media/i2c/ov9282.c:1130:54: note: each undeclared identifier is reported only once for each function it appears in /build/stage/linux/drivers/media/i2c/ov8865.c:3000:53: error: ‘GPIOD_OUT_HIGH’ undeclared (first use in this function) 3000 | GPIOD_OUT_HIGH); | ^~~~~~~~~~~~~~ /build/stage/linux/drivers/media/i2c/ov8865.c:3000:53: note: each undeclared identifier is reported only once for each function it appears in cc1: all warnings being treated as errors make[6]: *** [/build/stage/linux/scripts/Makefile.build:243: drivers/media/i2c/ov8865.o] Error 1 /build/stage/linux/drivers/media/i2c/ov9282.c: In function ‘ov9282_power_on’: /build/stage/linux/drivers/media/i2c/ov9282.c:1238:9: error: implicit declaration of function ‘gpiod_set_value_cansleep’ [-Werror=implicit-function-declaration] 1238 | gpiod_set_value_cansleep(ov9282->reset_gpio, 1); | ^~~~~~~~~~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors make[6]: *** [/build/stage/linux/scripts/Makefile.build:243: drivers/media/i2c/ov9282.o] Error 1 /build/stage/linux/drivers/staging/media/max96712/max96712.c: In function ‘max96712_probe’: /build/stage/linux/drivers/staging/media/max96712/max96712.c:411:28: error: implicit declaration of function ‘devm_gpiod_get_optional’; did you mean ‘devm_regulator_get_optional’? [-Werror=implicit-function-declaration] 411 | priv->gpiod_pwdn = devm_gpiod_get_optional(&client->dev, "enable", | ^~~~~~~~~~~~~~~~~~~~~~~ | devm_regulator_get_optional /build/stage/linux/drivers/staging/media/max96712/max96712.c:412:52: error: ‘GPIOD_OUT_HIGH’ undeclared (first use in this function) 412 | GPIOD_OUT_HIGH); | ^~~~~~~~~~~~~~ /build/stage/linux/drivers/staging/media/max96712/max96712.c:412:52: note: each undeclared identifier is reported only once for each function it appears in /build/stage/linux/drivers/staging/media/max96712/max96712.c:416:9: error: implicit declaration of function ‘gpiod_set_consumer_name’ [-Werror=implicit-function-declaration] 416 | gpiod_set_consumer_name(priv->gpiod_pwdn, "max96712-pwdn"); | ^~~~~~~~~~~~~~~~~~~~~~~ /build/stage/linux/drivers/staging/media/max96712/max96712.c:417:9: error: implicit declaration of function ‘gpiod_set_value_cansleep’ [-Werror=implicit-function-declaration] 417 | gpiod_set_value_cansleep(priv->gpiod_pwdn, 1); | ^~~~~~~~~~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors make[7]: *** [/build/stage/linux/scripts/Makefile.build:243: drivers/staging/media/max96712/max96712.o] Error 1 make[7]: Target 'drivers/staging/media/max96712/' not remade because of errors. make[6]: *** [/build/stage/linux/scripts/Makefile.build:477: drivers/staging/media/max96712] Error 2 /build/stage/linux/drivers/media/i2c/tc358746.c: In function ‘tc358746_probe’: /build/stage/linux/drivers/media/i2c/tc358746.c:1538:32: error: implicit declaration of function ‘devm_gpiod_get_optional’; did you mean ‘devm_clk_get_optional’? [-Werror=implicit-function-declaration] 1538 | tc358746->reset_gpio = devm_gpiod_get_optional(dev, "reset", | ^~~~~~~~~~~~~~~~~~~~~~~ | devm_clk_get_optional /build/stage/linux/drivers/media/i2c/tc358746.c:1539:56: error: ‘GPIOD_OUT_HIGH’ undeclared (first use in this function) 1539 | GPIOD_OUT_HIGH); | ^~~~~~~~~~~~~~ /build/stage/linux/drivers/media/i2c/tc358746.c:1539:56: note: each undeclared identifier is reported only once for each function it appears in /build/stage/linux/drivers/media/i2c/tc358746.c: In function ‘tc358746_resume’: /build/stage/linux/drivers/media/i2c/tc358746.c:1637:9: error: implicit declaration of function ‘gpiod_set_value’ [-Werror=implicit-function-declaration] 1637 | gpiod_set_value(tc358746->reset_gpio, 1); | ^~~~~~~~~~~~~~~ cc1: all warnings being treated as errors make[6]: *** [/build/stage/linux/scripts/Makefile.build:243: drivers/media/i2c/tc358746.o] Error 1 make[6]: Target 'drivers/media/i2c/' not remade because of errors. make[5]: *** [/build/stage/linux/scripts/Makefile.build:477: drivers/media/i2c] Error 2 make[6]: Target 'drivers/staging/media/' not remade because of errors. make[5]: *** [/build/stage/linux/scripts/Makefile.build:477: drivers/staging/media] Error 2 make[5]: Target 'drivers/staging/' not remade because of errors. make[4]: *** [/build/stage/linux/scripts/Makefile.build:477: drivers/staging] Error 2 make[5]: Target 'drivers/media/' not remade because of errors. make[4]: *** [/build/stage/linux/scripts/Makefile.build:477: drivers/media] Error 2 /build/stage/linux/drivers/iio/amplifiers/ada4250.c: In function ‘ada4250_init’: /build/stage/linux/drivers/iio/amplifiers/ada4250.c:307:25: error: implicit declaration of function ‘device_property_read_bool’ [-Werror=implicit-function-declaration] 307 | st->refbuf_en = device_property_read_bool(&spi->dev, "adi,refbuf-enable"); | ^~~~~~~~~~~~~~~~~~~~~~~~~ /build/stage/linux/drivers/iio/addac/ad74413r.c: In function ‘ad74413r_reset’: /build/stage/linux/drivers/iio/addac/ad74413r.c:413:17: error: implicit declaration of function ‘gpiod_set_value_cansleep’ [-Werror=implicit-function-declaration] 413 | gpiod_set_value_cansleep(st->reset_gpio, 1); | ^~~~~~~~~~~~~~~~~~~~~~~~ /build/stage/linux/drivers/iio/addac/ad74115.c: In function ‘ad74115_reset’: /build/stage/linux/drivers/iio/addac/ad74115.c:1765:22: error: implicit declaration of function ‘devm_gpiod_get_optional’; did you mean ‘devm_regulator_get_optional’? [-Werror=implicit-function-declaration] 1765 | reset_gpio = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_HIGH); | ^~~~~~~~~~~~~~~~~~~~~~~ | devm_regulator_get_optional cc1: all warnings being treated as errors /build/stage/linux/drivers/iio/addac/ad74115.c:1765:60: error: ‘GPIOD_OUT_HIGH’ undeclared (first use in this function) 1765 | reset_gpio = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_HIGH); | ^~~~~~~~~~~~~~ /build/stage/linux/drivers/iio/addac/ad74115.c:1765:60: note: each undeclared identifier is reported only once for each function it appears in make[6]: *** [/build/stage/linux/scripts/Makefile.build:243: drivers/iio/amplifiers/ada4250.o] Error 1 make[6]: Target 'drivers/iio/amplifiers/' not remade because of errors. make[5]: *** [/build/stage/linux/scripts/Makefile.build:477: drivers/iio/amplifiers] Error 2 /build/stage/linux/drivers/iio/addac/ad74413r.c: In function ‘ad74413r_probe’: /build/stage/linux/drivers/iio/addac/ad74413r.c:1375:26: error: implicit declaration of function ‘devm_gpiod_get_optional’; did you mean ‘devm_regulator_get_optional’? [-Werror=implicit-function-declaration] 1375 | st->reset_gpio = devm_gpiod_get_optional(st->dev, "reset", GPIOD_OUT_LOW); | ^~~~~~~~~~~~~~~~~~~~~~~ | devm_regulator_get_optional /build/stage/linux/drivers/iio/addac/ad74413r.c:1375:68: error: ‘GPIOD_OUT_LOW’ undeclared (first use in this function) 1375 | st->reset_gpio = devm_gpiod_get_optional(st->dev, "reset", GPIOD_OUT_LOW); | ^~~~~~~~~~~~~ /build/stage/linux/drivers/iio/addac/ad74413r.c:1375:68: note: each undeclared identifier is reported only once for each function it appears in cc1: all warnings being treated as errors make[6]: *** [/build/stage/linux/scripts/Makefile.build:243: drivers/iio/addac/ad74413r.o] Error 1 /build/stage/linux/drivers/iio/addac/ad74115.c:1773:17: error: implicit declaration of function ‘gpiod_set_value_cansleep’ [-Werror=implicit-function-declaration] 1773 | gpiod_set_value_cansleep(reset_gpio, 0); | ^~~~~~~~~~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors make[6]: *** [/build/stage/linux/scripts/Makefile.build:243: drivers/iio/addac/ad74115.o] Error 1 make[6]: Target 'drivers/iio/addac/' not remade because of errors. make[5]: *** [/build/stage/linux/scripts/Makefile.build:477: drivers/iio/addac] Error 2 /build/stage/linux/drivers/iio/dac/ad3552r.c: In function ‘ad3552r_trigger_hw_ldac’: /build/stage/linux/drivers/iio/dac/ad3552r.c:521:9: error: implicit declaration of function ‘gpiod_set_value_cansleep’ [-Werror=implicit-function-declaration] 521 | gpiod_set_value_cansleep(ldac, 0); | ^~~~~~~~~~~~~~~~~~~~~~~~ /build/stage/linux/drivers/iio/dac/ad3552r.c: In function ‘ad3552r_reset’: /build/stage/linux/drivers/iio/dac/ad3552r.c:661:27: error: implicit declaration of function ‘devm_gpiod_get_optional’; did you mean ‘devm_regulator_get_optional’? [-Werror=implicit-function-declaration] 661 | dac->gpio_reset = devm_gpiod_get_optional(&dac->spi->dev, "reset", | ^~~~~~~~~~~~~~~~~~~~~~~ | devm_regulator_get_optional /build/stage/linux/drivers/iio/dac/ad3552r.c:662:51: error: ‘GPIOD_OUT_LOW’ undeclared (first use in this function) 662 | GPIOD_OUT_LOW); | ^~~~~~~~~~~~~ /build/stage/linux/drivers/iio/dac/ad3552r.c:662:51: note: each undeclared identifier is reported only once for each function it appears in /build/stage/linux/drivers/iio/dac/ad3552r.c: In function ‘ad3552r_configure_custom_gain’: /build/stage/linux/drivers/iio/dac/ad3552r.c:810:22: error: implicit declaration of function ‘fwnode_get_named_child_node’ [-Werror=implicit-function-declaration] 810 | gain_child = fwnode_get_named_child_node(child, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ /build/stage/linux/drivers/iio/dac/ad3552r.c:810:20: error: assignment to ‘struct fwnode_handle *’ from ‘int’ makes pointer from integer without a cast [-Werror=int-conversion] 810 | gain_child = fwnode_get_named_child_node(child, | ^ /build/stage/linux/drivers/iio/dac/ad3552r.c:821:15: error: implicit declaration of function ‘fwnode_property_read_u32’ [-Werror=implicit-function-declaration] 821 | err = fwnode_property_read_u32(gain_child, "adi,gain-scaling-p", &val); | ^~~~~~~~~~~~~~~~~~~~~~~~ /build/stage/linux/drivers/iio/dac/ad3552r.c:870:9: error: implicit declaration of function ‘fwnode_handle_put’ [-Werror=implicit-function-declaration] 870 | fwnode_handle_put(gain_child); | ^~~~~~~~~~~~~~~~~ /build/stage/linux/drivers/iio/dac/ad3552r.c: In function ‘ad3552r_configure_device’: /build/stage/linux/drivers/iio/dac/ad3552r.c:888:63: error: ‘GPIOD_OUT_HIGH’ undeclared (first use in this function) 888 | dac->gpio_ldac = devm_gpiod_get_optional(dev, "ldac", GPIOD_OUT_HIGH); | ^~~~~~~~~~~~~~ /build/stage/linux/drivers/iio/dac/ad3552r.c:899:21: error: implicit declaration of function ‘device_property_read_bool’ [-Werror=implicit-function-declaration] 899 | if (device_property_read_bool(dev, "adi,vref-out-en")) | ^~~~~~~~~~~~~~~~~~~~~~~~~ /build/stage/linux/drivers/iio/dac/ad3552r.c:931:15: error: implicit declaration of function ‘device_property_read_u32’ [-Werror=implicit-function-declaration] 931 | err = device_property_read_u32(dev, "adi,sdo-drive-strength", &val); | ^~~~~~~~~~~~~~~~~~~~~~~~ /build/stage/linux/drivers/iio/dac/ad3552r.c:946:23: error: implicit declaration of function ‘device_get_child_node_count’ [-Werror=implicit-function-declaration] 946 | dac->num_ch = device_get_child_node_count(dev); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ /build/stage/linux/drivers/iio/dac/ad3552r.c:952:9: error: implicit declaration of function ‘device_for_each_child_node’; did you mean ‘device_for_each_child’? [-Werror=implicit-function-declaration] 952 | device_for_each_child_node(dev, child) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~ | device_for_each_child /build/stage/linux/drivers/iio/dac/ad3552r.c:952:47: error: expected ‘;’ before ‘{’ token 952 | device_for_each_child_node(dev, child) { | ^~ | ; /build/stage/linux/drivers/iio/dac/ad3552r.c:1024:1: error: label ‘put_child’ defined but not used [-Werror=unused-label] 1024 | put_child: | ^~~~~~~~~ /build/stage/linux/drivers/iio/dac/ad3552r.c:886:27: error: unused variable ‘ch’ [-Werror=unused-variable] 886 | u32 vals[2], val, ch; | ^~ /build/stage/linux/drivers/iio/dac/ad3552r.c:886:13: error: unused variable ‘vals’ [-Werror=unused-variable] 886 | u32 vals[2], val, ch; | ^~~~ /build/stage/linux/drivers/iio/dac/ad3552r.c:885:18: error: unused variable ‘cnt’ [-Werror=unused-variable] 885 | int err, cnt = 0, voltage, delta = 100000; | ^~~ /build/stage/linux/drivers/iio/dac/ad3552r.c: At top level: /build/stage/linux/drivers/iio/dac/ad3552r.c:799:12: error: ‘ad3552r_configure_custom_gain’ defined but not used [-Werror=unused-function] 799 | static int ad3552r_configure_custom_gain(struct ad3552r_desc *dac, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /build/stage/linux/drivers/iio/dac/ad3552r.c:778:12: error: ‘ad3552r_find_range’ defined but not used [-Werror=unused-function] 778 | static int ad3552r_find_range(u16 id, s32 *vals) | ^~~~~~~~~~~~~~~~~~ /build/stage/linux/drivers/iio/dac/ad3552r.c:738:13: error: ‘ad3552r_calc_gain_and_offset’ defined but not used [-Werror=unused-function] 738 | static void ad3552r_calc_gain_and_offset(struct ad3552r_desc *dac, s32 ch) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors make[6]: *** [/build/stage/linux/scripts/Makefile.build:243: drivers/iio/dac/ad3552r.o] Error 1 /build/stage/linux/drivers/iio/adc/ad7280a.c: In function ‘ad7280_probe’: /build/stage/linux/drivers/iio/adc/ad7280a.c:974:17: error: implicit declaration of function ‘device_property_read_bool’ [-Werror=implicit-function-declaration] 974 | device_property_read_bool(dev, "adi,thermistor-termination"); | ^~~~~~~~~~~~~~~~~~~~~~~~~ /build/stage/linux/drivers/iio/adc/ad7280a.c:976:13: error: implicit declaration of function ‘device_property_present’ [-Werror=implicit-function-declaration] 976 | if (device_property_present(dev, "adi,acquisition-time-ns")) { | ^~~~~~~~~~~~~~~~~~~~~~~ /build/stage/linux/drivers/iio/adc/ad7280a.c:979:23: error: implicit declaration of function ‘device_property_read_u32’ [-Werror=implicit-function-declaration] 979 | ret = device_property_read_u32(dev, "adi,acquisition-time-ns", &val); | ^~~~~~~~~~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors make[6]: *** [/build/stage/linux/scripts/Makefile.build:243: drivers/iio/adc/ad7280a.o] Error 1 /build/stage/linux/drivers/iio/frequency/adf4371.c: In function ‘adf4371_setup’: /build/stage/linux/drivers/iio/frequency/adf4371.c:492:13: error: implicit declaration of function ‘device_property_read_bool’ [-Werror=implicit-function-declaration] 492 | if (device_property_read_bool(&st->spi->dev, "adi,mute-till-lock-en")) { | ^~~~~~~~~~~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors make[6]: *** [/build/stage/linux/scripts/Makefile.build:243: drivers/iio/frequency/adf4371.o] Error 1 /build/stage/linux/drivers/iio/adc/ad7606_spi.c: In function ‘ad7606B_sw_mode_config’: /build/stage/linux/drivers/iio/adc/ad7606_spi.c:261:17: error: implicit declaration of function ‘gpiod_set_array_value’ [-Werror=implicit-function-declaration] 261 | gpiod_set_array_value(ARRAY_SIZE(os), | ^~~~~~~~~~~~~~~~~~~~~ /build/stage/linux/drivers/iio/adc/ad7606_spi.c:262:50: error: invalid use of undefined type ‘struct gpio_descs’ 262 | st->gpio_os->desc, st->gpio_os->info, os); | ^~ /build/stage/linux/drivers/iio/adc/ad7606_spi.c:262:69: error: invalid use of undefined type ‘struct gpio_descs’ 262 | st->gpio_os->desc, st->gpio_os->info, os); | ^~ cc1: all warnings being treated as errors make[6]: *** [/build/stage/linux/scripts/Makefile.build:243: drivers/iio/adc/ad7606_spi.o] Error 1 /build/stage/linux/drivers/iio/adc/ad7768-1.c: In function ‘ad7768_set_channel_label’: /build/stage/linux/drivers/iio/adc/ad7768-1.c:552:18: error: implicit declaration of function ‘dev_fwnode’; did you mean ‘dev_of_node’? [-Werror=implicit-function-declaration] 552 | fwnode = dev_fwnode(device); | ^~~~~~~~~~ | dev_of_node /build/stage/linux/drivers/iio/adc/ad7768-1.c:552:16: error: assignment to ‘struct fwnode_handle *’ from ‘int’ makes pointer from integer without a cast [-Werror=int-conversion] 552 | fwnode = dev_fwnode(device); | ^ /build/stage/linux/drivers/iio/dac/ad5766.c: In function ‘ad5766_get_output_range’: /build/stage/linux/drivers/iio/dac/ad5766.c:500:15: error: implicit declaration of function ‘device_property_read_u32_array’ [-Werror=implicit-function-declaration] 500 | ret = device_property_read_u32_array(&st->spi->dev, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /build/stage/linux/drivers/iio/adc/ad7768-1.c:553:9: error: implicit declaration of function ‘fwnode_for_each_child_node’ [-Werror=implicit-function-declaration] 553 | fwnode_for_each_child_node(fwnode, child) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~ /build/stage/linux/drivers/iio/adc/ad7768-1.c:553:50: error: expected ‘;’ before ‘{’ token 553 | fwnode_for_each_child_node(fwnode, child) { | ^~ | ; /build/stage/linux/drivers/iio/adc/ad7768-1.c:550:13: error: unused variable ‘crt_ch’ [-Werror=unused-variable] 550 | int crt_ch = 0; | ^~~~~~ /build/stage/linux/drivers/iio/adc/ad7768-1.c:549:21: error: unused variable ‘label’ [-Werror=unused-variable] 549 | const char *label; | ^~~~~ /build/stage/linux/drivers/iio/adc/ad7768-1.c:545:30: error: unused variable ‘st’ [-Werror=unused-variable] 545 | struct ad7768_state *st = iio_priv(indio_dev); | ^~ /build/stage/linux/drivers/iio/adc/ad7768-1.c:567:1: error: no return statement in function returning non-void [-Werror=return-type] 567 | } | ^ cc1: all warnings being treated as errors make[6]: *** [/build/stage/linux/scripts/Makefile.build:243: drivers/iio/adc/ad7768-1.o] Error 1 cc1: all warnings being treated as errors make[6]: *** [/build/stage/linux/scripts/Makefile.build:243: drivers/iio/dac/ad5766.o] Error 1 /build/stage/linux/drivers/iio/frequency/admv4420.c: In function ‘admv4420_fw_parse’: /build/stage/linux/drivers/iio/frequency/admv4420.c:194:15: error: implicit declaration of function ‘device_property_read_u32’ [-Werror=implicit-function-declaration] 194 | ret = device_property_read_u32(dev, "adi,lo-freq-khz", &tmp); | ^~~~~~~~~~~~~~~~~~~~~~~~ /build/stage/linux/drivers/iio/frequency/admv4420.c:198:42: error: implicit declaration of function ‘device_property_read_bool’ [-Werror=implicit-function-declaration] 198 | st->ref_block.ref_single_ended = device_property_read_bool(dev, | ^~~~~~~~~~~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors make[6]: *** [/build/stage/linux/scripts/Makefile.build:243: drivers/iio/frequency/admv4420.o] Error 1 /build/stage/linux/drivers/iio/adc/ad7949.c: In function ‘ad7949_spi_probe’: /build/stage/linux/drivers/iio/adc/ad7949.c:353:9: error: implicit declaration of function ‘device_property_read_u32’ [-Werror=implicit-function-declaration] 353 | device_property_read_u32(dev, "adi,internal-ref-microvolt", &tmp); | ^~~~~~~~~~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors make[6]: *** [/build/stage/linux/scripts/Makefile.build:243: drivers/iio/adc/ad7949.o] Error 1 make[6]: Target 'drivers/iio/frequency/' not remade because of errors. make[5]: *** [/build/stage/linux/scripts/Makefile.build:477: drivers/iio/frequency] Error 2 /build/stage/linux/drivers/iio/pressure/bmp280-spi.c: In function ‘bmp280_spi_probe’: /build/stage/linux/drivers/iio/pressure/bmp280-spi.c:61:21: error: implicit declaration of function ‘device_get_match_data’; did you mean ‘device_match_any’? [-Werror=implicit-function-declaration] 61 | chip_info = device_get_match_data(&spi->dev); | ^~~~~~~~~~~~~~~~~~~~~ | device_match_any /build/stage/linux/drivers/iio/pressure/bmp280-spi.c:61:19: error: assignment to ‘const struct bmp280_chip_info *’ from ‘int’ makes pointer from integer without a cast [-Werror=int-conversion] 61 | chip_info = device_get_match_data(&spi->dev); | ^ cc1: all warnings being treated as errors make[6]: *** [/build/stage/linux/scripts/Makefile.build:243: drivers/iio/pressure/bmp280-spi.o] Error 1 /build/stage/linux/drivers/iio/proximity/as3935.c: In function ‘as3935_probe’: /build/stage/linux/drivers/iio/proximity/as3935.c:366:15: error: implicit declaration of function ‘device_property_read_u32’ [-Werror=implicit-function-declaration] 366 | ret = device_property_read_u32(dev, | ^~~~~~~~~~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors make[6]: *** [/build/stage/linux/scripts/Makefile.build:243: drivers/iio/proximity/as3935.o] Error 1 make[6]: Target 'drivers/iio/proximity/' not remade because of errors. make[5]: *** [/build/stage/linux/scripts/Makefile.build:477: drivers/iio/proximity] Error 2 /build/stage/linux/drivers/iio/temperature/ltc2983.c: In function ‘ltc2983_probe’: /build/stage/linux/drivers/iio/temperature/ltc2983.c:1639:16: error: implicit declaration of function ‘devm_gpiod_get_optional’ [-Werror=implicit-function-declaration] 1639 | gpio = devm_gpiod_get_optional(&st->spi->dev, "reset", GPIOD_OUT_HIGH); | ^~~~~~~~~~~~~~~~~~~~~~~ /build/stage/linux/drivers/iio/temperature/ltc2983.c:1639:64: error: ‘GPIOD_OUT_HIGH’ undeclared (first use in this function) 1639 | gpio = devm_gpiod_get_optional(&st->spi->dev, "reset", GPIOD_OUT_HIGH); | ^~~~~~~~~~~~~~ /build/stage/linux/drivers/iio/temperature/ltc2983.c:1639:64: note: each undeclared identifier is reported only once for each function it appears in /build/stage/linux/drivers/iio/temperature/ltc2983.c:1646:17: error: implicit declaration of function ‘gpiod_set_value_cansleep’ [-Werror=implicit-function-declaration] 1646 | gpiod_set_value_cansleep(gpio, 0); | ^~~~~~~~~~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors make[6]: *** [/build/stage/linux/scripts/Makefile.build:243: drivers/iio/temperature/ltc2983.o] Error 1 make[6]: Target 'drivers/iio/temperature/' not remade because of errors. make[5]: *** [/build/stage/linux/scripts/Makefile.build:477: drivers/iio/temperature] Error 2 /build/stage/linux/drivers/iio/dac/max5522.c: In function ‘max5522_spi_probe’: /build/stage/linux/drivers/iio/dac/max5522.c:147:28: error: implicit declaration of function ‘device_get_match_data’; did you mean ‘device_match_any’? [-Werror=implicit-function-declaration] 147 | state->chip_info = device_get_match_data(&spi->dev); | ^~~~~~~~~~~~~~~~~~~~~ | device_match_any /build/stage/linux/drivers/iio/dac/max5522.c:147:26: error: assignment to ‘const struct max5522_chip_info *’ from ‘int’ makes pointer from integer without a cast [-Werror=int-conversion] 147 | state->chip_info = device_get_match_data(&spi->dev); | ^ cc1: all warnings being treated as errors make[6]: *** [/build/stage/linux/scripts/Makefile.build:243: drivers/iio/dac/max5522.o] Error 1 make[6]: Target 'drivers/iio/dac/' not remade because of errors. make[5]: *** [/build/stage/linux/scripts/Makefile.build:477: drivers/iio/dac] Error 2 /build/stage/linux/drivers/iio/adc/max11205.c: In function ‘max11205_probe’: /build/stage/linux/drivers/iio/adc/max11205.c:119:25: error: implicit declaration of function ‘device_get_match_data’; did you mean ‘device_match_any’? [-Werror=implicit-function-declaration] 119 | st->chip_info = device_get_match_data(&spi->dev); | ^~~~~~~~~~~~~~~~~~~~~ | device_match_any /build/stage/linux/drivers/iio/adc/max11205.c:119:23: error: assignment to ‘const struct max11205_chip_info *’ from ‘int’ makes pointer from integer without a cast [-Werror=int-conversion] 119 | st->chip_info = device_get_match_data(&spi->dev); | ^ cc1: all warnings being treated as errors make[6]: *** [/build/stage/linux/scripts/Makefile.build:243: drivers/iio/adc/max11205.o] Error 1 /build/stage/linux/drivers/iio/adc/max11410.c: In function ‘max11410_parse_channels’: /build/stage/linux/drivers/iio/adc/max11410.c:707:18: error: implicit declaration of function ‘device_get_child_node_count’ [-Werror=implicit-function-declaration] 707 | num_ch = device_get_child_node_count(dev); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ /build/stage/linux/drivers/iio/adc/max11410.c:723:9: error: implicit declaration of function ‘device_for_each_child_node’; did you mean ‘device_for_each_child’? [-Werror=implicit-function-declaration] 723 | device_for_each_child_node(dev, child) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~ | device_for_each_child /build/stage/linux/drivers/iio/adc/max11410.c:723:47: error: expected ‘;’ before ‘{’ token 723 | device_for_each_child_node(dev, child) { | ^~ | ; /build/stage/linux/drivers/iio/adc/max11410.c:705:18: error: unused variable ‘i’ [-Werror=unused-variable] 705 | int ret, i; | ^ /build/stage/linux/drivers/iio/adc/max11410.c:705:13: error: unused variable ‘ret’ [-Werror=unused-variable] 705 | int ret, i; | ^~~ /build/stage/linux/drivers/iio/adc/max11410.c:702:24: error: unused variable ‘scale’ [-Werror=unused-variable] 702 | u32 inputs[2], scale; | ^~~~~ /build/stage/linux/drivers/iio/adc/max11410.c:702:13: error: unused variable ‘inputs’ [-Werror=unused-variable] 702 | u32 inputs[2], scale; | ^~~~~~ /build/stage/linux/drivers/iio/adc/max11410.c:701:21: error: unused variable ‘node_name’ [-Werror=unused-variable] 701 | const char *node_name; | ^~~~~~~~~ /build/stage/linux/drivers/iio/adc/max11410.c:700:24: error: unused variable ‘sig_path’ [-Werror=unused-variable] 700 | u32 reference, sig_path; | ^~~~~~~~ /build/stage/linux/drivers/iio/adc/max11410.c:700:13: error: unused variable ‘reference’ [-Werror=unused-variable] 700 | u32 reference, sig_path; | ^~~~~~~~~ /build/stage/linux/drivers/iio/adc/max11410.c:697:41: error: unused variable ‘cfg’ [-Werror=unused-variable] 697 | struct max11410_channel_config *cfg; | ^~~ /build/stage/linux/drivers/iio/adc/max11410.c:695:30: error: unused variable ‘chanspec’ [-Werror=unused-variable] 695 | struct iio_chan_spec chanspec = chanspec_template; | ^~~~~~~~ /build/stage/linux/drivers/iio/adc/max11410.c: In function ‘max11410_probe’: /build/stage/linux/drivers/iio/adc/max11410.c:976:19: error: implicit declaration of function ‘fwnode_irq_get_byname’ [-Werror=implicit-function-declaration] 976 | irqs[0] = fwnode_irq_get_byname(dev_fwnode(dev), "gpio0"); | ^~~~~~~~~~~~~~~~~~~~~ /build/stage/linux/drivers/iio/adc/max11410.c:976:41: error: implicit declaration of function ‘dev_fwnode’; did you mean ‘dev_of_node’? [-Werror=implicit-function-declaration] 976 | irqs[0] = fwnode_irq_get_byname(dev_fwnode(dev), "gpio0"); | ^~~~~~~~~~ | dev_of_node cc1: all warnings being treated as errors make[6]: Target 'drivers/iio/pressure/' not remade because of errors. make[5]: *** [/build/stage/linux/scripts/Makefile.build:477: drivers/iio/pressure] Error 2 make[6]: *** [/build/stage/linux/scripts/Makefile.build:243: drivers/iio/adc/max11410.o] Error 1 /build/stage/linux/drivers/iio/adc/ti-lmp92064.c: In function ‘lmp92064_adc_probe’: /build/stage/linux/drivers/iio/adc/ti-lmp92064.c:265:15: error: implicit declaration of function ‘device_property_read_u32’ [-Werror=implicit-function-declaration] 265 | ret = device_property_read_u32(dev, "shunt-resistor-micro-ohms", | ^~~~~~~~~~~~~~~~~~~~~~~~ /build/stage/linux/drivers/iio/adc/ti-ads131e08.c: In function ‘ads131e08_alloc_channels’: /build/stage/linux/drivers/iio/adc/ti-ads131e08.c:701:15: error: implicit declaration of function ‘device_property_read_u32’ [-Werror=implicit-function-declaration] 701 | ret = device_property_read_u32(dev, "ti,vref-internal", &tmp); | ^~~~~~~~~~~~~~~~~~~~~~~~ /build/stage/linux/drivers/iio/adc/ti-tsc2046.c: In function ‘tsc2046_adc_parse_fwnode’: /build/stage/linux/drivers/iio/adc/ti-tsc2046.c:721:9: error: implicit declaration of function ‘device_for_each_child_node’; did you mean ‘device_for_each_child’? [-Werror=implicit-function-declaration] 721 | device_for_each_child_node(dev, child) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~ | device_for_each_child /build/stage/linux/drivers/iio/adc/ti-tsc2046.c:721:47: error: expected ‘;’ before ‘{’ token 721 | device_for_each_child_node(dev, child) { | ^~ | ; cc1: all warnings being treated as errors make[6]: *** [/build/stage/linux/scripts/Makefile.build:243: drivers/iio/adc/ti-lmp92064.o] Error 1 /build/stage/linux/drivers/iio/adc/ti-tsc2046.c: In function ‘tsc2046_adc_probe’: /build/stage/linux/drivers/iio/adc/ti-tsc2046.c:807:16: error: implicit declaration of function ‘device_get_match_data’; did you mean ‘device_match_any’? [-Werror=implicit-function-declaration] 807 | dcfg = device_get_match_data(dev); | ^~~~~~~~~~~~~~~~~~~~~ | device_match_any /build/stage/linux/drivers/iio/adc/ti-tsc2046.c:807:14: error: assignment to ‘const struct tsc2046_adc_dcfg *’ from ‘int’ makes pointer from integer without a cast [-Werror=int-conversion] 807 | dcfg = device_get_match_data(dev); | ^ /build/stage/linux/drivers/iio/adc/ti-ads131e08.c:717:24: error: implicit declaration of function ‘device_get_child_node_count’ [-Werror=implicit-function-declaration] 717 | num_channels = device_get_child_node_count(dev); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors make[6]: *** [/build/stage/linux/scripts/Makefile.build:243: drivers/iio/adc/ti-tsc2046.o] Error 1 /build/stage/linux/drivers/iio/adc/ti-ads131e08.c:739:9: error: implicit declaration of function ‘device_for_each_child_node’; did you mean ‘device_for_each_child’? [-Werror=implicit-function-declaration] 739 | device_for_each_child_node(dev, node) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~ | device_for_each_child /build/stage/linux/drivers/iio/adc/ti-ads131e08.c:739:46: error: expected ‘;’ before ‘{’ token 739 | device_for_each_child_node(dev, node) { | ^~ | ; /build/stage/linux/drivers/iio/adc/ti-ads131e08.c:789:9: error: implicit declaration of function ‘fwnode_handle_put’ [-Werror=implicit-function-declaration] 789 | fwnode_handle_put(node); | ^~~~~~~~~~~~~~~~~ /build/stage/linux/drivers/iio/adc/ti-ads131e08.c:788:1: error: label ‘err_child_out’ defined but not used [-Werror=unused-label] 788 | err_child_out: | ^~~~~~~~~~~~~ /build/stage/linux/drivers/iio/adc/ti-ads131e08.c:698:22: error: unused variable ‘channel’ [-Werror=unused-variable] 698 | unsigned int channel, tmp; | ^~~~~~~ /build/stage/linux/drivers/iio/adc/ti-ads131e08.c: In function ‘ads131e08_probe’: /build/stage/linux/drivers/iio/adc/ti-ads131e08.c:809:16: error: implicit declaration of function ‘device_get_match_data’; did you mean ‘device_match_any’? [-Werror=implicit-function-declaration] 809 | info = device_get_match_data(&spi->dev); | ^~~~~~~~~~~~~~~~~~~~~ | device_match_any /build/stage/linux/drivers/iio/adc/ti-ads131e08.c:809:14: error: assignment to ‘const struct ads131e08_info *’ from ‘int’ makes pointer from integer without a cast [-Werror=int-conversion] 809 | info = device_get_match_data(&spi->dev); | ^ /build/stage/linux/drivers/iio/adc/ti-ads131e08.c: At top level: /build/stage/linux/drivers/iio/adc/ti-ads131e08.c:320:12: error: ‘ads131e08_validate_channel_mux’ defined but not used [-Werror=unused-function] 320 | static int ads131e08_validate_channel_mux(struct ads131e08_state *st, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors make[6]: *** [/build/stage/linux/scripts/Makefile.build:243: drivers/iio/adc/ti-ads131e08.o] Error 1 make[6]: Target 'drivers/iio/adc/' not remade because of errors. make[5]: *** [/build/stage/linux/scripts/Makefile.build:477: drivers/iio/adc] Error 2 make[5]: Target 'drivers/iio/' not remade because of errors. make[4]: *** [/build/stage/linux/scripts/Makefile.build:477: drivers/iio] Error 2 make[4]: Target 'drivers/' not remade because of errors. make[3]: *** [/build/stage/linux/scripts/Makefile.build:477: drivers] Error 2 make[3]: Target './' not remade because of errors. make[2]: *** [/build/stage/linux/Makefile:2020: .] Error 2 make[2]: Target '__all' not remade because of errors. make[1]: *** [/build/stage/linux/Makefile:234: __sub-make] Error 2 make[1]: Target '__all' not remade because of errors.
On Tue, Jul 11, 2023 at 09:26:46AM +0100, Mark Brown wrote: > On Mon, Jul 10, 2023 at 06:49:25PM +0300, Andy Shevchenko wrote: > > There is a few things done: > > - include only the headers we are direct user of > > - when pointer is in use, provide a forward declaration > > - add missing headers > > - group generic headers and subsystem headers > > - sort each group alphabetically > > This breaks an x86 allmodconfig build: Yeah, it was too brave to go. That's actually the answer why I left mod_devicetable.h included. (However the mod_devicetable.h probably should stay to be similar to i2c.h. Let's postpone this one, but it's good to have the build report so we know which drivers are missing GPIO header to be included.
On Mon, Jul 10, 2023 at 06:21:44PM +0100, Mark Brown wrote: > On Mon, Jul 10, 2023 at 06:49:25PM +0300, Andy Shevchenko wrote: > > There is a few things done: > > - include only the headers we are direct user of > > - when pointer is in use, provide a forward declaration > > - add missing headers > > - group generic headers and subsystem headers > > - sort each group alphabetically > > The previous commit was supposed to be sorting things and AFAICT did > so... This is about forward declaration groups. > > +struct spi_device_id; > > Why are we adding this given that there's also an inclusion of > mod_devicetable that you didn't remove? Answered in the other email.
diff --git a/include/linux/spi/spi.h b/include/linux/spi/spi.h index 2026eae97329..c9479badf38c 100644 --- a/include/linux/spi/spi.h +++ b/include/linux/spi/spi.h @@ -6,27 +6,41 @@ #ifndef __LINUX_SPI_H #define __LINUX_SPI_H -#include <linux/acpi.h> #include <linux/bits.h> #include <linux/completion.h> +#include <linux/container_of.h> #include <linux/device.h> -#include <linux/gpio/consumer.h> +#include <linux/export.h> #include <linux/kthread.h> +#include <linux/limits.h> +#include <linux/list.h> +#include <linux/minmax.h> #include <linux/mod_devicetable.h> +#include <linux/mutex.h> #include <linux/scatterlist.h> #include <linux/slab.h> +#include <linux/smp.h> +#include <linux/spinlock_types.h> +#include <linux/string.h> +#include <linux/types.h> #include <linux/u64_stats_sync.h> +#include <asm/byteorder.h> + #include <uapi/linux/spi/spi.h> +struct acpi_device; struct dma_chan; -struct software_node; +struct gpio_desc; struct ptp_system_timestamp; +struct software_node; + struct spi_controller; -struct spi_transfer; struct spi_controller_mem_ops; struct spi_controller_mem_caps; +struct spi_device_id; struct spi_message; +struct spi_transfer; /* * INTERFACES between SPI master-side drivers and SPI slave protocol handlers,
There is a few things done: - include only the headers we are direct user of - when pointer is in use, provide a forward declaration - add missing headers - group generic headers and subsystem headers - sort each group alphabetically Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> --- include/linux/spi/spi.h | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-)