1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #undef TRACE_SYSTEM 3 #define TRACE_SYSTEM ufshcd 4 #undef TRACE_INCLUDE_PATH 5 #define TRACE_INCLUDE_PATH trace/hooks 6 #if !defined(_TRACE_HOOK_UFSHCD_H) || defined(TRACE_HEADER_MULTI_READ) 7 #define _TRACE_HOOK_UFSHCD_H 8 #include <trace/hooks/vendor_hooks.h> 9 /* 10 * Following tracepoints are not exported in tracefs and provide a 11 * mechanism for vendor modules to hook and extend functionality 12 */ 13 struct ufs_hba; 14 struct request; 15 struct ufshcd_lrb; 16 struct scsi_cmnd; 17 struct cq_entry; 18 struct uic_command; 19 20 DECLARE_HOOK(android_vh_ufs_fill_prdt, 21 TP_PROTO(struct ufs_hba *hba, struct ufshcd_lrb *lrbp, 22 unsigned int segments, int *err), 23 TP_ARGS(hba, lrbp, segments, err)); 24 25 DECLARE_RESTRICTED_HOOK(android_rvh_ufs_complete_init, 26 TP_PROTO(struct ufs_hba *hba), 27 TP_ARGS(hba), 1); 28 29 DECLARE_RESTRICTED_HOOK(android_rvh_ufs_reprogram_all_keys, 30 TP_PROTO(struct ufs_hba *hba, int *err), 31 TP_ARGS(hba, err), 1); 32 33 DECLARE_HOOK(android_vh_ufs_prepare_command, 34 TP_PROTO(struct ufs_hba *hba, struct request *rq, 35 struct ufshcd_lrb *lrbp, int *err), 36 TP_ARGS(hba, rq, lrbp, err)); 37 38 DECLARE_HOOK(android_vh_ufs_update_sysfs, 39 TP_PROTO(struct ufs_hba *hba), 40 TP_ARGS(hba)); 41 42 DECLARE_HOOK(android_vh_ufs_send_command, 43 TP_PROTO(struct ufs_hba *hba, struct ufshcd_lrb *lrbp), 44 TP_ARGS(hba, lrbp)); 45 46 DECLARE_HOOK(android_vh_ufs_compl_command, 47 TP_PROTO(struct ufs_hba *hba, struct ufshcd_lrb *lrbp), 48 TP_ARGS(hba, lrbp)); 49 50 struct uic_command; 51 DECLARE_HOOK(android_vh_ufs_send_uic_command, 52 TP_PROTO(struct ufs_hba *hba, const struct uic_command *ucmd, 53 int str_t), 54 TP_ARGS(hba, ucmd, str_t)); 55 56 DECLARE_HOOK(android_vh_ufs_send_tm_command, 57 TP_PROTO(struct ufs_hba *hba, int tag, int str_t), 58 TP_ARGS(hba, tag, str_t)); 59 60 DECLARE_HOOK(android_vh_ufs_check_int_errors, 61 TP_PROTO(struct ufs_hba *hba, bool queue_eh_work), 62 TP_ARGS(hba, queue_eh_work)); 63 64 struct scsi_device; 65 DECLARE_HOOK(android_vh_ufs_update_sdev, 66 TP_PROTO(struct scsi_device *sdev), 67 TP_ARGS(sdev)); 68 69 DECLARE_HOOK(android_vh_ufs_eh_timed_out, 70 TP_PROTO(struct ufs_hba *hba, struct scsi_cmnd *scmd), 71 TP_ARGS(hba, scmd)); 72 73 DECLARE_HOOK(android_vh_ufs_link_startup, 74 TP_PROTO(struct ufs_hba *hba, int err), 75 TP_ARGS(hba, err)); 76 77 DECLARE_HOOK(android_vh_ufs_dev_cmd_completion, 78 TP_PROTO(struct ufs_hba *hba, struct ufshcd_lrb *lrbp, int err), 79 TP_ARGS(hba, lrbp, err)); 80 81 DECLARE_HOOK(android_vh_ufs_wait_for_uic_cmd, 82 TP_PROTO(struct ufs_hba *hba, struct uic_command *uic_cmd, int err), 83 TP_ARGS(hba, uic_cmd, err)); 84 85 DECLARE_HOOK(android_vh_ufs_transfer_rsp_status, 86 TP_PROTO(struct ufs_hba *hba, struct ufshcd_lrb *lrbp, struct cq_entry *cqe, int result), 87 TP_ARGS(hba, lrbp, cqe, result)); 88 89 #endif /* _TRACE_HOOK_UFSHCD_H */ 90 /* This part must be outside protection */ 91 #include <trace/define_trace.h> 92