__e1000_write_phy_reg_hv(9)
β¨ __e1000_write_phy_reg_hv β the Kernel API Manual entry you didn't know you needed β¨
Okay bestie, sit down, grab a strawberry drink π, because we're diving into a Kernel API Manual page for a lil function called __e1000_write_phy_reg_hv. Yes it has two underscores, no we're not renaming it, that's its whole thing π
πΈ NAME πΈ
__e1000_write_phy_reg_hv β literally just writes an HV PHY register. That's it, that's the job π«Ά
π¦ SYNOPSIS π¦
s32 __e1000_write_phy_reg_hv (struct e1000_hw *hw , u32 offset , u16
data , bool locked , bool page_set );
Look at her. Five whole parameters. Main character signature energy fr fr π
π ARGUMENTS π
hwβ pointer to the HW structure. The hardware bestie we're working with πoffsetβ the register offset you're writing to. Where the data's gonna live β¨dataβ the actual data being written at that register offset. The content itself, the substance, the moment πlockedβ tells you whether the semaphore has already been acquired or not. Like, is the door already open or do we need to knock? πͺpage_setβBM_WUC_PAGEis already set and access is enabled. Already prepped, already slay π
π DESCRIPTION π
So here's the vibe: it acquires the semaphore if necessary, then writes the data to the PHY register at the offset. And then β super important β it releases any acquired semaphores before exiting. No semaphore left behind, no leaked locks, we are responsible in this household π€β¨
That's genuinely the whole description. Short. Efficient. It's giving minimalism π
π₯ SEE ALSO π₯
Okay this is the long part, and yes we're doing all of them, don't @ me π First up, the source file itself:
Kernel file ./drivers/net/ethernet/intel/e1000e/phy.c
And now the full friendship circle π«Ά:
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)
That's seventy-something cross references and we listed every single one because that's what she deserves πβ¨
π Real talk though: this page is from ./drivers/net/ethernet/intel/e... (the path got cut off in the footer, rip π), dated October 2026, and it lives under the Kernel API Manual name. So when you cite it, cite it right, iykyk π§
Stay hydrated, release your semaphores, and remember: acquire if necessary, release before exiting. 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