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 <l...@intel.com>

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

Attachment: .config.gz
Description: application/gzip

Reply via email to