> @@ -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
>
>