Hi Calvin,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on net-next/master]
url:
https://github.com/0day-ci/linux/commits/Calvin-Johnson/ACPI-support-for-...
base:
https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git
06b334f08b4f0e53be64160392be4c37db28a413
config: i386-randconfig-a013-20210217 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
#
https://github.com/0day-ci/linux/commit/5de2672fd295f915600e7391cea819d3d...
git remote add linux-review
https://github.com/0day-ci/linux
git fetch --no-tags linux-review
Calvin-Johnson/ACPI-support-for-dpaa2-driver/20210218-133805
git checkout 5de2672fd295f915600e7391cea819d3dbe7b642
# save the attached .config to linux build tree
make W=1 ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
ld: drivers/net/phy/mdio_bus.o: in function `fwnode_mdiobus_register_phy':
> drivers/net/phy/mdio_bus.c:132: undefined reference to
`phy_device_create'
vim +132 drivers/net/phy/mdio_bus.c
109
110 int fwnode_mdiobus_register_phy(struct mii_bus *bus,
111 struct fwnode_handle *child, u32 addr)
112 {
113 struct mii_timestamper *mii_ts = NULL;
114 struct phy_device *phy;
115 bool is_c45 = false;
116 u32 phy_id;
117 int rc;
118
119 if (is_of_node(child)) {
120 mii_ts = of_find_mii_timestamper(to_of_node(child));
121 if (IS_ERR(mii_ts))
122 return PTR_ERR(mii_ts);
123 }
124
125 rc = fwnode_property_match_string(child, "compatible",
"ethernet-phy-ieee802.3-c45");
126 if (rc >= 0)
127 is_c45 = true;
128
129 if (is_c45 || fwnode_get_phy_id(child, &phy_id))
130 phy = get_phy_device(bus, addr, is_c45);
131 else
132 phy = phy_device_create(bus, addr, phy_id, 0, NULL);
133 if (IS_ERR(phy)) {
134 if (mii_ts)
135 unregister_mii_timestamper(mii_ts);
136 return PTR_ERR(phy);
137 }
138
139 if (is_acpi_node(child)) {
140 phy->irq = bus->irq[addr];
141
142 /* Associate the fwnode with the device structure so it
143 * can be looked up later.
144 */
145 phy->mdio.dev.fwnode = child;
146
147 /* All data is now stored in the phy struct, so register it */
148 rc = phy_device_register(phy);
149 if (rc) {
150 phy_device_free(phy);
151 fwnode_handle_put(phy->mdio.dev.fwnode);
152 return rc;
153 }
154 } else if (is_of_node(child)) {
155 rc = of_mdiobus_phy_device_register(bus, phy, to_of_node(child), addr);
156 if (rc) {
157 if (mii_ts)
158 unregister_mii_timestamper(mii_ts);
159 phy_device_free(phy);
160 return rc;
161 }
162 }
163
164 /* phy->mii_ts may already be defined by the PHY driver. A
165 * mii_timestamper probed via the device tree will still have
166 * precedence.
167 */
168 if (mii_ts)
169 phy->mii_ts = mii_ts;
170 return 0;
171 }
172 EXPORT_SYMBOL(fwnode_mdiobus_register_phy);
173
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org