phy_ethtool_set_eee_noneg(9)
πΈ phy_ethtool_set_eee_noneg(9) β the kernel API manual, but make it make sense π
Okay bestie, welcome to the phy_ethtool_set_eee_noneg(9) page from the Kernel API Manual β¨ this one's a little niche but honestly kind of iconic once you get the vibe, so strap in π
β¨ NAME β¨
phy_ethtool_set_eee_noneg β adjusts the MAC's LPI configuration without making the PHY renegotiate anything π₯ no cap, that's the whole personality.
π SYNOPSIS π
void phy_ethtool_set_eee_noneg (struct phy_device *phydev , const struct
eee_config *old_cfg );
π¦ ARGUMENTS π¦
phydevβ a pointer to the target PHY device structure π«Ά like, the PHY we're talking about rn.old_cfgβ a pointer to theeee_configstructure holding the old EEE settings π it's giving "receipts of how things used to be".
π DESCRIPTION π
So here's the tea β: this function updates the Energy Efficient Ethernet (EEE) configuration in the very specific case where only the MAC's Low Power Idle (LPI) configuration is changing β and it does this without triggering PHY renegotiation. Ngl that's the whole point π
It makes sure the MAC actually gets told about the new LPI settings by cycling the link down and then up π which, yes, is literally necessary for the MAC to adopt the new configuration. It's not extra, it's required, fr fr.
Small but important vibe check: this adjustment only happens if there's an actual change in thetx_lpi_enabledortx_lpi_timerconfiguration π no change, no link cycling, that's the rule β¨
π SEE ALSO π
Kernel file ./drivers/net/phy/phy.c β and bestie, the friend list here is long, so let's go π§
phy_print_status(9)phy_get_rate_matching(9)phy_config_interrupt(9)phy_restart_aneg(9)phy_aneg_done(9)phy_supported_speeds(9)phy_check_valid(9)phy_sanitize_settings(9)phy_mii_ioctl(9)phy_do_ioctl(9)phy_do_ioctl_running(9)__phy_hwtstamp_get(9)__phy_hwtstamp_set(9)phy_queue_state_machine(9)phy_trigger_machine(9)phy_ethtool_get_strings(9)phy_ethtool_get_sset_count(9)phy_ethtool_get_stats(9)__phy_ethtool_get_phy_stats(9)__phy_ethtool_get_link_ext_stats(9)phy_ethtool_get_plca_cfg(9)plca_check_valid(9)phy_ethtool_set_plca_cfg(9)phy_ethtool_get_plca_status(9)phy_start_cable_test(9)phy_start_cable_test_tdr(9)phy_check_link_status(9)phy_inband_caps(9)phy_config_inband(9)_phy_start_aneg(9)phy_start_aneg(9)phy_speed_down(9)phy_speed_up(9)phy_start_machine(9)phy_stop_machine(9)phy_error(9)phy_write_barrier(9)phy_disable_interrupts(9)phy_interrupt(9)phy_enable_interrupts(9)phy_update_stats(9)phy_request_interrupt(9)phy_free_interrupt(9)phy_get_next_update_time(9)phy_state_machine(9)phy_stop(9)phy_start(9)phy_mac_interrupt(9)phy_loopback(9)phy_eee_tx_clock_stop_capable(9)phy_eee_rx_clock_stop(9)phy_init_eee(9)phy_get_eee_err(9)phy_ethtool_get_eee(9)phy_ethtool_set_eee(9)phy_ethtool_set_wol(9)phy_ethtool_get_wol(9)phy_ethtool_nway_reset(9)
And that's the whole page, bestie, you ate that π One last lil sign-off: this one lives in ./drivers/net/phy and it's dated October 2026 β so like, future-core of it all πβ¨ mwah π
π¦ 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