Re: [PATCH v2 1/3] net: phylink: switch to using fwnode_gpiod_get_index()

From: kbuild test robot
Date: Tue Oct 15 2019 - 09:04:00 EST


Hi Dmitry,

I love your patch! Yet something to improve:

[auto build test ERROR on net/master]
[cannot apply to v5.4-rc3 next-20191014]
[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/20191015-020204
config: x86_64-randconfig-a002-201941 (attached as .config)
compiler: gcc-5 (Ubuntu 5.5.0-12ubuntu1) 5.5.0 20171010
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@xxxxxxxxx>

All errors (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' [-Werror=implicit-function-declaration]
desc = fwnode_gpiod_get_index(fixed_node, "link", 0,
^
drivers/net/phy/phylink.c:171:9: warning: assignment 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 +/fwnode_gpiod_get_index +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

Attachment: .config.gz
Description: application/gzip