ixgbe_check_phy_link_tnx(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

okay so picture this: you're deep in the ixgbe driver, you've got a PHY staring back at you, and you just need to know if the link is up and how fast it's going. That's literally this function. Welcome to the Kernel API Manual entry for ixgbe_check_phy_link_tnx β€” buckle up, she's short but she's iconic ✨


✨ NAME ✨

ixgbe_check_phy_link_tnx β€” the little function whose whole personality is "determine link and speed status" πŸŽ€ ngl that's the whole job and she does it well.


πŸ¦‹ SYNOPSIS πŸ¦‹

int ixgbe_check_phy_link_tnx (struct ixgbe_hw *hw , ixgbe_link_speed
*speed , bool *link_up );

like, yes, it returns an int, and yes, it takes three args. the vibes are immaculate, the signature is non-negotiable πŸ’œ


🫢 ARGUMENTS 🫢

  • hw β€” pointer to hardware structure πŸ’» that's your ride-or-die hardware struct, she goes in first.
  • speed β€” link speed 🏎️ this is where the speed lands, so it can tell you what's what.
  • link_up β€” status of link πŸ”— is she up or is she not, that's the question, and this is where the answer goes.

πŸ’– DESCRIPTION πŸ’–

okay so the tea β˜•: it reads the VS1 register to determine if the link is up and the current speed for the PHY. that's it, that's the whole plot. reads VS1, tells you link status, tells you speed, main character energy only πŸ”₯ no cap, no extra steps, no side quests.

lowkey obsessed with how straightforward this is. read one register, get two answers. efficiency queen πŸ‘‘

🌈 SEE ALSO 🌈

buckle in bestie, this list is LONG and she ate every single time πŸ’€ the kernel file lives at ./drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c, and then we've got the whole extended friend group:

  • ixgbe_out_i2c_byte_ack (9)
  • ixgbe_in_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_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, that's the whole group chat and every single one of them is invited 🫢 iykyk πŸ’œ


and that's the page!! source/version situation: ./drivers/net/ethernet/intel/i..., dated October 2026, and the whole thing is filed under ixgbe_check_phy_link_tnx(9). slay, go read your VS1 register, mwah πŸŽ€πŸ’–βœ¨

πŸ“¦ where this page comes from