> @@ -606,6 +606,18 @@ struct phy_device *phy_device_create(struct mii_bus > *bus, int addr, int phy_id, > * there's no driver _already_ loaded. > */ > request_module(MDIO_MODULE_PREFIX MDIO_ID_FMT, MDIO_ID_ARGS(phy_id));
This line above is for C22. If you look at phy_bus_match(), it will perform a match on the c45_ids->device_ids[] if it is a c45 PHY, or the phy_id if it is c22. So i think we should also have this one or the other here, not both. Thanks Andrew > + if (c45_ids) { > + const int num_ids = ARRAY_SIZE(c45_ids->device_ids); > + int i; > + > + for (i = 1; i < num_ids; i++) { > + if (!(c45_ids->devices_in_package & (1 << i))) > + continue; > + > + request_module(MDIO_MODULE_PREFIX MDIO_ID_FMT, > + MDIO_ID_ARGS(c45_ids->device_ids[i])); > + } > + } > > device_initialize(&mdiodev->dev); > > -- > 2.7.4 > >