Hi Sebastian, [auto build test ERROR on gpio/for-next] [also build test ERROR on v4.10-rc5 next-20170125] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Sebastian-Reichel/mcp23s08-pinconf-support/20170127-230243 base: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git for-next config: i386-randconfig-c0-01280104 (attached as .config) compiler: gcc-4.9 (Debian 4.9.4-2) 4.9.4 reproduce: # save the attached .config to linux build tree make ARCH=i386 All errors (new ones prefixed by >>): drivers/gpio/gpio-mcp23s08.c:86:22: error: field 'pinctrl_desc' has incomplete type struct pinctrl_desc pinctrl_desc; ^ >> drivers/gpio/gpio-mcp23s08.c:139:38: error: array type has incomplete element type static const struct pinctrl_pin_desc mcp23x08_pins[] = { ^ drivers/gpio/gpio-mcp23s08.c:140:2: error: implicit declaration of function 'PINCTRL_PIN' [-Werror=implicit-function-declaration] PINCTRL_PIN(0, "gpio0"), ^ drivers/gpio/gpio-mcp23s08.c:150:38: error: array type has incomplete element type static const struct pinctrl_pin_desc mcp23x17_pins[] = { ^ drivers/gpio/gpio-mcp23s08.c:188:21: error: variable 'mcp_pinctrl_ops' has initializer but incomplete type static const struct pinctrl_ops mcp_pinctrl_ops = { ^ drivers/gpio/gpio-mcp23s08.c:189:2: error: unknown field 'get_groups_count' specified in initializer .get_groups_count = mcp_pinctrl_get_groups_count, ^ drivers/gpio/gpio-mcp23s08.c:189:2: warning: excess elements in struct initializer drivers/gpio/gpio-mcp23s08.c:189:2: warning: (near initialization for 'mcp_pinctrl_ops') drivers/gpio/gpio-mcp23s08.c:190:2: error: unknown field 'get_group_name' specified in initializer .get_group_name = mcp_pinctrl_get_group_name, ^ drivers/gpio/gpio-mcp23s08.c:190:2: warning: excess elements in struct initializer drivers/gpio/gpio-mcp23s08.c:190:2: warning: (near initialization for 'mcp_pinctrl_ops') drivers/gpio/gpio-mcp23s08.c:191:2: error: unknown field 'get_group_pins' specified in initializer .get_group_pins = mcp_pinctrl_get_group_pins, ^ drivers/gpio/gpio-mcp23s08.c:191:2: warning: excess elements in struct initializer drivers/gpio/gpio-mcp23s08.c:191:2: warning: (near initialization for 'mcp_pinctrl_ops') drivers/gpio/gpio-mcp23s08.c:193:2: error: unknown field 'dt_node_to_map' specified in initializer .dt_node_to_map = pinconf_generic_dt_node_to_map_pin, ^ drivers/gpio/gpio-mcp23s08.c:193:20: error: 'pinconf_generic_dt_node_to_map_pin' undeclared here (not in a function) .dt_node_to_map = pinconf_generic_dt_node_to_map_pin, ^ drivers/gpio/gpio-mcp23s08.c:193:2: warning: excess elements in struct initializer .dt_node_to_map = pinconf_generic_dt_node_to_map_pin, ^ drivers/gpio/gpio-mcp23s08.c:193:2: warning: (near initialization for 'mcp_pinctrl_ops') drivers/gpio/gpio-mcp23s08.c:194:2: error: unknown field 'dt_free_map' specified in initializer .dt_free_map = pinconf_generic_dt_free_map, ^ drivers/gpio/gpio-mcp23s08.c:194:17: error: 'pinconf_generic_dt_free_map' undeclared here (not in a function) .dt_free_map = pinconf_generic_dt_free_map, ^ drivers/gpio/gpio-mcp23s08.c:194:2: warning: excess elements in struct initializer .dt_free_map = pinconf_generic_dt_free_map, ^ drivers/gpio/gpio-mcp23s08.c:194:2: warning: (near initialization for 'mcp_pinctrl_ops') drivers/gpio/gpio-mcp23s08.c: In function 'mcp_pinconf_get': drivers/gpio/gpio-mcp23s08.c:201:9: error: implicit declaration of function 'pinctrl_dev_get_drvdata' [-Werror=implicit-function-declaration] struct mcp23s08 *mcp = pinctrl_dev_get_drvdata(pctldev); ^ drivers/gpio/gpio-mcp23s08.c:201:25: warning: initialization makes pointer from integer without a cast struct mcp23s08 *mcp = pinctrl_dev_get_drvdata(pctldev); ^ drivers/gpio/gpio-mcp23s08.c: In function 'mcp_pinconf_set': drivers/gpio/gpio-mcp23s08.c:226:25: warning: initialization makes pointer from integer without a cast struct mcp23s08 *mcp = pinctrl_dev_get_drvdata(pctldev); ^ drivers/gpio/gpio-mcp23s08.c: At top level: drivers/gpio/gpio-mcp23s08.c:252:21: error: variable 'mcp_pinconf_ops' has initializer but incomplete type static const struct pinconf_ops mcp_pinconf_ops = { ^ drivers/gpio/gpio-mcp23s08.c:253:2: error: unknown field 'pin_config_get' specified in initializer .pin_config_get = mcp_pinconf_get, ^ drivers/gpio/gpio-mcp23s08.c:253:2: warning: excess elements in struct initializer drivers/gpio/gpio-mcp23s08.c:253:2: warning: (near initialization for 'mcp_pinconf_ops') drivers/gpio/gpio-mcp23s08.c:254:2: error: unknown field 'pin_config_set' specified in initializer .pin_config_set = mcp_pinconf_set, ^ drivers/gpio/gpio-mcp23s08.c:254:2: warning: excess elements in struct initializer drivers/gpio/gpio-mcp23s08.c:254:2: warning: (near initialization for 'mcp_pinconf_ops') drivers/gpio/gpio-mcp23s08.c:255:2: error: unknown field 'is_generic' specified in initializer .is_generic = true, ^ drivers/gpio/gpio-mcp23s08.c:255:2: warning: excess elements in struct initializer drivers/gpio/gpio-mcp23s08.c:255:2: warning: (near initialization for 'mcp_pinconf_ops') drivers/gpio/gpio-mcp23s08.c: In function 'mcp23s08_probe_one': drivers/gpio/gpio-mcp23s08.c:776:2: error: implicit declaration of function 'pinctrl_register' [-Werror=implicit-function-declaration] mcp->pctldev = pinctrl_register(&mcp->pinctrl_desc, dev, mcp); ^ drivers/gpio/gpio-mcp23s08.c: At top level: drivers/gpio/gpio-mcp23s08.c:139:38: warning: 'mcp23x08_pins' defined but not used [-Wunused-variable] static const struct pinctrl_pin_desc mcp23x08_pins[] = { ^ drivers/gpio/gpio-mcp23s08.c:150:38: warning: 'mcp23x17_pins' defined but not used [-Wunused-variable] static const struct pinctrl_pin_desc mcp23x17_pins[] = { ^ cc1: some warnings being treated as errors vim +139 drivers/gpio/gpio-mcp23s08.c 80 struct gpio_chip chip; 81 82 struct regmap *regmap; 83 struct device *dev; 84 85 struct pinctrl_dev *pctldev; > 86 struct pinctrl_desc pinctrl_desc; 87 }; 88 89 static const struct regmap_config mcp23x08_regmap = { 90 .reg_bits = 8, 91 .val_bits = 8, 92 93 .reg_stride = 1, 94 .max_register = MCP_OLAT, 95 }; 96 97 static const struct regmap_config mcp23x17_regmap = { 98 .reg_bits = 8, 99 .val_bits = 16, 100 101 .reg_stride = 2, 102 .max_register = MCP_OLAT << 1, 103 .val_format_endian = REGMAP_ENDIAN_LITTLE, 104 }; 105 106 static int mcp_read(struct mcp23s08 *mcp, unsigned int reg, unsigned int *val) 107 { 108 return regmap_read(mcp->regmap, reg << mcp->reg_shift, val); 109 } 110 111 static int mcp_write(struct mcp23s08 *mcp, unsigned int reg, unsigned int val) 112 { 113 return regmap_write(mcp->regmap, reg << mcp->reg_shift, val); 114 } 115 116 static int mcp_set_bit(struct mcp23s08 *mcp, unsigned int reg, 117 unsigned int pin, bool enabled) 118 { 119 u16 val = enabled ? 0xffff : 0x0000; 120 u16 mask = BIT(pin); 121 return regmap_update_bits(mcp->regmap, reg << mcp->reg_shift, 122 mask, val); 123 } 124 125 static int mcp_update_cache(struct mcp23s08 *mcp) 126 { 127 int ret, reg, i; 128 129 for (i = 0; i < ARRAY_SIZE(mcp->cache); i++) { 130 ret = mcp_read(mcp, i, ®); 131 if (ret < 0) 132 return ret; 133 mcp->cache[i] = reg; 134 } 135 136 return 0; 137 } 138 > 139 static const struct pinctrl_pin_desc mcp23x08_pins[] = { 140 PINCTRL_PIN(0, "gpio0"), 141 PINCTRL_PIN(1, "gpio1"), 142 PINCTRL_PIN(2, "gpio2"), --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip