diff options
Diffstat (limited to 'include/linux/phy.h')
| -rw-r--r-- | include/linux/phy.h | 14 | 
1 files changed, 12 insertions, 2 deletions
diff --git a/include/linux/phy.h b/include/linux/phy.h index 2fb9c8ffaf10..a7ecbe0e55aa 100644 --- a/include/linux/phy.h +++ b/include/linux/phy.h @@ -403,6 +403,8 @@ struct phy_device {  	__ETHTOOL_DECLARE_LINK_MODE_MASK(supported);  	__ETHTOOL_DECLARE_LINK_MODE_MASK(advertising);  	__ETHTOOL_DECLARE_LINK_MODE_MASK(lp_advertising); +	/* used with phy_speed_down */ +	__ETHTOOL_DECLARE_LINK_MODE_MASK(adv_old);  	/* Energy efficient ethernet modes which should be prohibited */  	u32 eee_broken_modes; @@ -665,6 +667,7 @@ size_t phy_speeds(unsigned int *speeds, size_t size,  		  unsigned long *mask);  void of_set_phy_supported(struct phy_device *phydev);  void of_set_phy_eee_broken(struct phy_device *phydev); +int phy_speed_down_core(struct phy_device *phydev);  /**   * phy_is_started - Convenience function to check whether PHY is started @@ -984,6 +987,8 @@ int phy_select_page(struct phy_device *phydev, int page);  int phy_restore_page(struct phy_device *phydev, int oldpage, int ret);  int phy_read_paged(struct phy_device *phydev, int page, u32 regnum);  int phy_write_paged(struct phy_device *phydev, int page, u32 regnum, u16 val); +int phy_modify_paged_changed(struct phy_device *phydev, int page, u32 regnum, +			     u16 mask, u16 set);  int phy_modify_paged(struct phy_device *phydev, int page, u32 regnum,  		     u16 mask, u16 set); @@ -1064,12 +1069,11 @@ void phy_attached_print(struct phy_device *phydev, const char *fmt, ...)  void phy_attached_info(struct phy_device *phydev);  /* Clause 22 PHY */ -int genphy_config_init(struct phy_device *phydev);  int genphy_read_abilities(struct phy_device *phydev);  int genphy_setup_forced(struct phy_device *phydev);  int genphy_restart_aneg(struct phy_device *phydev);  int genphy_config_eee_advert(struct phy_device *phydev); -int genphy_config_aneg(struct phy_device *phydev); +int __genphy_config_aneg(struct phy_device *phydev, bool changed);  int genphy_aneg_done(struct phy_device *phydev);  int genphy_update_link(struct phy_device *phydev);  int genphy_read_status(struct phy_device *phydev); @@ -1077,6 +1081,12 @@ int genphy_suspend(struct phy_device *phydev);  int genphy_resume(struct phy_device *phydev);  int genphy_loopback(struct phy_device *phydev, bool enable);  int genphy_soft_reset(struct phy_device *phydev); + +static inline int genphy_config_aneg(struct phy_device *phydev) +{ +	return __genphy_config_aneg(phydev, false); +} +  static inline int genphy_no_soft_reset(struct phy_device *phydev)  {  	return 0;  |