qed_mcp_cmd_nosleep(9)
π qed_mcp_cmd_nosleep(9) β Kernel API Manual, bestie edition πΈ
okay so this is qed_mcp_cmd_nosleep(9) from the Kernel API Manual, and it's literally the function you call when you need to send commands to the MCP mailbox but you're in a context where you absolutely cannot sleep. no cap. π«Ά
β¨ NAME β¨
qed_mcp_cmd_nosleep β the function for sending commands to the MCP mailbox. it acquires the mutex lock for the entire operation, like from sending the request all the way until the MCP response comes back. π
the waiting-for-MCP-response part gets checked up to 5 seconds, every 10us. and bestie, the whole point: this one should be called when sleep is not allowed. periodt. π΄π«
π SYNOPSIS π
int qed_mcp_cmd_nosleep (struct qed_hwfn *p_hwfn , struct qed_ptt *p_ptt , u32 cmd , u32 param , u32 *o_mcp_resp , u32 *o_mcp_param );
π¦ ARGUMENTS π¦
p_hwfnβ HW device data. that's the hardware main character right there πp_pttβ the PTT required for register access. you need it, no skips πcmdβ the command being sent to the MCP. say it with your chest π£paramβ optional param β¨o_mcp_respβ the MCP response code (excluding the sequence). the tea βo_mcp_paramβ optional parameter provided by the MCP response π
π RETURN π
Int β 0 β operation was successul. (that spelling is exactly what the page says, and honestly? iconic of it. we keep it fr fr π)
lowkey important: 0 is the only outcome spelled out here β the page doesn't tell us what the other values are, so don't go making them up, bestie π
β SEE ALSO β
kernel file ./drivers/net/ethernet/qlogic/qed/qed_mcp.h β go read it, iykyk π
and now the full friend group, everyone gets a mention because the way that list goes on and on is so real:
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(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)
and that's the whole page, bestie π this whole thing lives at ./drivers/net/ethernet/qlogic/qed, dated October 2026, and you just read qed_mcp_cmd_nosleep(9). go forth and send those commands without sleeping, you absolute icon π§β¨
π¦ 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