net: usb: lan78xx: Fix suspend/resume PHY register access error
authorCristian Birsan <cristian.birsan@microchip.com>
Thu, 12 Dec 2019 11:52:47 +0000 (13:52 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 12 Dec 2019 18:57:12 +0000 (10:57 -0800)
Lan78xx driver accesses the PHY registers through MDIO bus over USB
connection. When performing a suspend/resume, the PHY registers can be
accessed before the USB connection is resumed. This will generate an
error and will prevent the device to resume correctly.
This patch adds the dependency between the MDIO bus and USB device to
allow correct handling of suspend/resume.

Fixes: ce85e13ad6ef ("lan78xx: Update to use phylib instead of mii_if_info.")
Signed-off-by: Cristian Birsan <cristian.birsan@microchip.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/usb/lan78xx.c

index cf1f3f0a4b9bee6ad47792824e3be4c6d5634f85..d7bf1918ca62529cf23668004d970379942e928e 100644 (file)
@@ -1808,6 +1808,7 @@ static int lan78xx_mdio_init(struct lan78xx_net *dev)
        dev->mdiobus->read = lan78xx_mdiobus_read;
        dev->mdiobus->write = lan78xx_mdiobus_write;
        dev->mdiobus->name = "lan78xx-mdiobus";
+       dev->mdiobus->parent = &dev->udev->dev;
 
        snprintf(dev->mdiobus->id, MII_BUS_ID_SIZE, "usb-%03d:%03d",
                 dev->udev->bus->busnum, dev->udev->devnum);