ixgbe_in_i2c_byte_ack(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… ixgbe_in_i2c_byte_ack (9) β€” Kernel API Manual ✨

okay so bestie, grab your iced coffee πŸ“ because we're diving into the Intel ixgbe driver's I2C corner of the kernel, and honestly? it's giving niche-but-iconic. this is section 9 of the Kernel API Manual, so it's a kernel function page, not a command you type at your shell β€” important vibe check first 🫢


🌸 NAME 🌸

ixgbe_in_i2c_byte_ack β€” receive an I2C byte and send ack. literally that's the whole job. it clocks in a byte and then says "ack" back. queen behavior πŸ‘‘


πŸŽ€ SYNOPSIS πŸŽ€

int ixgbe_in_i2c_byte_ack (struct ixgbe_hw *hw , u8 *byte );

it returns an int, it takes a hardware pointer and a u8 pointer. no cap, that's it πŸ’–


πŸ¦‹ ARGUMENTS πŸ¦‹

  • hw β€” pointer to the hardware structure. you know the one, the struct ixgbe_hw *. it's the main character here πŸ‘‘
  • byte β€” pointer to a u8 to receive the byte. yes, it's a pointer, so the byte gets written back through it. the function hands the byte back to you via this lil pointer, so don't pass garbage ✨

🌈 DESCRIPTION 🌈

so what does it actually do? it receives an I2C byte, then sends an ack. the manpage keeps it short and sweet: it returns an error code on error. that's the whole story. if something goes sideways, you get a non-success return value, so check it πŸ‘€

pro-tip from the page itself: check that return value. errors are a whole thing 😭

πŸ’œ SEE ALSO πŸ’œ

okay this list is long and honestly it ate. here's the whole squad, all of them from the kernel file ./drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c β€” because yeah, that's where these live:

ixgbe_out_i2c_byte_ack(9), ixgbe_ones_comp_byte_add(9), ixgbe_read_i2c_combined_generic_int(9), ixgbe_write_i2c_combined_generic_int(9), ixgbe_probe_phy(9), ixgbe_identify_phy_generic(9), ixgbe_check_reset_blocked(9), ixgbe_get_phy_id(9), ixgbe_get_phy_type_from_id(9), ixgbe_reset_phy_generic(9), ixgbe_read_phy_reg_mdi(9), ixgbe_read_phy_reg_generic(9), ixgbe_write_phy_reg_mdi(9), ixgbe_write_phy_reg_generic(9), ixgbe_msca_cmd(9), ixgbe_mii_bus_read_generic_c22(9), ixgbe_mii_bus_read_generic_c45(9), ixgbe_mii_bus_write_generic_c22(9), ixgbe_mii_bus_write_generic_c45(9), ixgbe_mii_bus_read_c22(9), ixgbe_mii_bus_read_c45(9), ixgbe_mii_bus_write_c22(9), ixgbe_mii_bus_write_c45(9), ixgbe_x550em_a_mii_bus_read_c22(9), ixgbe_x550em_a_mii_bus_read_c45(9), ixgbe_x550em_a_mii_bus_write_c22(9), ixgbe_x550em_a_mii_bus_write_c45(9), ixgbe_get_first_secondary_devfn(9), ixgbe_x550em_a_has_mii(9), ixgbe_mii_bus_init(9), ixgbe_setup_phy_link_generic(9), ixgbe_setup_phy_link_speed_generic(9), ixgbe_get_copper_speeds_supported(9), ixgbe_get_copper_link_capabilities_generic(9), ixgbe_check_phy_link_tnx(9), ixgbe_setup_phy_link_tnx(9), ixgbe_reset_phy_nl(9), ixgbe_identify_module_generic(9), ixgbe_identify_sfp_module_generic(9), ixgbe_identify_qsfp_module_generic(9), ixgbe_get_sfp_init_sequence_offsets(9), ixgbe_read_i2c_eeprom_generic(9), ixgbe_read_i2c_sff8472_generic(9), ixgbe_write_i2c_eeprom_generic(9), ixgbe_is_sfp_probe(9), ixgbe_read_i2c_byte_generic_int(9), ixgbe_read_i2c_byte_generic(9), ixgbe_read_i2c_byte_generic_unlocked(9), ixgbe_write_i2c_byte_generic_int(9), ixgbe_write_i2c_byte_generic(9), ixgbe_write_i2c_byte_generic_unlocked(9), ixgbe_i2c_start(9), ixgbe_i2c_stop(9), ixgbe_clock_in_i2c_byte(9), ixgbe_clock_out_i2c_byte(9), ixgbe_get_i2c_ack(9), ixgbe_clock_in_i2c_bit(9), ixgbe_clock_out_i2c_bit(9), ixgbe_raise_i2c_clk(9), ixgbe_lower_i2c_clk(9), ixgbe_set_i2c_data(9), ixgbe_get_i2c_data(9), ixgbe_i2c_bus_clear(9), ixgbe_tn_check_overtemp(9)

like… the whole PHY friend group showed up πŸ’€ go read them, iykyk 🧚


and that's the page!! mwah πŸ’‹ this beauty comes to you from ./drivers/net/ethernet/intel/i... (yes the source path is literally truncated like that on the page, iconic of it) and it's dated October 2026 β€” so mark your calendars bestie, we're reading kernel docs from the future ✨🫢 periodt.

πŸ“¦ where this page comes from