t4_wr_mbox_meat_timeout(9)
β¨ t4_wr_mbox_meat_timeout β¨
Okay bestie, welcome to the Kernel API Manual page for t4_wr_mbox_meat_timeout. This is literally the function that sends a command to firmware (FW) through a mailbox, and it's giving main character energy for kernel-to-FW communication. π
πΈ NAME πΈ
t4_wr_mbox_meat_timeout β send a command to FW through the given mailbox. No cap, that's the whole vibe. π
π¦ SYNOPSIS π¦
int t4_wr_mbox_meat_timeout (struct adapter *adap , int mbox , const
void *cmd , int size , void *rpl , bool sleep_ok , int timeout );
π ARGUMENTS π
adapβ the adapter. Like, the whole vibe of the hardware you're talking to. π₯οΈmboxβ index of the mailbox to use. Pick your slot, bestie. π¬cmdβ the command to write. This is what you're saying to FW. π¬sizeβ command length in bytes. Gotta know how much you're sending. πrplβ where to optionally store the reply. If you want FW to text back, put a spot here. π±sleep_okβ if true we may sleep while awaiting command completion. Nap friendly? π΄timeoutβ time to wait for command to finish before timing out. Don't wait forever, bestie. β°
β¨ DESCRIPTION β¨
So what does this actually do? It sends the given command to FW through the selected mailbox and waits for FW to execute it. If rpl is not NULL, it's used to store FW's reply to the command. The command and its optional reply are of the same length. FW can take up to FW_CMD_MAX_TIMEOUT ms to respond. sleep_ok determines whether we may sleep while awaiting the response. If sleeping is allowed we use progressive backoff; otherwise we spin. π
The return value is 0 on success or a negative errno on failure. A failure can happen either because we are not able to execute the command, or FW executes it but signals an error. In the latter case the return value is the error code indicated by FW (negated). So like, if FW says "nah", you get that error back, but negated. Periodt. π
This function is literally the MVP of mailbox communication. π₯
π₯ SEE ALSO π₯
Okay so the SEE ALSO section is literally a whole friend group of functions. Here's the squad:
Kernel file ./drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
t4_wait_op_done_val(9), t4_set_reg_field(9), t4_read_indirect(9),
t4_write_indirect(9), t4_record_mbox(9), t4_memory_rw_init(9),
t4_memory_update_win(9), t4_memory_rw_residual(9), t4_memory_rw(9),
t4_get_regs_len(9), t4_get_regs(9), t4_eeprom_ptov(9), t4_seeprom_wp(9),
t4_get_raw_vpd_params(9), t4_get_vpd_params(9), t4_get_pfres(9),
sf1_read(9), sf1_write(9), flash_wait_op(9), t4_read_flash(9),
t4_write_flash(9), t4_get_fw_version(9), t4_get_bs_version(9),
t4_get_tp_version(9), t4_get_exprom_version(9), t4_get_vpd_version(9),
t4_get_scfg_version(9), t4_get_version_info(9), t4_dump_version_info(9),
t4_check_fw_version(9), t4_flash_erase_sectors(9), t4_flash_cfg_addr(9),
t4_load_fw(9), t4_phy_fw_ver(9), t4_load_phy_fw(9), t4_fwcache(9),
fwcaps16_to_caps32(9), fwcaps32_to_caps16(9), t4_link_acaps(9),
t4_link_l1cfg_core(9), t4_restart_aneg(9), t4_handle_intr_status(9),
t4_slow_intr_handler(9), t4_intr_enable(9), t4_intr_disable(9),
t4_config_rss_range(9), t4_config_glbl_rss(9), t4_config_vi_rss(9),
t4_read_rss(9), t4_tp_fw_ldst_rw(9), t4_tp_indirect_rw(9),
t4_tp_pio_read(9), t4_tp_pio_write(9), t4_tp_tm_pio_read(9),
t4_tp_mib_read(9), t4_read_rss_key(9), t4_write_rss_key(9),
t4_read_rss_pf_config(9), t4_read_rss_vf_config(9),
t4_read_rss_pf_map(9), t4_read_rss_pf_mask(9), t4_tp_get_tcp_stats(9),
t4_tp_get_err_stats(9), t4_tp_get_cpl_stats(9), t4_tp_get_rdma_stats(9),
t4_get_fcoe_stats(9), t4_get_usm_stats(9), t4_read_mtu_tbl(9),
t4_read_cong_tbl(9), t4_tp_wr_bits_indirect(9), init_cong_ctrl(9),
t4_load_mtus(9), t4_get_chan_txrate(9), t4_set_trace_filter(9),
t4_get_trace_filter(9), t4_pmtx_get_stats(9), t4_pmrx_get_stats(9),
compute_mps_bg_map(9), t4_get_mps_bg_map(9), t4_get_tp_e2c_map(9),
t4_get_tp_ch_map(9), t4_get_port_type_description(9),
t4_get_port_stats_offset(9), t4_get_port_stats(9), t4_get_lb_stats(9),
t4_mdio_rd(9), t4_mdio_wr(9), t4_sge_decode_idma_state(9),
t4_sge_ctxt_flush(9), t4_read_sge_dbqtimers(9), t4_fw_hello(9),
t4_fw_bye(9), t4_early_init(9), t4_fw_reset(9), t4_fw_halt(9),
t4_fw_restart(9), t4_fw_upgrade(9), t4_fl_pkt_align(9),
t4_fixup_host_params(9), t4_fw_initialize(9), t4_query_params_rw(9),
t4_set_params_timeout(9), t4_set_params(9), t4_cfg_pfvf(9),
t4_alloc_vi(9), t4_free_vi(9), t4_set_rxmode(9),
t4_free_encap_mac_filt(9), t4_free_raw_mac_filt(9),
t4_alloc_encap_mac_filt(9), t4_alloc_raw_mac_filt(9),
t4_alloc_mac_filt(9), t4_free_mac_filt(9), t4_change_mac(9),
t4_set_addr_hash(9), t4_enable_vi_params(9), t4_enable_vi(9),
t4_enable_pi_params(9), t4_identify_port(9), t4_iq_stop(9),
t4_iq_free(9), t4_eth_eq_free(9), t4_ctrl_eq_free(9),
t4_ofld_eq_free(9), t4_link_down_rc_str(9), fwcap_to_fwspeed(9),
lstatus_to_fwcap(9), t4_handle_get_port_info(9), t4_update_port_info(9),
t4_get_link_params(9), t4_handle_fw_rpl(9), init_link_config(9),
t4_prep_adapter(9), t4_shutdown_adapter(9), t4_bar2_sge_qregs(9),
t4_init_devlog_params(9), t4_init_sge_params(9), t4_init_tp_params(9),
t4_filter_field_shift(9), t4_init_portinfo(9), t4_read_cimq_cfg(9),
t4_read_cim_ibq(9), t4_read_cim_obq(9), t4_cim_read(9), t4_cim_write(9),
t4_cim_read_la(9), t4_tp_read_la(9), t4_idma_monitor_init(9),
t4_idma_monitor(9), t4_load_cfg(9), t4_set_vf_mac_acl(9),
t4_read_pace_tbl(9), t4_get_tx_sched(9), t4_sge_ctxt_rd_bd(9),
t4_i2c_rd(9), t4_set_vlan_acl(9), modify_device_id(9), t4_load_boot(9),
t4_flash_bootcfg_addr(9)
And that's the whole page, bestie! This was from the Kernel API Manual, sourced from ./drivers/net/ethernet/chelsio/cxgb4/t4_hw.c, dated October 2026. Stay slaying! π«Άβ¨
π¦ 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