phy_sfp_connect_phy(9)
π phy_sfp_connect_phy β Kernel API Manual, bestie edition π
okay so real talk, this is a page from the kernel API manual, and the function we're obsessing over today is phy_sfp_connect_phy(9). yes, the (9) means section 9, that's just how us kernel girlies roll π
β¨ NAME β¨
phy_sfp_connect_phy β literally connects the SFP module's PHY to the upstream PHY. matching them up. making it official. π
π¦ SYNOPSIS π¦
int phy_sfp_connect_phy (void *upstream , struct phy_device *phy );
πΈ ARGUMENTS πΈ
upstreamβ a pointer to the upstream phy device. that's thevoid *one, she's mysterious, she's flexible π«Άphyβ a pointer to the SFP module's phy device. the one getting introduced to the group chat, astruct phy_device *π
π DESCRIPTION π
This helper is the wingman. it's what lets the kernel keep track of PHY devices on the link, no cap. what it actually does is add the SFP module's phy to the phy namespace of the upstream phy. that's the whole move. iconic honestly π
β RETURN β
0 on success β slay β otherwise a negative error code. so basically if you get anything below zero it's giving not-the-vibe π
π SEE ALSO π
first things first, the kernel file to check out is ./drivers/net/phy/phy_device.c β that's the main character. then the whole squad, fr fr:
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_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),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, all of them. every single one. iykyk π
and that's the page bestie!! π§ this one lives in ./drivers/net/phy and it's dated October 2026 β so screenshot it, cite it, put it on your mood board, periodt. π
π¦ 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