ufshcd_exec_raw_upiu_cmd(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 NAME 🌸

ufshcd_exec_raw_upiu_cmd β€” the API function for sending raw upiu commands, bestie. This one lives in the Kernel API Manual, and it is lowkey giving β€œI speak kernel fluently” energy. πŸ’…


✨ SYNOPSIS ✨

int ufshcd_exec_raw_upiu_cmd (struct ufs_hba *hba , struct utp_upiu_req
*req_upiu , struct utp_upiu_req *rsp_upiu , enum
upiu_request_transaction msgcode , u8 *desc_buff , int *buff_len , enum
query_opcode desc_op );

πŸŽ€ ARGUMENTS πŸŽ€

  • hba β€” the per-adapter instance. Your adapter, your main character. 🫢
  • req_upiu β€” the upiu request. You bring it, it gets sent.
  • rsp_upiu β€” the upiu reply. Heads up: only 8 DW here, because we do not support scsi commands. Keep that in mind, bestie.
  • msgcode β€” the message code, one of the UPIU Transaction Codes Initiator to Target.
  • desc_buff β€” pointer to the descriptor buffer, or NULL if NA.
  • buff_len β€” descriptor size, or 0 if NA.
  • desc_op β€” descriptor operation.

πŸ¦‹ DESCRIPTION πŸ¦‹

Okay so this function supports UTP Transfer requests (nop and query), and UTP Task Management requests. That’s the supported lane, periodt.

It is up to the caller to fill the upiu content properly β€” no cap, because it will be copied without any further input validations.

🚨 Bestie, this is the important part: the caller has to fill the upiu content properly. It gets copied without any further input validations. No extra safety net here.

πŸ‘‘ RETURN πŸ‘‘

0 upon success; < 0 upon failure. Simple, iconic, slay.


🌈 SEE ALSO 🌈

Kernel file ./drivers/ufs/core/ufshcd.c, plus the whole ufshcd cinematic universe: ufshcd_enable_intr(9), ufshcd_disable_intr(9), ufshcd_print_trs_all(9), ufshcd_print_pwr_info(9), ufshcd_wait_for_register(9), ufshcd_get_intr_mask(9), ufshcd_get_ufs_version(9), ufshcd_is_device_present(9), ufshcd_get_tr_ocs(9), ufshcd_utrl_clear(9), ufshcd_utmrl_clear(9), ufshcd_get_lists_status(9), ufshcd_get_req_rsp(9), ufshcd_is_exception_event(9), ufshcd_reset_intr_aggr(9), ufshcd_config_intr_aggr(9), ufshcd_disable_intr_aggr(9), ufshcd_enable_run_stop_reg(9), ufshcd_hba_start(9), ufshcd_is_hba_active(9), ufshcd_pm_qos_init(9), ufshcd_pm_qos_exit(9), ufshcd_pm_qos_update(9), ufshcd_set_clk_freq(9), ufshcd_scale_clks(9), ufshcd_is_devfreq_scaling_required(9), ufshcd_pause_command_processing(9), ufshcd_resume_command_processing(9), ufshcd_scale_gear(9), ufshcd_devfreq_scale(9), ufshcd_hold(9), ufshcd_send_command(9), ufshcd_copy_sense_data(9), ufshcd_copy_query_response(9), ufshcd_hba_capabilities(9), ufshcd_ready_for_uic_cmd(9), ufshcd_get_upmcrs(9), ufshcd_dispatch_uic_cmd(9), ufshcd_wait_for_uic_cmd(9), __ufshcd_send_uic_cmd(9), ufshcd_send_uic_cmd(9), ufshcd_sgl_to_prdt(9), ufshcd_map_sg(9), ufshcd_prepare_req_desc_hdr(9), ufshcd_prepare_utp_scsi_cmd_upiu(9), ufshcd_prepare_utp_query_req_upiu(9), ufshcd_compose_devman_upiu(9), ufshcd_comp_scsi_upiu(9), ufshcd_upiu_wlun_to_scsi_wlun(9), ufshcd_queuecommand(9), ufshcd_dev_cmd_completion(9), ufshcd_exec_dev_cmd(9), ufshcd_init_query(9), ufshcd_query_flag(9), ufshcd_query_attr(9), ufshcd_query_attr_retry(9), ufshcd_query_attr_qword(9), ufshcd_query_descriptor_retry(9), ufshcd_read_desc_param(9), struct uc_string_id(9), ufshcd_read_string_desc(9), ufshcd_read_unit_desc_param(9), ufshcd_memory_alloc(9), ufshcd_host_memory_configure(9), ufshcd_dme_link_startup(9), ufshcd_dme_reset(9), ufshcd_dme_enable(9), ufshcd_dme_set_attr(9), ufshcd_dme_get_attr(9), ufshcd_dme_rmw(9), ufshcd_uic_pwr_ctrl(9), ufshcd_uic_tx_eqtr(9), ufshcd_send_bsg_uic_cmd(9), ufshcd_uic_change_pwr_mode(9), ufshcd_get_max_pwr_mode(9), ufshcd_dme_change_power_mode(9), ufshcd_change_power_mode(9), ufshcd_config_pwr_mode(9), ufshcd_complete_dev_init(9), ufshcd_make_hba_operational(9), ufshcd_hba_stop(9), ufshcd_hba_execute_hce(9), ufshcd_link_startup(9), ufshcd_verify_dev_init(9), ufshcd_setup_links(9), ufshcd_lu_init(9), ufshcd_sdev_init(9), ufshcd_change_queue_depth(9), ufshcd_sdev_configure(9), ufshcd_sdev_destroy(9), ufshcd_scsi_cmd_status(9), ufshcd_transfer_rsp_status(9), ufshcd_uic_cmd_compl(9), ufshcd_compl_one_cqe(9), __ufshcd_transfer_req_compl(9), ufshcd_mcq_compl_pending_transfer(9), ufshcd_transfer_req_compl(9), ufshcd_disable_ee(9), ufshcd_enable_ee(9), ufshcd_enable_auto_bkops(9), ufshcd_disable_auto_bkops(9), ufshcd_force_reset_auto_bkops(9), ufshcd_bkops_ctrl(9), ufshcd_exception_event_handler(9), ufshcd_quirk_dl_nac_errors(9), ufshcd_abort_all(9), ufshcd_err_handler(9), ufshcd_update_uic_error(9), ufshcd_check_errors(9), ufshcd_tmc_handler(9), ufshcd_handle_mcq_cq_events(9), ufshcd_sl_intr(9), ufshcd_intr(9), ufshcd_issue_tm_cmd(9), ufshcd_issue_devman_upiu_cmd(9), ufshcd_advanced_rpmb_req_handler(9), ufshcd_eh_device_reset_handler(9), ufshcd_try_to_abort_task(9), ufshcd_abort(9), ufshcd_process_probe_result(9), ufshcd_host_reset_and_restore(9), ufshcd_reset_and_restore(9), ufshcd_eh_host_reset_handler(9), ufshcd_get_max_icc_level(9), ufshcd_find_max_sup_active_icc_level(9), ufshcd_scsi_add_wlus(9), ufshcd_create_device_id(9), ufshcd_quirk_tune_host_pa_tactivate(9), ufshcd_quirk_override_pa_h8time(9), ufshcd_add_lus(9), ufshcd_get_op_mode(9), ufshcd_probe_hba(9), ufshcd_async_scan(9), ufshcd_set_dev_pwr_mode(9), ufshcd_suspend(9), ufshcd_resume(9), ufshcd_system_suspend(9), ufshcd_system_resume(9), ufshcd_runtime_suspend(9), ufshcd_runtime_resume(9), ufshcd_remove(9), ufshcd_set_dma_mask(9), ufshcd_devres_release(9), ufshcd_alloc_host(9), ufshcd_init(9).


source/version: ./drivers/ufs/core Β· date: October 2026 β€” mwah, bestie, go read the source πŸ’‹βœ¨

πŸ“¦ where this page comes from