ufshcd_hba_capabilities(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ NAME ✨

ufshcd_hba_capabilities β€” okay so this is the one that reads the controller's capabilities πŸ’… like, it goes and asks the HBA "hey bestie what can you actually do" and comes back with the answer. That's it, that's the function.

(this is ufshcd_hba_capabilities(9) from the Kernel API Manual, just so we're oriented 🫢)


🌸 SYNOPSIS 🌸

int ufshcd_hba_capabilities (struct ufs_hba *hba );

πŸ’… ARGUMENTS πŸ’…

  • hba β€” per adapter instance. one (1) adapter, one (1) struct ufs_hba *, and honestly it's giving main character energy because literally everything here hinges on it πŸ’–

πŸŽ€ RETURN πŸŽ€

  • 0 on success β€” slay ✨
  • negative on error β€” not slay 😭
no cap, it's that simple. zero = we ate. negative = we did not eat.

πŸ¦‹ SEE ALSO πŸ¦‹

The kernel file lives at ./drivers/ufs/core/ufshcd.c β€” that's the home base, the group chat, the whole vibe πŸ πŸ’œ

and here's the full friend list, everybody who's also in the ufshcd cinematic universe (keep it moving, it's long, iykyk):

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_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_exec_raw_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)

fr fr that's the whole squad 🫢 go read them too, they're iconic πŸ‘‘


and that's the page bestie πŸ’œ straight from the Kernel API Manual, filed under ./drivers/ufs/core, dated October 2026 β€” and we're calling this ufshcd_hba_capabilities(9) done and dusted. mwah πŸŽ€βœ¨πŸ¦‹

πŸ“¦ where this page comes from