igb_read_sfp_data_byte(9)
πΈ igb_read_sfp_data_byte(9) πΈ
okay so bestie, welcome to the Kernel API Manual β this is the page for igb_read_sfp_data_byte(9), and it's honestly such a little icon. it reads SFP module data, one byte at a time, and yes it's as niche as it sounds π
let's get into it.
π NAME π
igb_read_sfp_data_byte β reads SFP module data. that's it, that's the whole job, and she does it flawlessly fr fr.
β¨ SYNOPSIS β¨
s32 igb_read_sfp_data_byte (struct e1000_hw *hw , u16 offset , u8 *data
);
like, three little args and a dream π
π¦ ARGUMENTS π¦
hwβ pointer to the HW structure. it's giving "hi here's the hardware, do ur thing" πoffsetβ byte location offset to be read. literally telling it which byte you want, no guessing bestie.dataβ read data buffer pointer. this is where the answer goes when she's done slaying π«
π DESCRIPTION π
so basically it reads one byte from SFP module data, and that data lives either in the SFP's very own EEPROM memory or in the SFP diagnostic area β depends on the vibe check you give it β¨
and here's the important part, no cap: you gotta call this function with the right wrapper for what you're trying to reach:
E1000_I2CCMD_SFP_DATA_ADDR(<byte offset>)β use this one for SFP module database access πE1000_I2CCMD_SFP_DIAG_ADDR(<byte offset>)β use this one for SFP diagnostics parameters access π©Ί
like please pick the right one, bestie, it's literally in the function's whole personality π
π SEE ALSO π
first up, the source of truth β the kernel file she lives in:
- Kernel file
./drivers/net/ethernet/intel/igb/e1000_phy.c
and then the whole friend group, the entire igb phy crew, all 40 of them, all iconic in their own way π«Ά:
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_phy_reg_igp(9)igb_write_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)
aaaand that's the page!! mwah π this cutie lives over in ./drivers/net/ethernet/intel/igb and the page itself is dated October 2026 β so yeah, she's from the future, main character energy only πβ¨π
π¦ 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