e1000e_read_phy_reg_bm2(9)
π e1000e_read_phy_reg_bm2(9)
okay so bestie, welcome to the Kernel API Manual β yes we're reading kernel docs for fun now, we contain multitudes π this one is e1000e_read_phy_reg_bm2, and honestly? iconic little helper. it does exactly one thing and does it adorably.
β¨ NAME β¨
e1000e_read_phy_reg_bm2 β Read BM PHY register π¦
like, literally just "read the BM PHY register". no notes. main character energy.
πΈ SYNOPSIS πΈ
s32 e1000e_read_phy_reg_bm2 (struct e1000_hw *hw , u32 offset , u16
*data );
returns an s32 (status vibes, iykyk), takes a struct e1000_hw *, a u32 offset, and a u16 * where the good stuff lands π
π ARGUMENTS π
hwβ pointer to the HW structure. this is your hardware bff, the whole context of the NIC. π«Άoffsetβ register offset to be read. yes it's the exact register you want, be precise bestie.dataβ pointer to the read data. it's au16 *, so what gets read out of the register gets parked in here. π
π₯ DESCRIPTION π₯
okay so here's the whole plot: it acquires the semaphore, if necessary, then reads the PHY register at offset and stores the retrieved information in data. πβ¨
and the cleanup is the responsible part β it releases any acquired semaphores before exiting. no locked semaphores left behind, we don't do that here π periodt.
ngl the "if necessary" and "any acquired" wording is doing heavy lifting β semaphores only get grabbed when they need to be, and whatever got grabbed gets released. no cap.
π¦ SEE ALSO π¦
kernel file: ./drivers/net/ethernet/intel/e1000e/phy.c
the whole friend group, in order, no gatekeeping:
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_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, every flag, every function, every crumb preserved π
and for the cute sign-off: this lilslice of documentation lives in ./drivers/net/ethernet/intel/e... (the path got truncated in the footer but that's what it says, we respect it π) and it's dated October 2026 β future-core of it all β slay, bye! ππ§π
π¦ 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