/* SPDX-License-Identifier: GPL-2.0 */ #undef TRACE_SYSTEM #define TRACE_SYSTEM ufshcd #define TRACE_INCLUDE_PATH trace/hooks #if !defined(_TRACE_HOOK_UFSHCD_H) || defined(TRACE_HEADER_MULTI_READ) #define _TRACE_HOOK_UFSHCD_H #include /* * Following tracepoints are not exported in tracefs and provide a * mechanism for vendor modules to hook and extend functionality */ struct ufs_hba; struct request; struct ufshcd_lrb; DECLARE_HOOK(android_vh_ufs_fill_prdt, TP_PROTO(struct ufs_hba *hba, struct ufshcd_lrb *lrbp, unsigned int segments, int *err), TP_ARGS(hba, lrbp, segments, err)); DECLARE_RESTRICTED_HOOK(android_rvh_ufs_reprogram_all_keys, TP_PROTO(struct ufs_hba *hba, int *err), TP_ARGS(hba, err), 1); DECLARE_RESTRICTED_HOOK(android_rvh_ufs_complete_init, TP_PROTO(struct ufs_hba *hba), TP_ARGS(hba), 1); DECLARE_HOOK(android_vh_ufs_prepare_command, TP_PROTO(struct ufs_hba *hba, struct request *rq, struct ufshcd_lrb *lrbp, int *err), TP_ARGS(hba, rq, lrbp, err)); DECLARE_HOOK(android_vh_ufs_update_sysfs, TP_PROTO(struct ufs_hba *hba), TP_ARGS(hba)); DECLARE_HOOK(android_vh_ufs_send_command, TP_PROTO(struct ufs_hba *hba, struct ufshcd_lrb *lrbp), TP_ARGS(hba, lrbp)); DECLARE_HOOK(android_vh_ufs_compl_command, TP_PROTO(struct ufs_hba *hba, struct ufshcd_lrb *lrbp), TP_ARGS(hba, lrbp)); struct uic_command; DECLARE_HOOK(android_vh_ufs_send_uic_command, TP_PROTO(struct ufs_hba *hba, const struct uic_command *ucmd, int str_t), TP_ARGS(hba, ucmd, str_t)); DECLARE_HOOK(android_vh_ufs_send_tm_command, TP_PROTO(struct ufs_hba *hba, int tag, int str_t), TP_ARGS(hba, tag, str_t)); DECLARE_HOOK(android_vh_ufs_check_int_errors, TP_PROTO(struct ufs_hba *hba, bool queue_eh_work), TP_ARGS(hba, queue_eh_work)); struct scsi_device; DECLARE_HOOK(android_vh_ufs_update_sdev, TP_PROTO(struct scsi_device *sdev), TP_ARGS(sdev)); DECLARE_HOOK(android_vh_ufs_send_command_post_change, TP_PROTO(struct ufs_hba *hba, struct ufshcd_lrb *lrbp), TP_ARGS(hba, lrbp)); DECLARE_HOOK(android_vh_ufs_perf_huristic_ctrl, TP_PROTO(struct ufs_hba *hba, struct ufshcd_lrb *lrbp, int *err), TP_ARGS(hba, lrbp, err)); DECLARE_HOOK(android_vh_ufs_abort_success_ctrl, TP_PROTO(struct ufs_hba *hba, struct ufshcd_lrb *lrbp), TP_ARGS(hba, lrbp)); DECLARE_HOOK(android_vh_ufs_err_handler, TP_PROTO(struct ufs_hba *hba, bool *err_handled), TP_ARGS(hba, err_handled)); DECLARE_HOOK(android_vh_ufs_compl_rsp_check_done, TP_PROTO(struct ufs_hba *hba, struct ufshcd_lrb *lrbp, bool *done), TP_ARGS(hba, lrbp, done)); DECLARE_HOOK(android_vh_ufs_err_print_ctrl, TP_PROTO(struct ufs_hba *hba, bool *skip), TP_ARGS(hba, skip)); DECLARE_HOOK(android_vh_ufs_err_check_ctrl, TP_PROTO(struct ufs_hba *hba, bool *err_check), TP_ARGS(hba, err_check)); #endif /* _TRACE_HOOK_UFSHCD_H */ /* This part must be outside protection */ #include