13d0407baSopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 23d0407baSopenharmony_ci#undef TRACE_SYSTEM 33d0407baSopenharmony_ci#define TRACE_SYSTEM ufshcd 43d0407baSopenharmony_ci#define TRACE_INCLUDE_PATH trace/hooks 53d0407baSopenharmony_ci#if !defined(_TRACE_HOOK_UFSHCD_H) || defined(TRACE_HEADER_MULTI_READ) 63d0407baSopenharmony_ci#define _TRACE_HOOK_UFSHCD_H 73d0407baSopenharmony_ci#include <linux/tracepoint.h> 83d0407baSopenharmony_ci#include <trace/hooks/vendor_hooks.h> 93d0407baSopenharmony_ci/* 103d0407baSopenharmony_ci * Following tracepoints are not exported in tracefs and provide a 113d0407baSopenharmony_ci * mechanism for vendor modules to hook and extend functionality 123d0407baSopenharmony_ci */ 133d0407baSopenharmony_cistruct ufs_hba; 143d0407baSopenharmony_cistruct request; 153d0407baSopenharmony_cistruct ufshcd_lrb; 163d0407baSopenharmony_ci 173d0407baSopenharmony_ciDECLARE_HOOK(android_vh_ufs_fill_prdt, 183d0407baSopenharmony_ci TP_PROTO(struct ufs_hba *hba, struct ufshcd_lrb *lrbp, 193d0407baSopenharmony_ci unsigned int segments, int *err), 203d0407baSopenharmony_ci TP_ARGS(hba, lrbp, segments, err)); 213d0407baSopenharmony_ci 223d0407baSopenharmony_ciDECLARE_RESTRICTED_HOOK(android_rvh_ufs_complete_init, 233d0407baSopenharmony_ci TP_PROTO(struct ufs_hba *hba), 243d0407baSopenharmony_ci TP_ARGS(hba), 1); 253d0407baSopenharmony_ci 263d0407baSopenharmony_ciDECLARE_RESTRICTED_HOOK(android_rvh_ufs_reprogram_all_keys, 273d0407baSopenharmony_ci TP_PROTO(struct ufs_hba *hba, int *err), 283d0407baSopenharmony_ci TP_ARGS(hba, err), 1); 293d0407baSopenharmony_ci 303d0407baSopenharmony_ciDECLARE_HOOK(android_vh_ufs_prepare_command, 313d0407baSopenharmony_ci TP_PROTO(struct ufs_hba *hba, struct request *rq, 323d0407baSopenharmony_ci struct ufshcd_lrb *lrbp, int *err), 333d0407baSopenharmony_ci TP_ARGS(hba, rq, lrbp, err)); 343d0407baSopenharmony_ci 353d0407baSopenharmony_ciDECLARE_HOOK(android_vh_ufs_update_sysfs, 363d0407baSopenharmony_ci TP_PROTO(struct ufs_hba *hba), 373d0407baSopenharmony_ci TP_ARGS(hba)); 383d0407baSopenharmony_ci 393d0407baSopenharmony_ciDECLARE_HOOK(android_vh_ufs_send_command, 403d0407baSopenharmony_ci TP_PROTO(struct ufs_hba *hba, struct ufshcd_lrb *lrbp), 413d0407baSopenharmony_ci TP_ARGS(hba, lrbp)); 423d0407baSopenharmony_ci 433d0407baSopenharmony_ciDECLARE_HOOK(android_vh_ufs_compl_command, 443d0407baSopenharmony_ci TP_PROTO(struct ufs_hba *hba, struct ufshcd_lrb *lrbp), 453d0407baSopenharmony_ci TP_ARGS(hba, lrbp)); 463d0407baSopenharmony_ci 473d0407baSopenharmony_cistruct uic_command; 483d0407baSopenharmony_ciDECLARE_HOOK(android_vh_ufs_send_uic_command, 493d0407baSopenharmony_ci TP_PROTO(struct ufs_hba *hba, struct uic_command *ucmd, 503d0407baSopenharmony_ci const char *str), 513d0407baSopenharmony_ci TP_ARGS(hba, ucmd, str)); 523d0407baSopenharmony_ci 533d0407baSopenharmony_ciDECLARE_HOOK(android_vh_ufs_send_tm_command, 543d0407baSopenharmony_ci TP_PROTO(struct ufs_hba *hba, int tag, const char *str), 553d0407baSopenharmony_ci TP_ARGS(hba, tag, str)); 563d0407baSopenharmony_ci 573d0407baSopenharmony_ciDECLARE_HOOK(android_vh_ufs_check_int_errors, 583d0407baSopenharmony_ci TP_PROTO(struct ufs_hba *hba, bool queue_eh_work), 593d0407baSopenharmony_ci TP_ARGS(hba, queue_eh_work)); 603d0407baSopenharmony_ci 613d0407baSopenharmony_cistruct scsi_device; 623d0407baSopenharmony_ciDECLARE_HOOK(android_vh_ufs_update_sdev, 633d0407baSopenharmony_ci TP_PROTO(struct scsi_device *sdev), 643d0407baSopenharmony_ci TP_ARGS(sdev)); 653d0407baSopenharmony_ci 663d0407baSopenharmony_ciDECLARE_HOOK(android_vh_ufs_clock_scaling, 673d0407baSopenharmony_ci TP_PROTO(struct ufs_hba *hba, bool *force_out, bool *force_scaling, bool *scale_up), 683d0407baSopenharmony_ci TP_ARGS(hba, force_out, force_scaling, scale_up)); 693d0407baSopenharmony_ci#endif /* _TRACE_HOOK_UFSHCD_H */ 703d0407baSopenharmony_ci/* This part must be outside protection */ 713d0407baSopenharmony_ci#include <trace/define_trace.h> 72