igb_setup_tx_mode(9)
π igb_setup_tx_mode(9) β the Kernel API Manual page, but make it make sense
okay bestie, welcome to Kernel API Manual, section 9. today's main character is igb_setup_tx_mode. it's giving "small function, big job" energy and honestly? we stan. let's get into it π
β¨ NAME β¨
igb_setup_tx_mode β flips the controller in and out of Qav Tx mode when that's the move π
π¦ SYNOPSIS π¦
void igb_setup_tx_mode (struct igb_adapter *adapter );
like, that's the whole call. one arg, no return, no drama. periodt.
πΈ ARGUMENTS πΈ
adapterβ a pointer to the adapter struct π«Ά that's it. that's the one thing it wants from you.
π DESCRIPTION π
okay so here's the tea β β this function configures the TQAVCTRL register, which is what actually switches the controller's Tx mode around. it does that when FQTSS mode gets enabled or disabled (whichever one applies, iykyk).
and that's not all, because she's thorough β¨ β it additionally issues a call to igb_config_tx_modes per queue, so any previously saved Tx parameters get applied. every queue. no queue left behind. we love a function that double-checks. π₯
π SEE ALSO π
the kernel file lives right here, no cap:
./drivers/net/ethernet/intel/igb/igb_main.c
and these are all the siblings/friends in the family group chat π§π (bestie there are so many, hydrate before you scroll):
igb_get_i2c_data(9),igb_set_i2c_data(9),igb_set_i2c_clk(9),igb_get_i2c_clk(9),igb_get_hw_dev(9),igb_init_module(9),igb_exit_module(9),igb_cache_ring_register(9),igb_write_ivar(9),igb_configure_msix(9),igb_request_msix(9),igb_free_q_vector(9),igb_reset_q_vector(9),igb_free_q_vectors(9),igb_clear_interrupt_scheme(9),igb_set_interrupt_capability(9),igb_alloc_q_vector(9),igb_alloc_q_vectors(9),igb_init_interrupt_scheme(9),igb_request_irq(9),igb_irq_disable(9),igb_irq_enable(9),igb_release_hw_control(9),igb_get_hw_control(9),igb_config_tx_modes(9),igb_configure(9),igb_power_up_link(9),igb_power_down_link(9),igb_check_swap_media(9),igb_up(9),igb_set_i2c_bb(9),igb_set_fw_version(9),igb_init_mas(9),igb_init_i2c(9),igb_probe(9),igb_remove_i2c(9),igb_remove(9),igb_probe_vfs(9),igb_sw_init(9),__igb_open(9),__igb_close(9),igb_setup_tx_resources(9),igb_setup_all_tx_resources(9),igb_setup_tctl(9),igb_configure_tx_ring(9),igb_configure_tx(9),igb_setup_rx_resources(9),igb_setup_all_rx_resources(9),igb_setup_mrqc(9),igb_setup_rctl(9),igb_setup_srrctl(9),igb_configure_rx_ring(9),igb_configure_rx(9),igb_free_tx_resources(9),igb_free_all_tx_resources(9),igb_clean_tx_ring(9),igb_clean_all_tx_rings(9),igb_free_rx_resources(9),igb_free_all_rx_resources(9),igb_clean_rx_ring(9),igb_clean_all_rx_rings(9),igb_set_mac(9),igb_write_mc_addr_list(9),igb_set_rx_mode(9),igb_has_link(9),igb_check_lvmmc(9),igb_watchdog(9),igb_update_ring_itr(9),igb_update_itr(9),igb_tx_timeout(9),igb_get_stats64(9),igb_change_mtu(9),igb_update_stats(9),igb_set_uta(9),igb_intr_msi(9),igb_intr(9),igb_poll(9),igb_clean_tx_irq(9),igb_reuse_rx_page(9),igb_add_rx_frag(9),igb_is_non_eop(9),igb_cleanup_headers(9),igb_process_skb_fields(9),igb_alloc_rx_buffers(9),igb_mii_ioctl(9),igb_ioctl(9),igb_io_error_detected(9),igb_io_slot_reset(9),igb_io_resume(9),igb_rar_set_index(9),igb_read_i2c_byte(9),igb_write_i2c_byte(9)
and that's the whole vibe check π
this page lives in ./drivers/net/ethernet/intel/igb and it's dated October 2026 β so like, remember it forever, mwah πβ¨π
π¦ 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