genphy_read_abilities(9)
π genphy_read_abilities(9) β like, the Kernel API Manual page, bestie π
okay so real talk: this is section 9 of the Kernel API Manual and honestly it's such a little function with such a big job. genphy_read_abilities β say it with me, gen-phy-read-abilities β is the one who goes and asks the PHY what it can do. Obsessed.
β¨ SYNOPSIS β¨
int genphy_read_abilities (struct phy_device *phydev );
literally that's it. one function, one argument, zero drama. π
π«Ά ARGUMENTS π«Ά
phydevβ the targetphy_devicestruct. that's the one. that's who we're reading from. she's the main character here. π
πΈ DESCRIPTION πΈ
so what does it actually do? it reads the PHY's abilities β and then it populates phydev->supported accordingly. that's the whole vibe. no cap.
the way that it pulls the abilities straight out of the Clause 22 registers?? iconic. it's giving "let me check your resume" energy. π
β RETURN β
0on success π< 0on failure π
(and yes, that's "less than zero", not "negative zero", don't @ me β anything below 0 means it did not slay.)
ngl, always check the return value.0= we ate. below0= we did not eat. periodt.
π¦ SEE ALSO π¦
the friend group is huge, buckle up β these all live in the kernel file ./drivers/net/phy/phy_device.c:
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_read_status(9)genphy_c37_read_status(9)genphy_soft_reset(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 I said. friend group: enormous. iykyk π
and that's the page!! mwah π she lives in ./drivers/net/phy, dated October 2026, and she's part of the Kernel API Manual (that's section 9, duh). go read your PHY's abilities, bestie β you've got this π§πβ¨
π¦ 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