xref: /linux/include/net/eee.h (revision 79790b6818e96c58fe2bffee1b418c16e64e7b80)
1*6f2fc858SRussell King /* SPDX-License-Identifier: GPL-2.0-only */
2*6f2fc858SRussell King #ifndef _EEE_H
3*6f2fc858SRussell King #define _EEE_H
4*6f2fc858SRussell King 
5*6f2fc858SRussell King #include <linux/types.h>
6*6f2fc858SRussell King 
7*6f2fc858SRussell King struct eee_config {
8*6f2fc858SRussell King 	u32 tx_lpi_timer;
9*6f2fc858SRussell King 	bool tx_lpi_enabled;
10*6f2fc858SRussell King 	bool eee_enabled;
11*6f2fc858SRussell King };
12*6f2fc858SRussell King 
eeecfg_mac_can_tx_lpi(const struct eee_config * eeecfg)13*6f2fc858SRussell King static inline bool eeecfg_mac_can_tx_lpi(const struct eee_config *eeecfg)
14*6f2fc858SRussell King {
15*6f2fc858SRussell King 	/* eee_enabled is the master on/off */
16*6f2fc858SRussell King 	if (!eeecfg->eee_enabled || !eeecfg->tx_lpi_enabled)
17*6f2fc858SRussell King 		return false;
18*6f2fc858SRussell King 
19*6f2fc858SRussell King 	return true;
20*6f2fc858SRussell King }
21*6f2fc858SRussell King 
eeecfg_to_eee(struct ethtool_keee * eee,const struct eee_config * eeecfg)22*6f2fc858SRussell King static inline void eeecfg_to_eee(struct ethtool_keee *eee,
23*6f2fc858SRussell King 				 const struct eee_config *eeecfg)
24*6f2fc858SRussell King {
25*6f2fc858SRussell King 	eee->tx_lpi_timer = eeecfg->tx_lpi_timer;
26*6f2fc858SRussell King 	eee->tx_lpi_enabled = eeecfg->tx_lpi_enabled;
27*6f2fc858SRussell King 	eee->eee_enabled = eeecfg->eee_enabled;
28*6f2fc858SRussell King }
29*6f2fc858SRussell King 
eee_to_eeecfg(struct eee_config * eeecfg,const struct ethtool_keee * eee)30*6f2fc858SRussell King static inline void eee_to_eeecfg(struct eee_config *eeecfg,
31*6f2fc858SRussell King 				 const struct ethtool_keee *eee)
32*6f2fc858SRussell King {
33*6f2fc858SRussell King 	eeecfg->tx_lpi_timer = eee->tx_lpi_timer;
34*6f2fc858SRussell King 	eeecfg->tx_lpi_enabled = eee->tx_lpi_enabled;
35*6f2fc858SRussell King 	eeecfg->eee_enabled = eee->eee_enabled;
36*6f2fc858SRussell King }
37*6f2fc858SRussell King 
38*6f2fc858SRussell King #endif
39