}
EXPORT_SYMBOL(phy_attach_direct);
-/**
- * phy_attach - attach a network device to a particular PHY device
- * @dev: network device to attach
- * @bus_id: Bus ID of PHY device to attach
- * @interface: PHY device's interface
- *
- * Description: Same as phy_attach_direct() except that a PHY bus_id
- * string is passed instead of a pointer to a struct phy_device.
- */
-struct phy_device *phy_attach(struct net_device *dev, const char *bus_id,
- phy_interface_t interface)
-{
- struct phy_device *phydev;
- struct device *d;
- int rc;
-
- if (!dev)
- return ERR_PTR(-EINVAL);
-
- /* Search the list of PHY devices on the mdio bus for the
- * PHY with the requested name
- */
- d = bus_find_device_by_name(&mdio_bus_type, NULL, bus_id);
- if (!d) {
- pr_err("PHY %s not found\n", bus_id);
- return ERR_PTR(-ENODEV);
- }
- phydev = to_phy_device(d);
-
- rc = phy_attach_direct(dev, phydev, phydev->dev_flags, interface);
- put_device(d);
- if (rc)
- return ERR_PTR(rc);
-
- return phydev;
-}
-EXPORT_SYMBOL(phy_attach);
-
/**
* phy_detach - detach a PHY device from its network device
* @phydev: target phy_device struct
int phy_resume(struct phy_device *phydev);
int __phy_resume(struct phy_device *phydev);
int phy_loopback(struct phy_device *phydev, bool enable, int speed);
-struct phy_device *phy_attach(struct net_device *dev, const char *bus_id,
- phy_interface_t interface);
struct phy_device *phy_find_next(struct mii_bus *bus, struct phy_device *pos);
int phy_attach_direct(struct net_device *dev, struct phy_device *phydev,
u32 flags, phy_interface_t interface);