e1000e_write_phy_reg_m88(9)
π NAME
e1000e_write_phy_reg_m88 β write that m88 PHY register, bestie β¨
So this whole page is from the Kernel API Manual, and it's all about one little function that pokes a value into a PHY register. Short king, honestly. π
β¨ SYNOPSIS
s32 e1000e_write_phy_reg_m88 (struct e1000_hw *hw , u32 offset , u16
data );
That's the whole vibe. It hands back an s32, and it takes three things. Keep scrolling for the deets π
π ARGUMENTS
hwβ pointer to the HW structure π«Ά like, the hardware context, the whole situationoffsetβ the register offset you're writing to, i.e. where in the register map we're goingdataβ the actual data you want to write at that register offset, the payload, the moment π«
π¦ DESCRIPTION
Okay so here's the tea β β this function acquires the semaphore, if necessary, and then writes the data to the PHY register at the offset. Simple, iconic, no notes.
And the last part is genuinely important, so don't skip it: it releases any acquired semaphores before exiting. πͺβ¨ Like, always give the lock back. No cap.
Lowkey the semaphore bookkeeping is the whole personality of this function. Acquire if needed, release before you dip. Periodt. π
π SEE ALSO
First up, the kernel file this bad girl lives in:
Kernel file ./drivers/net/ethernet/intel/e1000e/phy.c
And now the full squad, the whole friend group, every single one of them, no girl left behind π:
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),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_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, you ate that π β¨
Oh and before I forget β the footer vibes: this one's sourced from ./drivers/net/ethernet/intel/e... and dated October 2026, and it's still serving e1000e_write_phy_reg_m88(9) energy. 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