ytphy_utp_config_aneg(9)
β¨ ytphy_utp_config_aneg(9) β¨
okay so bestie, this is a page from the Kernel API Manual β yes, that Kernel API Manual β and honestly it's giving "small function, big responsibilities" energy π
πΈ NAME πΈ
ytphy_utp_config_aneg β restart auto-negotiation or write BMCR π
π¦ SYNOPSIS π¦
int ytphy_utp_config_aneg (struct phy_device *phydev , bool changed );
π ARGUMENTS π
phydevβ the targetphy_devicestruct, aka the whole reason we're here π«changedβ abool, literally just "whether autoneg is requested" π
π₯ NOTE π₯
okay so listen up, because this part is the actual tea β
If auto-negotiation is enabled, we configure the advertising, and then we restart auto-negotiation. Iconic. If it is not enabled, then we write the BMCR. That's it, that's the branch π
β οΈ no cap: the caller must have taken the MDIO bus lock. Like, must. This isn't a suggestion, it's a vibe check you cannot skip π
And what does it give you back? It returns 0 or negative errno code. Slay π«Ά
π SEE ALSO π
Kernel file ./drivers/net/phy/motorcomm.c β and honestly the whole friend group π§
The ytphy_*_ext girlies (and their lock-free twins):
ytphy_read_ext(9)ytphy_read_ext_with_lock(9)ytphy_write_ext(9)ytphy_write_ext_with_lock(9)ytphy_modify_ext(9)ytphy_modify_ext_with_lock(9)
WOL + page stuff:
The structs (yes they get their own (9) and yes that's iconic):
struct ytphy_cfg_reg_map(9)struct ytphy_ldo_vol_map(9)
The yt8521 crew, part 1:
yt8521_probe(9)ytphy_utp_read_lpa(9)yt8521_adjust_status(9)yt8521_read_status_paged(9)yt8521_read_status(9)yt8521_modify_bmcr_paged(9)yt8521_modify_utp_fiber_bmcr(9)yt8521_soft_reset(9)yt8521_suspend(9)yt8521_resume(9)yt8521_config_init(9)
The yt8521 crew, part 2 (fiber era):
yt8531_link_change_notify(9)yt8521_prepare_fiber_features(9)yt8521_fiber_setup_forced(9)ytphy_check_and_restart_aneg(9)yt8521_fiber_config_aneg(9)ytphy_setup_master_slave(9)ytphy_utp_config_advert(9)
The yt8521 crew, part 3 (aneg & features):
yt8521_config_aneg_paged(9)yt8521_config_aneg(9)yt8521_aneg_done_paged(9)yt8521_aneg_done(9)ytphy_utp_read_abilities(9)yt8521_get_features_paged(9)yt8521_get_features(9)
The yt8821 crew β main character energy, all of them:
yt8821_get_features(9)yt8821_get_rate_matching(9)yt8821_aneg_done(9)yt8821_serdes_init(9)yt8821_utp_init(9)yt8821_auto_sleep_config(9)yt8821_soft_reset(9)yt8821_config_init(9)yt8821_adjust_status(9)yt8821_update_interface(9)yt8821_read_status(9)yt8821_modify_utp_fiber_bmcr(9)yt8821_suspend(9)yt8821_resume(9)
okay that's the whole page, you ate that π β¨
cute lil sign-off: this one lives in ./drivers/net/phy, it's dated October 2026, and it's still answering to the name ytphy_utp_config_aneg(9) β 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