__e1000_write_kmrn_reg(9)
π
__e1000_write_kmrn_reg β Write kumeran register β¨
okay bestie, so this page is from the Kernel API Manual, section 9 (that's the kernel devs' little corner of the man universe π«Ά). Pull up a chair, we're writing to a PHY register through the kumeran interface today, and honestly? it's giving tiny-but-important. π
πΈ NAME πΈ
__e1000_write_kmrn_reg β write a kumeran register, that's the whole vibe β¨
π SYNOPSIS π
s32 __e1000_write_kmrn_reg (struct e1000_hw *hw , u32 offset , u16 data
, bool locked );
returns an s32 (yes, the status int, she's back π), takes the HW structure pointer, the offset, the data, and a locked bool.
π¦ ARGUMENTS π¦
hwβ pointer to the HW structure π like, the whole hardware state, she's the main character hereoffsetβ the register offset you're writing to, i.e. where in register-land we're landingdataβ the actual data to write at that register offset, the payload, the moment πlockedβ a bool telling you whether the semaphore has already been acquired or not π (this matters, keep reading)
π DESCRIPTION π
So the way this works, bestie: it acquires the semaphore if necessary β but only if necessary, which is literally what locked is about π«Ά β then it writes data to the PHY register at offset using the kumeran interface β¨. And before it exits, it releases any semaphores it acquired. Clean. Tidy. No leaked locks. Periodt. π
ngl theif necessary+release any acquiredcombo is the whole plot: iflockedsays someone already grabbed it, she doesn't double-grab, and she only lets go of what she took. Respect the lock etiquette fr fr π
π₯ SEE ALSO π₯
Kernel file: ./drivers/net/ethernet/intel/e1000e/phy.c β that's where the lore lives, iykyk π
And okay here's the friend group, the whole PHY register squad, no cap, all of them π:
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)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)
and that's the page, bestie! ππ quick sign-off realness: this icon was born from ./drivers/net/ethernet/intel/e... and the page itself is dated October 2026, living under the same __e1000_write_kmrn_reg(9) name she started with π go write some kumeran registers, ily π«Άβ¨
π¦ 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