mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	net: phy: add phy_disable_eee
If a MAC driver doesn't support EEE, then the PHY shouldn't advertise it. Add phy_disable_eee() for this purpose. Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Link: https://patch.msgid.link/fd51738c-dcd6-4d61-b8c5-faa6ac0f1026@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
		
							parent
							
								
									e8f3323805
								
							
						
					
					
						commit
						b55498ff14
					
				
					 2 changed files with 17 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -3003,6 +3003,22 @@ void phy_support_eee(struct phy_device *phydev)
 | 
			
		|||
}
 | 
			
		||||
EXPORT_SYMBOL(phy_support_eee);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * phy_disable_eee - Disable EEE for the PHY
 | 
			
		||||
 * @phydev: Target phy_device struct
 | 
			
		||||
 *
 | 
			
		||||
 * This function is used by MAC drivers for MAC's which don't support EEE.
 | 
			
		||||
 * It disables EEE on the PHY layer.
 | 
			
		||||
 */
 | 
			
		||||
void phy_disable_eee(struct phy_device *phydev)
 | 
			
		||||
{
 | 
			
		||||
	linkmode_zero(phydev->supported_eee);
 | 
			
		||||
	linkmode_zero(phydev->advertising_eee);
 | 
			
		||||
	phydev->eee_cfg.tx_lpi_enabled = false;
 | 
			
		||||
	phydev->eee_cfg.eee_enabled = false;
 | 
			
		||||
}
 | 
			
		||||
EXPORT_SYMBOL_GPL(phy_disable_eee);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * phy_support_sym_pause - Enable support of symmetrical pause
 | 
			
		||||
 * @phydev: target phy_device struct
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2071,6 +2071,7 @@ void phy_advertise_eee_all(struct phy_device *phydev);
 | 
			
		|||
void phy_support_sym_pause(struct phy_device *phydev);
 | 
			
		||||
void phy_support_asym_pause(struct phy_device *phydev);
 | 
			
		||||
void phy_support_eee(struct phy_device *phydev);
 | 
			
		||||
void phy_disable_eee(struct phy_device *phydev);
 | 
			
		||||
void phy_set_sym_pause(struct phy_device *phydev, bool rx, bool tx,
 | 
			
		||||
		       bool autoneg);
 | 
			
		||||
void phy_set_asym_pause(struct phy_device *phydev, bool rx, bool tx);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue