genphy_c45_read_lpa(9)
π genphy_c45_read_lpa (9) β Kernel API Manual, bestie edition π
okay so welcome to the group chat, the manual name is literally genphy_c45_read_lpa(9) and today we're reading the link partner's whole vibe. no cap.
β¨ NAME β¨
genphy_c45_read_lpa β read the link partner advertisement and pause π«Ά
π¦ SYNOPSIS π¦
int genphy_c45_read_lpa (struct phy_device *phydev );
π ARGUMENTS π
phydevβ the targetphy_devicestruct. that's the main character right there π
πΈ DESCRIPTION πΈ
okay so picture this: we read the Clause 45 defined base (7.19) and 10G (7.33) status registers, and we fill in the link partner advertisement, pause and asym_pause members in phydev. the way that it justβ¦ populates the struct. iconic. π
key deets, bestie, don't skip:
- this assumes that the auto-negotiation MMD is present β¨
- and that the backplane bit (
7.48.0) is clear β¨ - Clause 45 PHY drivers are expected to fill in the remainder of the link partner advert from vendor registers β like yes, do the rest yourself, we only did the base and 10G part π
no cap, that's the whole job. slay.
β reminder: the assumptions above are load-bearing. auto-negotiation MMD present, backplane bit 7.48.0 clear. don't come for me if you skip those.
π SEE ALSO π
the kernel file is ./drivers/net/phy/phy-c45.c, and here's the whole friend group π₯:
genphy_c45_baset1_able(9)genphy_c45_pma_can_sleep(9)genphy_c45_pma_resume(9)genphy_c45_pma_suspend(9)genphy_c45_pma_baset1_setup_master_slave(9)genphy_c45_pma_setup_forced(9)genphy_c45_an_config_aneg(9)genphy_c45_an_disable_aneg(9)genphy_c45_restart_aneg(9)genphy_c45_check_and_restart_aneg(9)genphy_c45_pma_soft_reset(9)genphy_c45_an_setup_master_slave(9)genphy_c45_read_master_slave(9)genphy_c45_aneg_done(9)genphy_c45_read_link(9)genphy_c45_pma_baset1_read_master_slave(9)genphy_c45_read_pma(9)genphy_c45_read_mdix(9)genphy_c45_write_eee_adv(9)genphy_c45_read_eee_adv(9)genphy_c45_read_eee_lpa(9)genphy_c45_read_eee_cap1(9)genphy_c45_read_eee_cap2(9)genphy_c45_read_eee_abilities(9)genphy_c45_an_config_eee_aneg(9)genphy_c45_pma_baset1_read_abilities(9)genphy_c45_pma_read_ext_abilities(9)genphy_c45_pma_read_abilities(9)genphy_c45_read_status(9)genphy_c45_config_aneg(9)genphy_c45_fast_retrain(9)genphy_c45_plca_get_cfg(9)genphy_c45_plca_set_cfg(9)genphy_c45_plca_get_status(9)genphy_c45_eee_is_active(9)genphy_c45_ethtool_get_eee(9)genphy_c45_ethtool_set_eee(9)oatc14_cable_test_get_result_code(9)genphy_c45_oatc14_cable_test_get_status(9)genphy_c45_oatc14_cable_test_start(9)oatc14_update_sqi_capability(9)genphy_c45_oatc14_get_sqi_max(9)genphy_c45_oatc14_get_sqi(9)
and that's the page, bestie π§ this one lives in ./drivers/net/phy, dated October 2026 β go read your PHYs, ily, 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