genphy_read_status_fixed(9)
π genphy_read_status_fixed(9) β from the Kernel API Manual β¨
okay so bestie, welcome to the Kernel API Manual, entry number nine, and this one is a little legend in the PHY world. it's giving "quietly doing the important thing while everyone else is busy negotiating." no cap. π
β¨ NAME β¨
genphy_read_status_fixed β read the link parameters for !aneg mode π¦
(yes, that's literally a not-aneg exclamation mark, it's not yelling at you, it's C-ese for "negation." iykyk π )
π¦ SYNOPSIS π¦
int genphy_read_status_fixed (struct phy_device *phydev );
notice the teeny space before that closing paren β that's not me being messy, that's canon. copy it exact if you're copying it, mkay? π«Ά
π ARGUMENTS π
phydevβ the targetstruct phy_device. that's your main character right there, the whole reason we're here. give it a little kiss on the forehead for me. π
πΈ DESCRIPTION πΈ
so here's the vibe check: this function reads the current duplex and speed state for a PHY that's operating with autonegotiation disabled. π₯
that's the whole thing. that's the post. when aneg is off, nobody's out there negotiating for you, so somebody's gotta go look at what the link is actually doing β and that somebody is genphy_read_status_fixed. literally the responsible friend of the group chat. π
no guessing, no inventing, no "ooh maybe it also does X" β the manual says duplex and speed, so duplex and speed it is. periodt. π
π SEE ALSO π
everything is family here, so here's the whole extended crew, living in the kernel file ./drivers/net/phy/phy_device.c π β and fr fr, there's a lot of them:
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(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)
likeβ¦ the whole roster. take your time. π§
π cute little sign-off: this page lives under ./drivers/net/phy, it's dated October 2026, and that's the tea bestie β 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