On 04.06.2018 23:48, Andrew Lunn wrote: > On Sat, Jun 02, 2018 at 10:33:36PM +0200, Heiner Kallweit wrote: >> Current implementation of MDIO bus PM ops doesn't actually implement >> bus-specific PM ops but just calls PM ops defined on a device level >> what doesn't seem to be fully in line with the core PM model. >> >> When looking e.g. at __device_suspend() the PM core looks for PM ops >> of a device in a specific order: >> 1. device PM domain >> 2. device type >> 3. device class >> 4. device bus >> >> I think it has good reason that there's no PM ops on device level. >> The situation can be improved by modeling PHY's as device type of >> a MDIO device. If for some other type of MDIO device PM ops are >> needed, it could be modeled as struct device_type as well. > > Hi Heiner > > I tested that the files in /sys/class/bus/mdio/devices/* are still > there. And also not there for MDIO devices which are not PHYs, > e.g. Ethernet switches. > > I don't have any boards which do PM. So i cannot test suspend/resume. > Thanks for reviewing! I tested suspend / resume by manually suspending via "systemctl suspend" and resuming via power button or WoL.
The only behavior change I expect is an additional parameter in the PHY udev calls, see following comment in device.h: If "name" is specified, the uevent will contain it in the DEVTYPE variable. This however shouldn't have any impact. Heiner > I also took a look at drivers/net/dsa/qca8k.c. This is an MDIO switch > which has PM operations. I don't think this change will break it. > > I would prefer a bit more testing, but i guess that is what -rc > kernels are for. > > Tested-by: Andrew Lunn <and...@lunn.ch> > > Andrew > . >