phy_support_eee(9)
π phy_support_eee β the Kernel API Manual moment β¨
okay so bestie, welcome to the phy_support_eee(9) page, like, the actual kernel API manual entry, and it's giving "networking but make it energy-efficient" π¦
πΈ NAME πΈ
phy_support_eee β sets the initial EEE policy configuration, no cap π
β¨ SYNOPSIS β¨
void phy_support_eee (struct phy_device *phydev );
yep that's the whole thing, she's a void, she returns nothing, she simply does π«Ά
π ARGUMENTS π
phydevβ the targetstruct phy_devicestruct, like, the PHY device you're doing all this for π
π DESCRIPTION π
so here's the tea β β this function configures the initial policy for Energy Efficient Ethernet (EEE) on the specified PHY device, and the whole point is that it influences that EEE capabilities get advertised before the link is established. timing matters, bestie β°
call it during PHY registration, okay? specifically by the MAC driver and/or the PHY driver (for SmartEEE PHYs) β but only if the MAC supports LPI, or the PHY is capable of compensating for the missing LPI functionality of the MAC. iykyk π
the function sets the default EEE policy parameters, which includes preparing the PHY to advertise EEE capabilities based on hardware support. slay π
it also sets the expected configuration for Low Power Idle (LPI) in the MAC driver. and here's the important part, so listen up π§ if the PHY framework determines that both local and remote advertisements support EEE, and the negotiated link mode is compatible with EEE, it will set enable_tx_lpi = true. then the MAC driver is expected to act on that setting by enabling the LPI timer if enable_tx_lpi is set. that's the contract, periodt π
fr fr, remembering the enable_tx_lpi = true part is the whole vibe check here β the MAC driver doesn't get to just ignore it π₯
π¦ SEE ALSO π¦
the kernel file is ./drivers/net/phy/phy_device.c, and then, like, the entire friend group π:
phy_uses_state_machine(9)phy_register_fixup(9)genphy_match_phy_device(9)get_phy_c45_ids(9)get_phy_c22_id(9)get_phy_device(9)phy_device_register(9)phy_device_remove(9)phy_get_c45_ids(9)phy_find_next(9)phy_prepare_link(9)phy_connect_direct(9)phy_connect(9)phy_disconnect(9)phy_poll_reset(9)phy_sfp_connect_phy(9)phy_sfp_disconnect_phy(9)phy_sfp_attach(9)phy_sfp_detach(9)phy_sfp_probe(9)phy_attach_direct(9)phy_detach(9)phy_reset_after_clk_enable(9)genphy_config_advert(9)genphy_c37_config_advert(9)genphy_setup_forced(9)genphy_restart_aneg(9)genphy_check_and_restart_aneg(9)__genphy_config_aneg(9)genphy_c37_config_aneg(9)genphy_aneg_done(9)genphy_update_link(9)genphy_read_status_fixed(9)genphy_read_status(9)genphy_c37_read_status(9)genphy_soft_reset(9)genphy_read_abilities(9)phy_remove_link_mode(9)phy_advertise_supported(9)phy_advertise_eee_all(9)phy_disable_eee(9)phy_support_sym_pause(9)phy_support_asym_pause(9)phy_set_sym_pause(9)phy_set_asym_pause(9)phy_validate_pause(9)phy_get_pause(9)phy_get_internal_delay(9)phy_get_tx_amplitude_gain(9)phy_get_mac_termination(9)phy_get_sfp_port(9)fwnode_mdio_find_device(9)fwnode_phy_find_device(9)fwnode_get_phy_node(9)phy_probe(9)phy_driver_register(9)
k that's the page bestie, go be iconic with your EEE policy πβ¨
this one lives at ./drivers/net/phy, dated October 2026, and it's phy_support_eee(9) β mwah, see u in the group chat ππ¦
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms