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 struct ufs_hba;
14 struct request;
15 struct ufshcd_lrb;
16 
17 DECLARE_HOOK(android_vh_ufs_fill_prdt,
18 	TP_PROTO(struct ufs_hba *hba, struct ufshcd_lrb *lrbp,
19 		 unsigned int segments, int *err),
20 	TP_ARGS(hba, lrbp, segments, err));
21 
22 DECLARE_RESTRICTED_HOOK(android_rvh_ufs_complete_init,
23 			TP_PROTO(struct ufs_hba *hba),
24 			TP_ARGS(hba), 1);
25 
26 DECLARE_RESTRICTED_HOOK(android_rvh_ufs_reprogram_all_keys,
27 			TP_PROTO(struct ufs_hba *hba, int *err),
28 			TP_ARGS(hba, err), 1);
29 
30 DECLARE_HOOK(android_vh_ufs_prepare_command,
31 	TP_PROTO(struct ufs_hba *hba, struct request *rq,
32 		 struct ufshcd_lrb *lrbp, int *err),
33 	TP_ARGS(hba, rq, lrbp, err));
34 
35 DECLARE_HOOK(android_vh_ufs_update_sysfs,
36 	TP_PROTO(struct ufs_hba *hba),
37 	TP_ARGS(hba));
38 
39 DECLARE_HOOK(android_vh_ufs_send_command,
40 	TP_PROTO(struct ufs_hba *hba, struct ufshcd_lrb *lrbp),
41 	TP_ARGS(hba, lrbp));
42 
43 DECLARE_HOOK(android_vh_ufs_compl_command,
44 	TP_PROTO(struct ufs_hba *hba, struct ufshcd_lrb *lrbp),
45 	TP_ARGS(hba, lrbp));
46 
47 struct uic_command;
48 DECLARE_HOOK(android_vh_ufs_send_uic_command,
49 	TP_PROTO(struct ufs_hba *hba, struct uic_command *ucmd,
50 		 const char *str),
51 	TP_ARGS(hba, ucmd, str));
52 
53 DECLARE_HOOK(android_vh_ufs_send_tm_command,
54 	TP_PROTO(struct ufs_hba *hba, int tag, const char *str),
55 	TP_ARGS(hba, tag, str));
56 
57 DECLARE_HOOK(android_vh_ufs_check_int_errors,
58 	TP_PROTO(struct ufs_hba *hba, bool queue_eh_work),
59 	TP_ARGS(hba, queue_eh_work));
60 
61 struct scsi_device;
62 DECLARE_HOOK(android_vh_ufs_update_sdev,
63 	TP_PROTO(struct scsi_device *sdev),
64 	TP_ARGS(sdev));
65 
66 DECLARE_HOOK(android_vh_ufs_clock_scaling,
67 	TP_PROTO(struct ufs_hba *hba, bool *force_out, bool *force_scaling, bool *scale_up),
68 	TP_ARGS(hba, force_out, force_scaling, scale_up));
69 #endif /* _TRACE_HOOK_UFSHCD_H */
70 /* This part must be outside protection */
71 #include <trace/define_trace.h>
72