net: phy: make PHY PM ops a no-op if MAC driver manages PHY PM
authorHeiner Kallweit <hkallweit1@gmail.com>
Wed, 7 Apr 2021 15:51:56 +0000 (17:51 +0200)
committerJakub Kicinski <kuba@kernel.org>
Fri, 9 Apr 2021 23:37:04 +0000 (16:37 -0700)
commitfba863b816049b03f3fbb07b10ebdcfe5c4141f7
tree9c8f673bdee583c27982a773af884d7af1b1c470
parenta7150e382267d5d2bb3e1a2a07776e97646b0952
net: phy: make PHY PM ops a no-op if MAC driver manages PHY PM

Resume callback of the PHY driver is called after the one for the MAC
driver. The PHY driver resume callback calls phy_init_hw(), and this is
potentially problematic if the MAC driver calls phy_start() in its resume
callback. One issue was reported with the fec driver and a KSZ8081 PHY
which seems to become unstable if a soft reset is triggered during aneg.

The new flag allows MAC drivers to indicate that they take care of
suspending/resuming the PHY. Then the MAC PM callbacks can handle
any dependency between MAC and PHY PM.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/phy/phy_device.c
include/linux/phy.h