phy_aneg_done(9)
π phy_aneg_done(9) β like, the Kernel API Manual but make it make sense
okay so bestie, welcome to phy_aneg_done from the Kernel API Manual β¨ this one's short and sweet and honestly kind of iconic β it's the "hey babe, are we negotiated yet?" function π
π NAME π
phy_aneg_done β returns the auto-negotiation status, that's it, that's the whole vibe π¦
β¨ SYNOPSIS β¨
int phy_aneg_done (struct phy_device *phydev );
literally one argument, one return value, no drama π
πΈ ARGUMENTS πΈ
phydevβ the targetphy_devicestruct π this is the phy you're asking about, your main character, the one whose auto-negotiation status you wanna know about π«Ά
π₯ DESCRIPTION π₯
So here's the tea β β you call this bad boy and it returns the auto-negotiation status from this phydev. And the return value is doing a little three-way split, so pay attention bestie:
> 0β success, slay, auto-negotiation went through π< 0β error, it's giving red flags π something went wrong0β nope, not yet β auto-negotiation is still pending β³ like bestie it is literally still loading
ngl, 0 is the sneaky one π don't treat it as a fail, it just means "come back later" β auto-negotiation isn't done yet, no cap.
π¦ SEE ALSO π¦
okay this is the part where the manpage just dumps the entire friend group on you π like everyone from the kernel file ./drivers/net/phy/phy.c showed up to the party π
phy_print_status(9), phy_get_rate_matching(9), phy_config_interrupt(9), phy_restart_aneg(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_noneg(9), phy_ethtool_set_eee(9), phy_ethtool_set_wol(9), phy_ethtool_get_wol(9), phy_ethtool_nway_reset(9)
yeah. all of them. i don't make the rules π§ i just keep every single reference, fr fr π
and that's the whole page bestie!! no cap, that was a short one π go read the whole function list above if you want the full lore iykyk
mwah π this has been phy_aneg_done(9) from the ./drivers/net/phy corner of the Kernel API Manual, dated October 2026 β periodt, take care of her, she's iconic πβ
π¦ 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