The smsc95xx driver registers a PHY device but does not currently propagate suspend events to it when the USB interface is suspended. Call phy_suspend() from the driver's suspend callback so the attached PHY can properly enter low-power state during system or runtime suspend. This aligns smsc95xx suspend handling with other network drivers that manage an external or integrated PHY. Without this, the PHY may remain active and fail to execute its own suspend procedure, leading to unnecessary power consumption or incorrect resume behavior. This change is also required for the EVB-LAN8670-USB Rev.D0 device to support OATC10-compliant sleep and wake functionality. Signed-off-by: Parthiban Veerasooran --- drivers/net/usb/smsc95xx.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c index 42e4048b574b..3a6e03b7410a 100644 --- a/drivers/net/usb/smsc95xx.c +++ b/drivers/net/usb/smsc95xx.c @@ -1550,6 +1550,12 @@ static int smsc95xx_suspend(struct usb_interface *intf, pm_message_t message) pdata->pm_task = current; + if (pdata->phydev) { + ret = phy_suspend(pdata->phydev); + if (ret) + return ret; + } + ret = usbnet_suspend(intf, message); if (ret < 0) { netdev_warn(dev->net, "usbnet_suspend error\n"); -- 2.34.1