diff mbox series

net: usb: lan78xx: Fix suspend/resume PHY register access error

Message ID 20191212115247.26728-1-cristian.birsan@microchip.com (mailing list archive)
State Mainlined
Commit 20032b63586ac6c28c936dff696981159913a13f
Headers show
Series net: usb: lan78xx: Fix suspend/resume PHY register access error | expand

Commit Message

Cristian Birsan Dec. 12, 2019, 11:52 a.m. UTC
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>
---
 drivers/net/usb/lan78xx.c | 1 +
 1 file changed, 1 insertion(+)

Comments

David Miller Dec. 12, 2019, 6:57 p.m. UTC | #1
From: Cristian Birsan <cristian.birsan@microchip.com>
Date: Thu, 12 Dec 2019 13:52:47 +0200

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

Applied and queued up for -stable.
diff mbox series

Patch

diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
index cf1f3f0a4b9b..d7bf1918ca62 100644
--- a/drivers/net/usb/lan78xx.c
+++ b/drivers/net/usb/lan78xx.c
@@ -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);