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