On Thu, Mar 23, 2023 at 12:29:13PM +1100, Stephen Rothwell wrote: > Hi all, > > After merging the gpio-brgl tree, today's linux-next build (x86_64 > allmodconfig) failed like this: > > drivers/gpio/gpio-pci-idio-16.c:32:30: error: field 'state' has incomplete type > 32 | struct idio_16_state state; > | ^~~~~ > drivers/gpio/gpio-pci-idio-16.c: In function 'idio_16_gpio_get_direction': > drivers/gpio/gpio-pci-idio-16.c:39:13: error: implicit declaration of function 'idio_16_get_direction'; did you mean 'idio_16_gpio_get_direction'? [-Werror=implicit-function-declaration] > 39 | if (idio_16_get_direction(offset)) > | ^~~~~~~~~~~~~~~~~~~~~ > | idio_16_gpio_get_direction > drivers/gpio/gpio-pci-idio-16.c: In function 'idio_16_gpio_get': > drivers/gpio/gpio-pci-idio-16.c:62:16: error: implicit declaration of function 'idio_16_get'; did you mean 'idio_16_gpio_get'? [-Werror=implicit-function-declaration] > 62 | return idio_16_get(idio16gpio->reg, &idio16gpio->state, offset); > | ^~~~~~~~~~~ > | idio_16_gpio_get > drivers/gpio/gpio-pci-idio-16.c: In function 'idio_16_gpio_get_multiple': > drivers/gpio/gpio-pci-idio-16.c:70:9: error: implicit declaration of function 'idio_16_get_multiple'; did you mean 'idio_16_gpio_get_multiple'? [-Werror=implicit-function-declaration] > 70 | idio_16_get_multiple(idio16gpio->reg, &idio16gpio->state, mask, bits); > | ^~~~~~~~~~~~~~~~~~~~ > | idio_16_gpio_get_multiple > drivers/gpio/gpio-pci-idio-16.c: In function 'idio_16_gpio_set': > drivers/gpio/gpio-pci-idio-16.c:79:9: error: implicit declaration of function 'idio_16_set'; did you mean 'idio_16_gpio_set'? [-Werror=implicit-function-declaration] > 79 | idio_16_set(idio16gpio->reg, &idio16gpio->state, offset, value); > | ^~~~~~~~~~~ > | idio_16_gpio_set > drivers/gpio/gpio-pci-idio-16.c: In function 'idio_16_gpio_set_multiple': > drivers/gpio/gpio-pci-idio-16.c:87:9: error: implicit declaration of function 'idio_16_set_multiple'; did you mean 'idio_16_gpio_set_multiple'? [-Werror=implicit-function-declaration] > 87 | idio_16_set_multiple(idio16gpio->reg, &idio16gpio->state, mask, bits); > | ^~~~~~~~~~~~~~~~~~~~ > | idio_16_gpio_set_multiple > drivers/gpio/gpio-pci-idio-16.c: In function 'idio_16_irq_mask': > drivers/gpio/gpio-pci-idio-16.c:106:45: error: invalid use of undefined type 'struct idio_16' > 106 | iowrite8(0, &idio16gpio->reg->irq_ctl); > | ^~ > drivers/gpio/gpio-pci-idio-16.c: In function 'idio_16_irq_unmask': > drivers/gpio/gpio-pci-idio-16.c:129:41: error: invalid use of undefined type 'struct idio_16' > 129 | ioread8(&idio16gpio->reg->irq_ctl); > | ^~ > drivers/gpio/gpio-pci-idio-16.c: In function 'idio_16_irq_handler': > drivers/gpio/gpio-pci-idio-16.c:164:46: error: invalid use of undefined type 'struct idio_16' > 164 | irq_status = ioread8(&idio16gpio->reg->irq_status); > | ^~ > drivers/gpio/gpio-pci-idio-16.c:178:37: error: invalid use of undefined type 'struct idio_16' > 178 | iowrite8(0, &idio16gpio->reg->in0_7); > | ^~ > drivers/gpio/gpio-pci-idio-16.c: In function 'idio_16_irq_init_hw': > drivers/gpio/gpio-pci-idio-16.c:198:37: error: invalid use of undefined type 'struct idio_16' > 198 | iowrite8(0, &idio16gpio->reg->irq_ctl); > | ^~ > drivers/gpio/gpio-pci-idio-16.c:199:37: error: invalid use of undefined type 'struct idio_16' > 199 | iowrite8(0, &idio16gpio->reg->in0_7); > | ^~ > drivers/gpio/gpio-pci-idio-16.c: In function 'idio_16_probe': > drivers/gpio/gpio-pci-idio-16.c:232:37: error: invalid use of undefined type 'struct idio_16' > 232 | iowrite8(0, &idio16gpio->reg->filter_ctl); > | ^~ > drivers/gpio/gpio-pci-idio-16.c:248:9: error: implicit declaration of function 'idio_16_state_init'; did you mean 'file_ra_state_init'? [-Werror=implicit-function-declaration] > 248 | idio_16_state_init(&idio16gpio->state); > | ^~~~~~~~~~~~~~~~~~ > | file_ra_state_init > drivers/gpio/gpio-pci-idio-16.c: In function 'idio_16_gpio_get': > drivers/gpio/gpio-pci-idio-16.c:63:1: error: control reaches end of non-void function [-Werror=return-type] > 63 | } > | ^ > > Caused by commit > > 473b79057bbd ("gpio: idio-16: Remove unused legacy interface") > > I have used the gpio-brgl tree from next-20230322 for today. > > -- > Cheers, > Stephen Rothwell Commit 473b79057bbd shouldn't be merged until all of the IDIO-16 legacy interface is first removed. Bart, would you revert all of the "Migrate IDIO-16 GPIO drivers to regmap API" patches [0]? That patchset needs to be revised anyway to prevent conflicts with the handle_mask_sync() API change [1]; I'll submit a v3 later this week that resolves the incompatibilies and rebase on the latest gpio/for-next. William Breathitt Gray [0] https://lore.kernel.org/all/cover.1677515341.git.william.gray@linaro.org/ [1] https://lore.kernel.org/all/cover.1679323449.git.william.gray@linaro.org/