• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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