e1000e_write_phy_reg_igp(9)
π e1000e_write_phy_reg_igp(9) β from the Kernel API Manual, bestie β¨
okay so picture this: it's the kernel API manual, it's giving very "internal Intel ethernet lore," and today's main character is a little function called e1000e_write_phy_reg_igp. she writes registers. she takes the semaphore. she cleans up after herself. we stan a responsible queen π
πΈ NAME πΈ
e1000e_write_phy_reg_igp β literally just "write igp PHY register." that's the whole vibe. no cap. π
β¨ SYNOPSIS β¨
s32 e1000e_write_phy_reg_igp (struct e1000_hw *hw , u32 offset , u16
data );
look at her. three args, one return, zero drama. π¦
π«Ά ARGUMENTS π«Ά
hwβ pointer to the HW structure, i.e. the hardware bestie she's working with πoffsetβ the register offset you're writing to (where the data goes, iykyk) πΈdataβ the actual data you're writing at that register offset π
π₯ DESCRIPTION π₯
so here's what goes down: she acquires the semaphore first β not optional, we do NOT skip the semaphore in this house β then writes data to the PHY register at offset. β¨
and because she's a considerate icon, she releases any acquired semaphores before exiting. no locks left behind, no mess, main character energy with good manners. π periodt.
π SEE ALSO π
the kernel file herself lives at ./drivers/net/ethernet/intel/e1000e/phy.c β go say hi π
and because networking is a whole friend group, here's literally everyone she hangs out with (every single one, no skipping π):
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_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(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)
π real talk for a sec: she writes to hardware registers, so if you're the one calling her, you better already hold the right state β that whole "acquires semaphore then releases any acquired semaphores before exiting" thing is not decorative, it's the whole contract. don't be messy. π«Ά
π§ cute little sign-off π§
this page came straight out of ./drivers/net/ethernet/intel/e... (the source path, slightly truncated by the man page gods, but you get it πΈ), dated October 2026. and the manual name? Kernel API Manual, in case you were wondering where all this lore lives. now go forth and write those igp PHY registers, bestie. slay. πβ¨
π¦ 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