diff options
Diffstat (limited to 'include/linux/ethtool.h')
| -rw-r--r-- | include/linux/ethtool.h | 43 | 
1 files changed, 43 insertions, 0 deletions
diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h index e17fa7140588..21eff418091b 100644 --- a/include/linux/ethtool.h +++ b/include/linux/ethtool.h @@ -137,6 +137,35 @@ struct ethtool_eeprom {  };  /** + * struct ethtool_eee - Energy Efficient Ethernet information + * @cmd: ETHTOOL_{G,S}EEE + * @supported: Mask of %SUPPORTED_* flags for the speed/duplex combinations + *	for which there is EEE support. + * @advertised: Mask of %ADVERTISED_* flags for the speed/duplex combinations + *	advertised as eee capable. + * @lp_advertised: Mask of %ADVERTISED_* flags for the speed/duplex + *	combinations advertised by the link partner as eee capable. + * @eee_active: Result of the eee auto negotiation. + * @eee_enabled: EEE configured mode (enabled/disabled). + * @tx_lpi_enabled: Whether the interface should assert its tx lpi, given + *	that eee was negotiated. + * @tx_lpi_timer: Time in microseconds the interface delays prior to asserting + *	its tx lpi (after reaching 'idle' state). Effective only when eee + *	was negotiated and tx_lpi_enabled was set. + */ +struct ethtool_eee { +	__u32	cmd; +	__u32	supported; +	__u32	advertised; +	__u32	lp_advertised; +	__u32	eee_active; +	__u32	eee_enabled; +	__u32	tx_lpi_enabled; +	__u32	tx_lpi_timer; +	__u32	reserved[2]; +}; + +/**   * struct ethtool_modinfo - plugin module eeprom information   * @cmd: %ETHTOOL_GMODULEINFO   * @type: Standard the module information conforms to %ETH_MODULE_SFF_xxxx @@ -945,6 +974,8 @@ static inline u32 ethtool_rxfh_indir_default(u32 index, u32 n_rx_rings)   * @get_module_info: Get the size and type of the eeprom contained within   *	a plug-in module.   * @get_module_eeprom: Get the eeprom information from the plug-in module + * @get_eee: Get Energy-Efficient (EEE) supported and status. + * @set_eee: Set EEE status (enable/disable) as well as LPI timers.   *   * All operations are optional (i.e. the function pointer may be set   * to %NULL) and callers must take this into account.  Callers must @@ -1011,6 +1042,8 @@ struct ethtool_ops {  				   struct ethtool_modinfo *);  	int     (*get_module_eeprom)(struct net_device *,  				     struct ethtool_eeprom *, u8 *); +	int	(*get_eee)(struct net_device *, struct ethtool_eee *); +	int	(*set_eee)(struct net_device *, struct ethtool_eee *);  }; @@ -1089,6 +1122,8 @@ struct ethtool_ops {  #define ETHTOOL_GET_TS_INFO	0x00000041 /* Get time stamping and PHC info */  #define ETHTOOL_GMODULEINFO	0x00000042 /* Get plug-in module information */  #define ETHTOOL_GMODULEEEPROM	0x00000043 /* Get plug-in module eeprom */ +#define ETHTOOL_GEEE		0x00000044 /* Get EEE settings */ +#define ETHTOOL_SEEE		0x00000045 /* Set EEE settings */  /* compatibility with older code */  #define SPARC_ETH_GSET		ETHTOOL_GSET @@ -1118,6 +1153,10 @@ struct ethtool_ops {  #define SUPPORTED_10000baseR_FEC	(1 << 20)  #define SUPPORTED_20000baseMLD2_Full	(1 << 21)  #define SUPPORTED_20000baseKR2_Full	(1 << 22) +#define SUPPORTED_40000baseKR4_Full	(1 << 23) +#define SUPPORTED_40000baseCR4_Full	(1 << 24) +#define SUPPORTED_40000baseSR4_Full	(1 << 25) +#define SUPPORTED_40000baseLR4_Full	(1 << 26)  /* Indicates what features are advertised by the interface. */  #define ADVERTISED_10baseT_Half		(1 << 0) @@ -1143,6 +1182,10 @@ struct ethtool_ops {  #define ADVERTISED_10000baseR_FEC	(1 << 20)  #define ADVERTISED_20000baseMLD2_Full	(1 << 21)  #define ADVERTISED_20000baseKR2_Full	(1 << 22) +#define ADVERTISED_40000baseKR4_Full	(1 << 23) +#define ADVERTISED_40000baseCR4_Full	(1 << 24) +#define ADVERTISED_40000baseSR4_Full	(1 << 25) +#define ADVERTISED_40000baseLR4_Full	(1 << 26)  /* The following are all involved in forcing a particular link   * mode for the device for setting things.  When getting the  | 
