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.

Heiner Kallweit (2):
  net: phy: add struct device_type representation of a PHY
  net: phy: remove PM ops from MDIO bus

 drivers/net/phy/mdio_bus.c   | 48 ------------------
 drivers/net/phy/phy_device.c | 96 +++++++++++++++++++-----------------
 include/linux/mdio.h         |  1 -
 3 files changed, 50 insertions(+), 95 deletions(-)

-- 
2.17.1

Reply via email to