e1000e_read_kmrn_reg_locked(9)
π¦ e1000e_read_kmrn_reg_locked β Read kumeran register
okay so this is a page straight out of the Kernel API Manual (section 9, the kernel-functions one, iykyk) β and it's about reading a single kumeran register. tiny function, big main character energy. let's get into it π
β¨ SYNOPSIS β¨
s32 e1000e_read_kmrn_reg_locked (struct e1000_hw *hw , u32 offset , u16
*data );
that's the whole vibe. three args, one return, no cap. π«Ά
π ARGUMENTS π
hwβ pointer to the HW structure π this is the hardware context bestie, everything hangs off it.offsetβ register offset to be read πΈ literally which register you're going for.dataβ pointer to the read data β the goods get written back through here.
π₯ DESCRIPTION π₯
Reads the PHY register at offset using the kumeran interface. The information retrieved is stored in data. π
and the big one, the thing you cannot skip:
Assumes semaphore already acquired. π¨ like, the _locked in the name is not decorative bestie, it's literally telling you the locking is already handled and it's on YOU to have done it. read the room.
the function hands back a s32, so yeah, check your return value. slay. β¨
π SEE ALSO π
Kernel file ./drivers/net/ethernet/intel/e1000e/phy.c β that's the home base π
then the whole extended friend group, in order, no skipping, no cutting corners (there are a LOT of them and we love that for us):
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),__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)
like I said. the whole group chat. ππ«Ά
okay that's the page!! lil sign-off before you go: this one lives over in ./drivers/net/ethernet/intel/e... and it's dated October 2026. go read some kumeran registers bestie, and please acquire that semaphore first. πβ¨ππ¦πΈ
π¦ 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