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>
This commit is contained in:
committed by
Jakub Kicinski
parent
a7150e3822
commit
fba863b816
@@ -493,6 +493,7 @@ struct macsec_ops;
|
||||
* @loopback_enabled: Set true if this PHY has been loopbacked successfully.
|
||||
* @downshifted_rate: Set true if link speed has been downshifted.
|
||||
* @is_on_sfp_module: Set true if PHY is located on an SFP module.
|
||||
* @mac_managed_pm: Set true if MAC driver takes of suspending/resuming PHY
|
||||
* @state: State of the PHY for management purposes
|
||||
* @dev_flags: Device-specific flags used by the PHY driver.
|
||||
* @irq: IRQ number of the PHY's interrupt (-1 if none)
|
||||
@@ -567,6 +568,7 @@ struct phy_device {
|
||||
unsigned loopback_enabled:1;
|
||||
unsigned downshifted_rate:1;
|
||||
unsigned is_on_sfp_module:1;
|
||||
unsigned mac_managed_pm:1;
|
||||
|
||||
unsigned autoneg:1;
|
||||
/* The most recently read link state */
|
||||
|
||||
Reference in New Issue
Block a user