On 10.07.2018 22:52, Andrew Lunn wrote: >>> Why is it powered up, but not connected? Is it powered down before it >>> is disconnected? Is it the bootloader which is powering it up? >>> >> Exactly, if the device is active when driver is loaded and the >> interface isn't used and therefore not brought up, then, when runtime- >> suspending, we face this situation. > > Well, it is more complex than that. If the interface is not used, why > bother even loading the MAC driver? > It would be nice to be able to detect at driver load time whether interface is used. But driver loading is based on existence of the PCI device and we don't know about any netctl- or whatever-based network configuration.
> If you are trying to make a really low power system, the bootloader > also needs to be involved. It needs to shut down anything it starts > before handing over control the linux. > I agree but in most cases wed don't have any influence on the bootloader / BIOS. > Another approach is to handle this in phylib. When the mdio bus is > suspended, look for any PHYs which are not connected and power them > down. The assumption being, any MAC driver using WoL via a PHY does > not disconnect the PHY before suspending. > > Andrew >