qed_mcp_cmd(9)
π qed_mcp_cmd β sleepable MCP mailbox command sender (from the Kernel API Manual, qed_mcp_cmd(9))
okay so bestie, gather round, because this one is literally the little function that could: qed_mcp_cmd is a sleepable function for sending commands to the MCP mailbox. Like, the whole operation β from the moment you send the request until the MCP answers back β is wrapped in a mutex lock. One command at a time, no cutting in line, we are classy here π
The wait for that MCP response gets checked every 10ms, up to 5 seconds total. So yes, she waits. patiently. with a timer. β°
π¨ and this is the big one: should not be called from atomic context. fr fr, don't do it. She sleeps, atomic context does not. that's a whole disaster waiting to happen π
β¨ SYNOPSIS β¨
int qed_mcp_cmd (struct qed_hwfn *p_hwfn , struct qed_ptt *p_ptt , u32
cmd , u32 param , u32 *o_mcp_resp , u32 *o_mcp_param );
like, six args, one int, endless vibes πΈ
π ARGUMENTS π
p_hwfnβ the HW device data. the main character of the hardware world πp_pttβ the PTT you need for register access. no PTT, no entry, iykyk π¦cmdβ the command being sent to the MCP. the actual message, the whole point π«Άparamβ optional param. optional! she doesn't have to show up β¨o_mcp_respβ the MCP response code (exclude sequence). this is where the answer lands πo_mcp_paramβ optional parameter provided by the MCP response. MCP said "here, you might want this too" π
π₯ RETURN π₯
Int β and:
0β operation was successul. (that's their spelling, not mine, bestie π but yes, zero equals slay)
π SEE ALSO π
bestie. bestie. sit down. the friend group is massive and every single one of them is here π
First up, the kernel file herself:
./drivers/net/ethernet/qlogic/qed/qed_mcp.h
and now the full roster, no cap, nobody gets left out:
qed_mcp_get_link_params(9),qed_mcp_get_link_state(9),qed_mcp_get_link_capabilities(9),qed_mcp_set_link(9),qed_mcp_get_mfw_ver(9),qed_mcp_get_mbi_ver(9),qed_mcp_get_media_type(9),qed_mcp_get_transceiver_data(9),qed_mcp_trans_speed_mask(9),qed_mcp_get_board_config(9),qed_mcp_cmd_nosleep(9),qed_mcp_drain(9),qed_mcp_get_flash_size(9),qed_mcp_send_drv_version(9),qed_get_process_kill_counter(9),qed_start_recovery_process(9),qed_recovery_prolog(9),qed_mcp_ov_update_current_config(9),qed_mcp_ov_update_driver_state(9),qed_mcp_ov_update_mtu(9),qed_mcp_ov_update_mac(9),qed_mcp_ov_update_wol(9),qed_mcp_set_led(9),qed_mcp_nvm_read(9),qed_mcp_nvm_write(9),qed_mcp_nvm_resp(9),qed_mcp_get_nvm_image_att(9),qed_mcp_get_nvm_image(9),qed_mcp_bist_register_test(9),qed_mcp_bist_clock_test(9),qed_mcp_bist_nvm_get_num_images(9),qed_mcp_bist_nvm_get_image_att(9),qed_mfw_process_tlv_req(9),qed_mcp_send_raw_debug_data(9),qed_mcp_is_ext_speed_supported(9),qed_mcp_cmd_init(9),qed_mcp_cmd_port_init(9),qed_mcp_free(9),qed_mcp_handle_events(9),qed_mcp_load_req(9),qed_mcp_load_done(9),qed_mcp_unload_req(9),qed_mcp_unload_done(9),qed_mcp_read_mb(9),qed_mcp_ack_vf_flr(9),qed_mcp_fill_shmem_func_info(9),qed_mcp_reset(9),qed_mcp_nvm_rd_cmd(9),qed_mcp_phy_sfp_read(9),qed_mcp_is_init(9),qed_mcp_config_vf_msix(9),qed_mcp_halt(9),qed_mcp_resume(9),qed_mcp_set_resc_max_val(9),qed_mcp_get_resc_info(9),qed_mcp_ov_update_eswitch(9),qed_mcp_initiate_pf_flr(9),qed_mcp_resc_lock(9),qed_mcp_resc_unlock(9),qed_mcp_resc_lock_default_init(9),qed_mcp_is_smart_an_supported(9),qed_mcp_get_capabilities(9),qed_mcp_set_capabilities(9),qed_mcp_read_ufp_config(9),qed_mcp_nvm_info_populate(9),qed_mcp_nvm_info_free(9),qed_mcp_get_engine_config(9),qed_mcp_get_ppfid_bitmap(9),qed_mcp_nvm_get_cfg(9),qed_mcp_nvm_set_cfg(9),qed_mcp_is_esl_supported(9),qed_mcp_get_esl_status(9)
like. seventy-something siblings. one big happy qed family π
and that's the page, bestie β¨ this came to you straight out of ./drivers/net/ethernet/qlogic/qed, dated October 2026, and you know she's still rocking the qed_mcp_cmd(9) title. go forth, send commands, do NOT do it in atomic context. 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