diff options
author | Oleksij Rempel <o.rempel@pengutronix.de> | 2022-03-11 09:50:13 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2022-03-12 11:50:56 +0000 |
commit | d5f3c81c569f50b534400d3e9b84d05e65d4f229 (patch) | |
tree | 167c1870e98c5b9a93b17665e55e9e4f200023e6 | |
parent | 5436fb3fd4c1f31f2cc4dadf69259e633351c1ff (diff) | |
download | linux-d5f3c81c569f50b534400d3e9b84d05e65d4f229.tar.gz |
net: usb: asix: make use of mdiobus_get_phy and phy_connect_direct
In most cases we use own mdio bus, there is no need to create and store
string for the PHY address.
Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/usb/asix.h | 1 | ||||
-rw-r--r-- | drivers/net/usb/asix_devices.c | 19 |
2 files changed, 10 insertions, 10 deletions
diff --git a/drivers/net/usb/asix.h b/drivers/net/usb/asix.h index 691f37f45238..072760d76a72 100644 --- a/drivers/net/usb/asix.h +++ b/drivers/net/usb/asix.h @@ -184,7 +184,6 @@ struct asix_common_private { struct mii_bus *mdio; struct phy_device *phydev; u16 phy_addr; - char phy_name[20]; bool embd_phy; u8 chipcode; }; diff --git a/drivers/net/usb/asix_devices.c b/drivers/net/usb/asix_devices.c index 34622c1adacf..fb617eb551bb 100644 --- a/drivers/net/usb/asix_devices.c +++ b/drivers/net/usb/asix_devices.c @@ -661,15 +661,16 @@ static int ax88772_init_phy(struct usbnet *dev) struct asix_common_private *priv = dev->driver_priv; int ret; - snprintf(priv->phy_name, sizeof(priv->phy_name), PHY_ID_FMT, - priv->mdio->id, priv->phy_addr); - - priv->phydev = phy_connect(dev->net, priv->phy_name, &asix_adjust_link, - PHY_INTERFACE_MODE_INTERNAL); - if (IS_ERR(priv->phydev)) { - netdev_err(dev->net, "Could not connect to PHY device %s\n", - priv->phy_name); - ret = PTR_ERR(priv->phydev); + priv->phydev = mdiobus_get_phy(priv->mdio, priv->phy_addr); + if (!priv->phydev) { + netdev_err(dev->net, "Could not find PHY\n"); + return -ENODEV; + } + + ret = phy_connect_direct(dev->net, priv->phydev, &asix_adjust_link, + PHY_INTERFACE_MODE_INTERNAL); + if (ret) { + netdev_err(dev->net, "Could not connect PHY\n"); return ret; } |