e1000_write_phy_reg_hv(9)
π e1000_write_phy_reg_hv(9) β the Kernel API Manual glow-up
okay so bestie, we're in the Kernel API Manual and today's main character is e1000_write_phy_reg_hv β yes that's the whole name, she's not shortening it, and honestly? iconic. she writes an HV PHY register. that's the whole gig. let's get into it π
β¨ NAME β¨
e1000_write_phy_reg_hv β Write HV PHY register π
π¦ SYNOPSIS π¦
s32 e1000_write_phy_reg_hv (struct e1000_hw *hw , u32 offset , u16 data
);
like yes, it returns an s32, and yes, those are three arguments, we'll go through them one by one, don't panic π«Ά
πΈ ARGUMENTS πΈ
hwβ pointer to the HW structure. this is the hardware context, she's holding all the state, be nice to her.offsetβ register offset to write to. like where in the register map you're landing πΊοΈdataβ data to write at register offset. the actual payload, the thing that goes in the slot β¨
π DESCRIPTION π
okay so the vibe is: it acquires the semaphore, then writes the data to the PHY register at the offset. that's it, that's the function. then it releases the acquired semaphores before exiting β like a good houseguest, she does not leave the semaphore hanging, periodt. π
so: lock, write, unlock, dip. no cap.
π₯ SEE ALSO π₯
the friend group is huge, buckle up bestie, we're tagging everyone π
- Kernel file
./drivers/net/ethernet/intel/e1000e/phy.cβ that's where she lives, her home address e1000e_check_reset_block_generic(9)e1000e_get_phy_id(9)e1000e_phy_reset_dsp(9)e1000e_read_phy_reg_mdic(9)e1000e_write_phy_reg_mdic(9)e1000e_read_phy_reg_m88(9)e1000e_write_phy_reg_m88(9)e1000_set_page_igp(9)__e1000e_read_phy_reg_igp(9)e1000e_read_phy_reg_igp(9)e1000e_read_phy_reg_igp_locked(9)__e1000e_write_phy_reg_igp(9)e1000e_write_phy_reg_igp(9)e1000e_write_phy_reg_igp_locked(9)__e1000_read_kmrn_reg(9)e1000e_read_kmrn_reg(9)e1000e_read_kmrn_reg_locked(9)__e1000_write_kmrn_reg(9)e1000e_write_kmrn_reg(9)e1000e_write_kmrn_reg_locked(9)e1000_set_master_slave_mode(9)e1000_copper_link_setup_82577(9)e1000e_copper_link_setup_m88(9)e1000e_copper_link_setup_igp(9)e1000_phy_setup_autoneg(9)e1000_copper_link_autoneg(9)e1000e_setup_copper_link(9)e1000e_phy_force_speed_duplex_igp(9)e1000e_phy_force_speed_duplex_m88(9)e1000_phy_force_speed_duplex_ife(9)e1000e_phy_force_speed_duplex_setup(9)e1000e_set_d3_lplu_state(9)e1000e_check_downshift(9)e1000_check_polarity_m88(9)e1000_check_polarity_igp(9)e1000_check_polarity_ife(9)e1000_wait_autoneg(9)e1000e_phy_has_link_generic(9)e1000e_get_cable_length_m88(9)e1000e_get_cable_length_igp_2(9)e1000e_get_phy_info_m88(9)e1000e_get_phy_info_igp(9)e1000_get_phy_info_ife(9)e1000e_phy_sw_reset(9)e1000e_phy_hw_reset_generic(9)e1000e_get_cfg_done_generic(9)e1000e_phy_init_script_igp3(9)e1000e_get_phy_type_from_id(9)e1000e_determine_phy_address(9)e1000_get_phy_addr_for_bm_page(9)e1000e_write_phy_reg_bm(9)e1000e_read_phy_reg_bm(9)e1000e_read_phy_reg_bm2(9)e1000e_write_phy_reg_bm2(9)e1000_enable_phy_wakeup_reg_access_bm(9)e1000_disable_phy_wakeup_reg_access_bm(9)e1000_access_phy_wakeup_reg_bm(9)e1000_power_up_phy_copper(9)e1000_power_down_phy_copper(9)__e1000_read_phy_reg_hv(9)e1000_read_phy_reg_hv(9)e1000_read_phy_reg_hv_locked(9)e1000_read_phy_reg_page_hv(9)__e1000_write_phy_reg_hv(9)e1000_write_phy_reg_hv_locked(9)e1000_write_phy_reg_page_hv(9)e1000_get_phy_addr_for_hv_page(9)e1000_access_phy_debug_regs_hv(9)e1000_link_stall_workaround_hv(9)e1000_check_polarity_82577(9)e1000_phy_force_speed_duplex_82577(9)e1000_get_phy_info_82577(9)e1000_get_cable_length_82577(9)
and that's the whole page bestie, you ate that π
sign-off time π this lil masterpiece comes from source ./drivers/net/ethernet/intel/e... and it's dated October 2026 β so mark your calendars, e1000_write_phy_reg_hv(9) is literally booked and busy πβ¨
π¦ 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