Hi Andrew, I am getting this compilation error when the mdio-mux-regmap.ko is built as standalone module. This error doesn't come when the mdio-mux-regmap is built as part of linux kernel.
I don't understand the reason for it. Inline definitions of functions are only defined if CONFIG_MDIO_BUS_MUX_REGMAP Is NOT defined. BUT it is defined as " CONFIG_MDIO_BUS_MUX_REGMAP = m" Can you please help me to solve this? Regards, Pankaj Bansal > -----Original Message----- > From: kbuild test robot [mailto:l...@intel.com] > Sent: Monday, 4 February, 2019 08:22 PM > To: Pankaj Bansal <pankaj.ban...@nxp.com> > Cc: kbuild-...@01.org; Andrew Lunn <and...@lunn.ch>; Florian Fainelli > <f.faine...@gmail.com>; netdev@vger.kernel.org; Pankaj Bansal > <pankaj.ban...@nxp.com> > Subject: Re: [PATCH v2 2/2] netdev/phy: add MDIO bus multiplexer driven by a > regmap > > Hi Pankaj, > > Thank you for the patch! Yet something to improve: > > [auto build test ERROR on net/master] > [also build test ERROR on v5.0-rc4] > [if your patch is applied to the wrong git tree, please drop us a note to help > improve the system] > > url: > https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub. > com%2F0day-ci%2Flinux%2Fcommits%2FPankaj-Bansal%2Fadd-MDIO-bus- > multiplexer-driven-by-a-regmap-device%2F20190204- > 213429&data=02%7C01%7Cpankaj.bansal%40nxp.com%7Caabb2bdecd8a4 > 2c19f8108d68ab053d6%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7 > C636848890628820621&sdata=WLP4yuLXqfoNLfrPSIWhNkfg24YdR6Ny8jb > cUgvcrDQ%3D&reserved=0 > config: sh-allmodconfig (attached as .config) > compiler: sh4-linux-gnu-gcc (Debian 8.2.0-11) 8.2.0 > reproduce: > wget > https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fraw.git > hubusercontent.com%2Fintel%2Flkp- > tests%2Fmaster%2Fsbin%2Fmake.cross&data=02%7C01%7Cpankaj.bansal > %40nxp.com%7Caabb2bdecd8a42c19f8108d68ab053d6%7C686ea1d3bc2b4c6f > a92cd99c5c301635%7C0%7C0%7C636848890628820621&sdata=pGqb5xq > RsWH6fXd8NWLUKX86qQ0ZO8OOy8nj9rckqV8%3D&reserved=0 -O > ~/bin/make.cross > chmod +x ~/bin/make.cross > # save the attached .config to linux build tree > GCC_VERSION=8.2.0 make.cross ARCH=sh > > All errors (new ones prefixed by >>): > > >> drivers/net/phy/mdio-mux-regmap.c:72:5: error: redefinition of > 'mdio_mux_regmap_init' > int mdio_mux_regmap_init(struct device *dev, > ^~~~~~~~~~~~~~~~~~~~ > In file included from drivers/net/phy/mdio-mux-regmap.c:18: > include/linux/mdio-mux.h:53:19: note: previous definition of > 'mdio_mux_regmap_init' was here > static inline int mdio_mux_regmap_init(struct device *dev, > ^~~~~~~~~~~~~~~~~~~~ > >> drivers/net/phy/mdio-mux-regmap.c:158:5: error: redefinition of > 'mdio_mux_regmap_uninit' > int mdio_mux_regmap_uninit(void *data) > ^~~~~~~~~~~~~~~~~~~~~~ > In file included from drivers/net/phy/mdio-mux-regmap.c:18: > include/linux/mdio-mux.h:60:19: note: previous definition of > 'mdio_mux_regmap_uninit' was here > static inline int mdio_mux_regmap_uninit(void *data) > ^~~~~~~~~~~~~~~~~~~~~~ > > vim +/mdio_mux_regmap_init +72 drivers/net/phy/mdio-mux-regmap.c > > 62 > 63 /** > 64 * mdio_mux_regmap_init - control MDIO bus muxing using regmap > constructs. > 65 * @dev: device with which regmap construct is associated. > 66 * @mux_node: mdio bus mux node that contains parent mdio bus > phandle. > 67 * This node also contains sub nodes, where each > subnode > denotes > 68 * a child mdio bus. All the child mdio buses are > muxed, i.e. at a > 69 * time only one of the child mdio buses can be used. > 70 * @data: to store the address of data allocated by this > function > 71 */ > > 72 int mdio_mux_regmap_init(struct device *dev, > 73 struct device_node *mux_node, > 74 void **data) > 75 { > 76 struct device_node *child; > 77 struct mdio_mux_regmap_state *s; > 78 int ret; > 79 u32 val; > 80 > 81 dev_dbg(dev, "probing node %pOF\n", mux_node); > 82 > 83 s = devm_kzalloc(dev, sizeof(*s), GFP_KERNEL); > 84 if (!s) > 85 return -ENOMEM; > 86 > 87 s->regmap = dev_get_regmap(dev, NULL); > 88 if (IS_ERR(s->regmap)) { > 89 dev_err(dev, "Failed to get parent regmap\n"); > 90 return PTR_ERR(s->regmap); > 91 } > 92 > 93 ret = of_property_read_u32(mux_node, "reg", > &s->mux_reg); > 94 if (ret) { > 95 dev_err(dev, "missing or invalid reg > property\n"); > 96 return -ENODEV; > 97 } > 98 > 99 /* Test Register read write */ > 100 ret = regmap_read(s->regmap, s->mux_reg, &val); > 101 if (ret) { > 102 dev_err(dev, "error while reading reg\n"); > 103 return ret; > 104 } > 105 > 106 ret = regmap_write(s->regmap, s->mux_reg, val); > 107 if (ret) { > 108 dev_err(dev, "error while writing reg\n"); > 109 return ret; > 110 } > 111 > 112 ret = of_property_read_u32(mux_node, "mux-mask", &s- > >mask); > 113 if (ret) { > 114 dev_err(dev, "missing or invalid mux-mask > property\n"); > 115 return -ENODEV; > 116 } > 117 > 118 /* Verify that the 'reg' property of each child MDIO > bus does > not > 119 * set any bits outside of the 'mask'. > 120 */ > 121 for_each_available_child_of_node(mux_node, child) { > 122 ret = of_property_read_u32(child, "reg", &val); > 123 if (ret) { > 124 dev_err(dev, "%pOF is missing a 'reg' > property\n", > 125 child); > 126 of_node_put(child); > 127 return -ENODEV; > 128 } > 129 if (val & ~s->mask) { > 130 dev_err(dev, > 131 "%pOF has a 'reg' value with > unmasked > bits\n", > 132 child); > 133 of_node_put(child); > 134 return -ENODEV; > 135 } > 136 } > 137 > 138 ret = mdio_mux_init(dev, mux_node, > mdio_mux_regmap_switch_fn, > 139 &s->mux_handle, s, NULL); > 140 if (ret) { > 141 if (ret != -EPROBE_DEFER) > 142 dev_err(dev, "failed to register > mdio-mux > bus %pOF\n", > 143 mux_node); > 144 return ret; > 145 } > 146 > 147 *data = s; > 148 > 149 return 0; > 150 } > 151 EXPORT_SYMBOL_GPL(mdio_mux_regmap_init); > 152 > 153 /** > 154 * mdio_mux_regmap_uninit - relinquish the control of MDIO bus > muxing using > 155 * regmap constructs. > 156 * @data: address of data allocated by mdio_mux_regmap_init > 157 */ > > 158 int mdio_mux_regmap_uninit(void *data) > 159 { > 160 struct mdio_mux_regmap_state *s = data; > 161 > 162 mdio_mux_uninit(s->mux_handle); > 163 > 164 return 0; > 165 } > 166 EXPORT_SYMBOL_GPL(mdio_mux_regmap_uninit); > 167 > > --- > 0-DAY kernel test infrastructure Open Source Technology Center > https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.01 > .org%2Fpipermail%2Fkbuild- > all&data=02%7C01%7Cpankaj.bansal%40nxp.com%7Caabb2bdecd8a42c19 > f8108d68ab053d6%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C636 > 848890628820621&sdata=P7RrlnHYStMpoDpwIDMmlRiDTCemyEE3bxuUrq > d0uxY%3D&reserved=0 Intel Corporation