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