16f2fc858SRussell King /* SPDX-License-Identifier: GPL-2.0-only */ 26f2fc858SRussell King #ifndef _EEE_H 36f2fc858SRussell King #define _EEE_H 46f2fc858SRussell King 56f2fc858SRussell King #include <linux/types.h> 66f2fc858SRussell King 76f2fc858SRussell King struct eee_config { 86f2fc858SRussell King u32 tx_lpi_timer; 96f2fc858SRussell King bool tx_lpi_enabled; 106f2fc858SRussell King bool eee_enabled; 116f2fc858SRussell King }; 126f2fc858SRussell King eeecfg_mac_can_tx_lpi(const struct eee_config * eeecfg)136f2fc858SRussell Kingstatic inline bool eeecfg_mac_can_tx_lpi(const struct eee_config *eeecfg) 146f2fc858SRussell King { 156f2fc858SRussell King /* eee_enabled is the master on/off */ 16*6b998404SHeiner Kallweit return eeecfg->eee_enabled && eeecfg->tx_lpi_enabled; 176f2fc858SRussell King } 186f2fc858SRussell King eeecfg_to_eee(struct ethtool_keee * eee,const struct eee_config * eeecfg)196f2fc858SRussell Kingstatic inline void eeecfg_to_eee(struct ethtool_keee *eee, 206f2fc858SRussell King const struct eee_config *eeecfg) 216f2fc858SRussell King { 226f2fc858SRussell King eee->tx_lpi_timer = eeecfg->tx_lpi_timer; 236f2fc858SRussell King eee->tx_lpi_enabled = eeecfg->tx_lpi_enabled; 246f2fc858SRussell King eee->eee_enabled = eeecfg->eee_enabled; 256f2fc858SRussell King } 266f2fc858SRussell King eee_to_eeecfg(struct eee_config * eeecfg,const struct ethtool_keee * eee)276f2fc858SRussell Kingstatic inline void eee_to_eeecfg(struct eee_config *eeecfg, 286f2fc858SRussell King const struct ethtool_keee *eee) 296f2fc858SRussell King { 306f2fc858SRussell King eeecfg->tx_lpi_timer = eee->tx_lpi_timer; 316f2fc858SRussell King eeecfg->tx_lpi_enabled = eee->tx_lpi_enabled; 326f2fc858SRussell King eeecfg->eee_enabled = eee->eee_enabled; 336f2fc858SRussell King } 346f2fc858SRussell King 356f2fc858SRussell King #endif 36