igb_write_phy_reg_igp(9)
π igb_write_phy_reg_igp(9) β the Kernel API Manual glow-up β¨
okay so bestie, welcome to the igb_write_phy_reg_igp page from the Kernel API Manual π this one's short and sweet and honestly kind of iconic for it.
πΈ NAME πΈ
igb_write_phy_reg_igp β write an igp PHY register π
β¨ SYNOPSIS β¨
s32 igb_write_phy_reg_igp (struct e1000_hw *hw , u32 offset , u16 data
);
like, that's the whole signature. no notes. she's tidy π«Ά
π¦ ARGUMENTS π¦
hwβ pointer to the HW structure π that's your hardware context right there, the main character of this whole operationoffsetβ register offset to write to β literally which register you're sliding intodataβ data to write at register offset πΈ the actual payload, the moment, the reason we're all here
π DESCRIPTION π
okay so here's the vibe: she acquires the semaphore first β but only if necessary, no cap π β and then she writes the data to the PHY register at the offset. super straightforward, does exactly what it says on the tin π
and then, bestie, listen: she releases any acquired semaphores before exiting π not me being obsessed with proper cleanup. she does NOT leave a semaphore held on her way out. that's called manners and she has them fr fr β¨
π SEE ALSO π
- Kernel file
./drivers/net/ethernet/intel/igb/e1000_phy.c igb_check_reset_block(9)igb_get_phy_id(9)igb_phy_reset_dsp(9)igb_read_phy_reg_mdic(9)igb_write_phy_reg_mdic(9)igb_read_phy_reg_i2c(9)igb_write_phy_reg_i2c(9)igb_read_sfp_data_byte(9)igb_read_phy_reg_igp(9)igb_copper_link_setup_82580(9)igb_copper_link_setup_m88(9)igb_copper_link_setup_m88_gen2(9)igb_copper_link_setup_igp(9)igb_copper_link_autoneg(9)igb_phy_setup_autoneg(9)igb_setup_copper_link(9)igb_phy_force_speed_duplex_igp(9)igb_phy_force_speed_duplex_m88(9)igb_phy_force_speed_duplex_setup(9)igb_set_d3_lplu_state(9)igb_check_downshift(9)igb_check_polarity_m88(9)igb_check_polarity_igp(9)igb_wait_autoneg(9)igb_phy_has_link(9)igb_get_cable_length_m88(9)igb_get_cable_length_igp_2(9)igb_get_phy_info_m88(9)igb_get_phy_info_igp(9)igb_phy_sw_reset(9)igb_phy_hw_reset(9)igb_phy_init_script_igp3(9)igb_initialize_M88E1512_phy(9)igb_initialize_M88E1543_phy(9)igb_power_up_phy_copper(9)igb_power_down_phy_copper(9)igb_check_polarity_82580(9)igb_phy_force_speed_duplex_82580(9)igb_get_phy_info_82580(9)igb_get_cable_length_82580(9)igb_set_master_slave_mode(9)
like yes that's a lot of siblings but they're all family π go read them too iykyk π₯
okay that's the page!! mwah π this one lives in ./drivers/net/ethernet/intel/igb, dated October 2026, and the whole thing is served up by that manpage source, so that's your sign-off bestie β 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