genphy_read_status(9)
π genphy_read_status(9) β like, the Kernel API Manual one, bestie
okay so this is a page straight out of the Kernel API Manual, and ngl it's a whole little glow-up routine for your ethernet link. sit down, grab a matcha, we're reading a PHY's status. π
β¨ NAME β¨
genphy_read_status β check the link status and update the current link state. that's it, that's the vibe check. π¦
πΈ SYNOPSIS πΈ
int genphy_read_status (struct phy_device *phydev );
π ARGUMENTS π
phydevβ the targetphy_devicestruct. this is the main character, the one we're reading status on. π
π DESCRIPTION π
so the way this works: first it checks the link, then it figures out the current state by comparing what we advertise with what the link partner advertises. like a little compatibility quiz but for networking. π
and the order matters β it starts by checking the gigabit possibilities first (yes queen, gigabit gets priority), and then moves on to 10/100. iconic behavior honestly. β¨π₯
π¦ SEE ALSO π¦
the source of truth for all this is the kernel file ./drivers/net/phy/phy_device.c, and here's the whole group chat of related peeps β all of them (9) section, no cap:
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_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)
and that's the whole page, bestie π
β shipped from ./drivers/net/phy, dated October 2026, version genphy_read_status(9). go forth and read those links, 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