genphy_aneg_done(9)
π genphy_aneg_done(9) β the Kernel API Manual moment
okay so bestie, you've wandered into the Kernel API Manual and honestly? iconic. we're talking about genphy_aneg_done(9) today, and yes it's a mouthful, but it's giving "tiny function, huge responsibility." let's go β¨
πΈ NAME πΈ
genphy_aneg_done β return auto-negotiation status
like, it literally just tells you where auto-negotiation is at. that's the whole job. main character energy fr fr π
π¦ SYNOPSIS π¦
int genphy_aneg_done (struct phy_device *phydev );
π ARGUMENTS π
phydevβ the targetphy_devicestruct π«Ά like, the phy device you're asking about. that's your girl. hand her over and she'll get checked.
β DESCRIPTION β
So here's the tea β β the function reads the status register and returns 0 in either of these two situations:
- auto-negotiation is incomplete (still cooking, not done yet π), or
- there was an error (oops π)
and then β plot twist β it returns BMSR_ANEGCOMPLETE if auto-negotiation is done. that's it. that's the whole vibe check. slay π
no cap,0is doing double duty here: "not finished" and "something went wrong" both land on0. so don't go assuming0means everything's chill π
π₯ SEE ALSO π₯
the whole phy friend group showed up to this one, bestie. every single one. go say hi π
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_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_support_eee(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)
also the kernel file ./drivers/net/phy/phy_device.c β that's where the magic lives, iykyk π§
okay that's the whole page bestie, you ate that π this lil manspage is served from ./drivers/net/phy and it's stamped October 2026 β so like, future-dated slay π bye pookie, go read your status register π
π¦ 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