__e1000e_write_phy_reg_igp(9)
π
__e1000e_write_phy_reg_igp β from the Kernel API Manual, bestie
okay so we're diving into the kernel, specifically the e1000e driver, and this function is literally the one that writes to an igp PHY register. lowkey iconic, highkey niche. let's get into it π«Ά
β¨ NAME β¨
__e1000e_write_phy_reg_igp β writes to an 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 , bool locked );
it gives you back an s32, so likeβ¦ check your return value, queen. πΈ
π ARGUMENTS π
hwβ pointer to the HW structure. it's giving "here's the hardware, do something with it" energy πoffsetβ the register offset you wanna write to. pick your spot β¨dataβ the actual data getting written at that register offset. this is the payload, the main character of the operation πlockedβ a bool that tells you whether the semaphore has already been acquired or not. like, is the door already held open or are we grabbing the handle ourselves π
π DESCRIPTION π
so here's the tea β: this function acquires the semaphore if necessary, then writes the data to the PHY register at the offset. and then β and this is the responsible part β it releases any acquired semaphores before exiting. clean up after yourself, bestie, that's the rule π
literally: lock it up if you gotta, do the write, unlock what you locked, leave. periodt.
heads up π«Ά: whether it grabs the semaphore depends on that locked argument β if it's already been acquired, it won't re-acquire. that's the whole point of passing it in.
π₯ SEE ALSO π₯
the kernel file lives right here: ./drivers/net/ethernet/intel/e1000e/phy.c π
and now the friend group β every single one of these, no skips, fr fr:
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)
that's the whole page, bestie π source came from ./drivers/net/ethernet/intel/e... (the path gets truncated in the footer, we don't make the rules π), and it's stamped October 2026 β so yeah, future-dated and thriving π¦β¨ ily, go write some registers responsibly! π
π¦ 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