Hi Dmitry, I love your patch! Perhaps something to improve: [auto build test WARNING on net-next/master] [cannot apply to v5.4-rc1 next-20191004] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982] url: https://github.com/0day-ci/linux/commits/Dmitry-Torokhov/net-phy-switch-to-using-fwnode_gpiod_get_index/20191005-083613 config: nds32-allyesconfig (attached as .config) compiler: nds32le-linux-gcc (GCC) 8.1.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree GCC_VERSION=8.1.0 make.cross ARCH=nds32 If you fix the issue, kindly add following tag Reported-by: kbuild test robot All warnings (new ones prefixed by >>): drivers/net/phy/phylink.c: In function 'phylink_parse_fixedlink': drivers/net/phy/phylink.c:171:11: error: implicit declaration of function 'fwnode_gpiod_get_index'; did you mean 'devm_gpiod_get_index'? [-Werror=implicit-function-declaration] desc = fwnode_gpiod_get_index(fixed_node, "link", 0, ^~~~~~~~~~~~~~~~~~~~~~ devm_gpiod_get_index >> drivers/net/phy/phylink.c:171:9: warning: assignment to 'struct gpio_desc *' from 'int' makes pointer from integer without a cast [-Wint-conversion] desc = fwnode_gpiod_get_index(fixed_node, "link", 0, ^ cc1: some warnings being treated as errors vim +171 drivers/net/phy/phylink.c 143 144 static int phylink_parse_fixedlink(struct phylink *pl, 145 struct fwnode_handle *fwnode) 146 { 147 struct fwnode_handle *fixed_node; 148 const struct phy_setting *s; 149 struct gpio_desc *desc; 150 u32 speed; 151 int ret; 152 153 fixed_node = fwnode_get_named_child_node(fwnode, "fixed-link"); 154 if (fixed_node) { 155 ret = fwnode_property_read_u32(fixed_node, "speed", &speed); 156 157 pl->link_config.speed = speed; 158 pl->link_config.duplex = DUPLEX_HALF; 159 160 if (fwnode_property_read_bool(fixed_node, "full-duplex")) 161 pl->link_config.duplex = DUPLEX_FULL; 162 163 /* We treat the "pause" and "asym-pause" terminology as 164 * defining the link partner's ability. */ 165 if (fwnode_property_read_bool(fixed_node, "pause")) 166 pl->link_config.pause |= MLO_PAUSE_SYM; 167 if (fwnode_property_read_bool(fixed_node, "asym-pause")) 168 pl->link_config.pause |= MLO_PAUSE_ASYM; 169 170 if (ret == 0) { > 171 desc = fwnode_gpiod_get_index(fixed_node, "link", 0, 172 GPIOD_IN, "?"); 173 174 if (!IS_ERR(desc)) 175 pl->link_gpio = desc; 176 else if (desc == ERR_PTR(-EPROBE_DEFER)) 177 ret = -EPROBE_DEFER; 178 } 179 fwnode_handle_put(fixed_node); 180 181 if (ret) 182 return ret; 183 } else { 184 u32 prop[5]; 185 186 ret = fwnode_property_read_u32_array(fwnode, "fixed-link", 187 NULL, 0); 188 if (ret != ARRAY_SIZE(prop)) { 189 phylink_err(pl, "broken fixed-link?\n"); 190 return -EINVAL; 191 } 192 193 ret = fwnode_property_read_u32_array(fwnode, "fixed-link", 194 prop, ARRAY_SIZE(prop)); 195 if (!ret) { 196 pl->link_config.duplex = prop[1] ? 197 DUPLEX_FULL : DUPLEX_HALF; 198 pl->link_config.speed = prop[2]; 199 if (prop[3]) 200 pl->link_config.pause |= MLO_PAUSE_SYM; 201 if (prop[4]) 202 pl->link_config.pause |= MLO_PAUSE_ASYM; 203 } 204 } 205 206 if (pl->link_config.speed > SPEED_1000 && 207 pl->link_config.duplex != DUPLEX_FULL) 208 phylink_warn(pl, "fixed link specifies half duplex for %dMbps link?\n", 209 pl->link_config.speed); 210 211 bitmap_fill(pl->supported, __ETHTOOL_LINK_MODE_MASK_NBITS); 212 linkmode_copy(pl->link_config.advertising, pl->supported); 213 phylink_validate(pl, pl->supported, &pl->link_config); 214 215 s = phy_lookup_setting(pl->link_config.speed, pl->link_config.duplex, 216 pl->supported, true); 217 linkmode_zero(pl->supported); 218 phylink_set(pl->supported, MII); 219 phylink_set(pl->supported, Pause); 220 phylink_set(pl->supported, Asym_Pause); 221 if (s) { 222 __set_bit(s->bit, pl->supported); 223 } else { 224 phylink_warn(pl, "fixed link %s duplex %dMbps not recognised\n", 225 pl->link_config.duplex == DUPLEX_FULL ? "full" : "half", 226 pl->link_config.speed); 227 } 228 229 linkmode_and(pl->link_config.advertising, pl->link_config.advertising, 230 pl->supported); 231 232 pl->link_config.link = 1; 233 pl->link_config.an_complete = 1; 234 235 return 0; 236 } 237 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation