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

Reply via email to