1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #undef TRACE_SYSTEM 3 #define TRACE_SYSTEM ufshcd 4 #define TRACE_INCLUDE_PATH trace/hooks 5 #if !defined(_TRACE_HOOK_UFSHCD_H) || defined(TRACE_HEADER_MULTI_READ) 6 #define _TRACE_HOOK_UFSHCD_H 7 #include <linux/tracepoint.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 #if defined(__GENKSYMS__) || !IS_ENABLED(CONFIG_SCSI_UFSHCD) 14 struct ufs_hba; 15 struct ufshcd_lrb; 16 struct uic_command; 17 struct request; 18 struct scsi_device; 19 #else 20 /* struct ufs_hba, struct ufshcd_lrb, struct uic_command */ 21 #include <../drivers/scsi/ufs/ufshcd.h> 22 /* struct request */ 23 #include <linux/blkdev.h> 24 /* struct scsi_device */ 25 #include <scsi/scsi_device.h> 26 #endif /* __GENKSYMS__ */ 27 28 DECLARE_HOOK(android_vh_ufs_fill_prdt, 29 TP_PROTO(struct ufs_hba *hba, struct ufshcd_lrb *lrbp, 30 unsigned int segments, int *err), 31 TP_ARGS(hba, lrbp, segments, err)); 32 33 DECLARE_RESTRICTED_HOOK(android_rvh_ufs_complete_init, 34 TP_PROTO(struct ufs_hba *hba), 35 TP_ARGS(hba), 1); 36 37 DECLARE_RESTRICTED_HOOK(android_rvh_ufs_reprogram_all_keys, 38 TP_PROTO(struct ufs_hba *hba, int *err), 39 TP_ARGS(hba, err), 1); 40 41 DECLARE_HOOK(android_vh_ufs_prepare_command, 42 TP_PROTO(struct ufs_hba *hba, struct request *rq, 43 struct ufshcd_lrb *lrbp, int *err), 44 TP_ARGS(hba, rq, lrbp, err)); 45 46 DECLARE_HOOK(android_vh_ufs_update_sysfs, 47 TP_PROTO(struct ufs_hba *hba), 48 TP_ARGS(hba)); 49 50 DECLARE_HOOK(android_vh_ufs_send_command, 51 TP_PROTO(struct ufs_hba *hba, struct ufshcd_lrb *lrbp), 52 TP_ARGS(hba, lrbp)); 53 54 DECLARE_HOOK(android_vh_ufs_compl_command, 55 TP_PROTO(struct ufs_hba *hba, struct ufshcd_lrb *lrbp), 56 TP_ARGS(hba, lrbp)); 57 58 DECLARE_HOOK(android_vh_ufs_send_uic_command, 59 TP_PROTO(struct ufs_hba *hba, struct uic_command *ucmd, 60 const char *str), 61 TP_ARGS(hba, ucmd, str)); 62 63 DECLARE_HOOK(android_vh_ufs_send_tm_command, 64 TP_PROTO(struct ufs_hba *hba, int tag, const char *str), 65 TP_ARGS(hba, tag, str)); 66 67 DECLARE_HOOK(android_vh_ufs_check_int_errors, 68 TP_PROTO(struct ufs_hba *hba, bool queue_eh_work), 69 TP_ARGS(hba, queue_eh_work)); 70 71 DECLARE_HOOK(android_vh_ufs_update_sdev, 72 TP_PROTO(struct scsi_device *sdev), 73 TP_ARGS(sdev)); 74 75 DECLARE_HOOK(android_vh_ufs_clock_scaling, 76 TP_PROTO(struct ufs_hba *hba, bool *force_out, bool *force_scaling, bool *scale_up), 77 TP_ARGS(hba, force_out, force_scaling, scale_up)); 78 79 DECLARE_HOOK(android_vh_ufs_send_command_post_change, 80 TP_PROTO(struct ufs_hba *hba, struct ufshcd_lrb *lrbp), 81 TP_ARGS(hba, lrbp)); 82 83 DECLARE_HOOK(android_vh_ufs_perf_huristic_ctrl, 84 TP_PROTO(struct ufs_hba *hba, 85 struct ufshcd_lrb *lrbp, int *err), 86 TP_ARGS(hba, lrbp, err)); 87 88 DECLARE_HOOK(android_vh_ufs_abort_success_ctrl, 89 TP_PROTO(struct ufs_hba *hba, 90 struct ufshcd_lrb *lrbp), 91 TP_ARGS(hba, lrbp)); 92 93 DECLARE_HOOK(android_vh_ufs_err_handler, 94 TP_PROTO(struct ufs_hba *hba, 95 bool *err_handled), 96 TP_ARGS(hba, err_handled)); 97 98 DECLARE_HOOK(android_vh_ufs_compl_rsp_check_done, 99 TP_PROTO(struct ufs_hba *hba, 100 struct ufshcd_lrb *lrbp, bool *done), 101 TP_ARGS(hba, lrbp, done)); 102 103 DECLARE_HOOK(android_vh_ufs_err_print_ctrl, 104 TP_PROTO(struct ufs_hba *hba, 105 bool *skip), 106 TP_ARGS(hba, skip)); 107 108 DECLARE_HOOK(android_vh_ufs_err_check_ctrl, 109 TP_PROTO(struct ufs_hba *hba, 110 bool *err_check), 111 TP_ARGS(hba, err_check)); 112 #endif /* _TRACE_HOOK_UFSHCD_H */ 113 /* This part must be outside protection */ 114 #include <trace/define_trace.h> 115