On Tue, May 24, 2022 at 02:03:52PM +0200, Andrew Lunn wrote: > As for this hardware, if it does not support WOL, why are interrupts > still enabled? LAN95xx chips do support WoL and will signal a USB wake event. But whether that actually results in resume from system sleep depends on the capabilities of the SoC and its USB host controller. LAN95xx supports a variety of wake options (WoL, PHY Energy Detect, ...) and can use either its integrated SMSC PHY or an external PHY. I'm not sure all wake options will work with arbitrary external PHYs. If WoL or Wake on PHY Energy Detect is not used, we just program the LAN95xx to enter a deeper power state which results in the respective wake events being ignored. As a result, interrupts may be left enabled even though they're not used as a wakeup source. The phylib doesn't provide an API to selectively disable or enable interrupts, other than phy_stop() and phy_start(), which does a lot more. The patch I've submitted today treats such unnecessarily enabled interrupts leniently: It will not signal wakeup if that wasn't enabled and just remembers that an interrupt occurred. The interrupt will be replayed upon resume and that's it. Thanks, Lukas