Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3)  * xHCI host controller driver
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5)  * Copyright (C) 2013 Xenia Ragiadakou
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7)  * Author: Xenia Ragiadakou
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8)  * Email : burzalodowa@gmail.com
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) #undef TRACE_SYSTEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) #define TRACE_SYSTEM xhci-hcd
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15)  * The TRACE_SYSTEM_VAR defaults to TRACE_SYSTEM, but must be a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16)  * legitimate C variable. It is not exported to user space.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18) #undef TRACE_SYSTEM_VAR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) #define TRACE_SYSTEM_VAR xhci_hcd
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) #if !defined(__XHCI_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) #define __XHCI_TRACE_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) #include <linux/tracepoint.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) #include "xhci.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) #include "xhci-dbgcap.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) DECLARE_EVENT_CLASS(xhci_log_msg,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) 	TP_PROTO(struct va_format *vaf),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) 	TP_ARGS(vaf),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) 	TP_STRUCT__entry(__dynamic_array(char, msg, XHCI_MSG_MAX)),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) 	TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) 		vsnprintf(__get_str(msg), XHCI_MSG_MAX, vaf->fmt, *vaf->va);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) 	TP_printk("%s", __get_str(msg))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) DEFINE_EVENT(xhci_log_msg, xhci_dbg_address,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) 	TP_PROTO(struct va_format *vaf),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) 	TP_ARGS(vaf)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) DEFINE_EVENT(xhci_log_msg, xhci_dbg_context_change,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) 	TP_PROTO(struct va_format *vaf),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) 	TP_ARGS(vaf)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) DEFINE_EVENT(xhci_log_msg, xhci_dbg_quirks,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) 	TP_PROTO(struct va_format *vaf),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) 	TP_ARGS(vaf)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) DEFINE_EVENT(xhci_log_msg, xhci_dbg_reset_ep,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) 	TP_PROTO(struct va_format *vaf),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) 	TP_ARGS(vaf)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) DEFINE_EVENT(xhci_log_msg, xhci_dbg_cancel_urb,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) 	TP_PROTO(struct va_format *vaf),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) 	TP_ARGS(vaf)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) DEFINE_EVENT(xhci_log_msg, xhci_dbg_init,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) 	TP_PROTO(struct va_format *vaf),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) 	TP_ARGS(vaf)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) DEFINE_EVENT(xhci_log_msg, xhci_dbg_ring_expansion,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) 	TP_PROTO(struct va_format *vaf),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) 	TP_ARGS(vaf)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) DECLARE_EVENT_CLASS(xhci_log_ctx,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) 	TP_PROTO(struct xhci_hcd *xhci, struct xhci_container_ctx *ctx,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) 		 unsigned int ep_num),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) 	TP_ARGS(xhci, ctx, ep_num),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) 	TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) 		__field(int, ctx_64)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) 		__field(unsigned, ctx_type)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) 		__field(dma_addr_t, ctx_dma)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) 		__field(u8 *, ctx_va)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) 		__field(unsigned, ctx_ep_num)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83) 		__field(int, slot_id)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) 		__dynamic_array(u32, ctx_data,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) 			((HCC_64BYTE_CONTEXT(xhci->hcc_params) + 1) * 8) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) 			((ctx->type == XHCI_CTX_TYPE_INPUT) + ep_num + 1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) 	TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) 		struct usb_device *udev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) 		udev = to_usb_device(xhci_to_hcd(xhci)->self.controller);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) 		__entry->ctx_64 = HCC_64BYTE_CONTEXT(xhci->hcc_params);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) 		__entry->ctx_type = ctx->type;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) 		__entry->ctx_dma = ctx->dma;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) 		__entry->ctx_va = ctx->bytes;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) 		__entry->slot_id = udev->slot_id;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) 		__entry->ctx_ep_num = ep_num;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) 		memcpy(__get_dynamic_array(ctx_data), ctx->bytes,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) 			((HCC_64BYTE_CONTEXT(xhci->hcc_params) + 1) * 32) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) 			((ctx->type == XHCI_CTX_TYPE_INPUT) + ep_num + 1));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) 	TP_printk("ctx_64=%d, ctx_type=%u, ctx_dma=@%llx, ctx_va=@%p",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) 			__entry->ctx_64, __entry->ctx_type,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) 			(unsigned long long) __entry->ctx_dma, __entry->ctx_va
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) 	)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) DEFINE_EVENT(xhci_log_ctx, xhci_address_ctx,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) 	TP_PROTO(struct xhci_hcd *xhci, struct xhci_container_ctx *ctx,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) 		 unsigned int ep_num),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) 	TP_ARGS(xhci, ctx, ep_num)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) DECLARE_EVENT_CLASS(xhci_log_trb,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) 	TP_PROTO(struct xhci_ring *ring, struct xhci_generic_trb *trb),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) 	TP_ARGS(ring, trb),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) 	TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) 		__field(u32, type)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) 		__field(u32, field0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) 		__field(u32, field1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) 		__field(u32, field2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) 		__field(u32, field3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) 		__dynamic_array(char, str, XHCI_MSG_MAX)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) 	TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) 		__entry->type = ring->type;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) 		__entry->field0 = le32_to_cpu(trb->field[0]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) 		__entry->field1 = le32_to_cpu(trb->field[1]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) 		__entry->field2 = le32_to_cpu(trb->field[2]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) 		__entry->field3 = le32_to_cpu(trb->field[3]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) 	TP_printk("%s: %s", xhci_ring_type_string(__entry->type),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) 		  xhci_decode_trb(__get_str(str), XHCI_MSG_MAX, __entry->field0, __entry->field1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) 					__entry->field2, __entry->field3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) 	)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) DEFINE_EVENT(xhci_log_trb, xhci_handle_event,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) 	TP_PROTO(struct xhci_ring *ring, struct xhci_generic_trb *trb),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) 	TP_ARGS(ring, trb)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) DEFINE_EVENT(xhci_log_trb, xhci_handle_command,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) 	TP_PROTO(struct xhci_ring *ring, struct xhci_generic_trb *trb),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) 	TP_ARGS(ring, trb)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) DEFINE_EVENT(xhci_log_trb, xhci_handle_transfer,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) 	TP_PROTO(struct xhci_ring *ring, struct xhci_generic_trb *trb),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) 	TP_ARGS(ring, trb)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) DEFINE_EVENT(xhci_log_trb, xhci_queue_trb,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) 	TP_PROTO(struct xhci_ring *ring, struct xhci_generic_trb *trb),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) 	TP_ARGS(ring, trb)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) DEFINE_EVENT(xhci_log_trb, xhci_dbc_handle_event,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) 	TP_PROTO(struct xhci_ring *ring, struct xhci_generic_trb *trb),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) 	TP_ARGS(ring, trb)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) DEFINE_EVENT(xhci_log_trb, xhci_dbc_handle_transfer,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) 	TP_PROTO(struct xhci_ring *ring, struct xhci_generic_trb *trb),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) 	TP_ARGS(ring, trb)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) DEFINE_EVENT(xhci_log_trb, xhci_dbc_gadget_ep_queue,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) 	TP_PROTO(struct xhci_ring *ring, struct xhci_generic_trb *trb),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) 	TP_ARGS(ring, trb)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) DECLARE_EVENT_CLASS(xhci_log_free_virt_dev,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) 	TP_PROTO(struct xhci_virt_device *vdev),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) 	TP_ARGS(vdev),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) 	TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) 		__field(void *, vdev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) 		__field(unsigned long long, out_ctx)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) 		__field(unsigned long long, in_ctx)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) 		__field(u8, fake_port)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) 		__field(u8, real_port)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) 		__field(u16, current_mel)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) 	TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) 		__entry->vdev = vdev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) 		__entry->in_ctx = (unsigned long long) vdev->in_ctx->dma;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) 		__entry->out_ctx = (unsigned long long) vdev->out_ctx->dma;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) 		__entry->fake_port = (u8) vdev->fake_port;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) 		__entry->real_port = (u8) vdev->real_port;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) 		__entry->current_mel = (u16) vdev->current_mel;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) 		),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) 	TP_printk("vdev %p ctx %llx | %llx fake_port %d real_port %d current_mel %d",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) 		__entry->vdev, __entry->in_ctx, __entry->out_ctx,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) 		__entry->fake_port, __entry->real_port, __entry->current_mel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) 	)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) DEFINE_EVENT(xhci_log_free_virt_dev, xhci_free_virt_device,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) 	TP_PROTO(struct xhci_virt_device *vdev),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) 	TP_ARGS(vdev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) DECLARE_EVENT_CLASS(xhci_log_virt_dev,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) 	TP_PROTO(struct xhci_virt_device *vdev),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) 	TP_ARGS(vdev),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) 	TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) 		__field(void *, vdev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) 		__field(unsigned long long, out_ctx)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) 		__field(unsigned long long, in_ctx)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) 		__field(int, devnum)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) 		__field(int, state)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) 		__field(int, speed)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) 		__field(u8, portnum)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) 		__field(u8, level)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) 		__field(int, slot_id)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) 	TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) 		__entry->vdev = vdev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) 		__entry->in_ctx = (unsigned long long) vdev->in_ctx->dma;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) 		__entry->out_ctx = (unsigned long long) vdev->out_ctx->dma;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) 		__entry->devnum = vdev->udev->devnum;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) 		__entry->state = vdev->udev->state;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) 		__entry->speed = vdev->udev->speed;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) 		__entry->portnum = vdev->udev->portnum;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) 		__entry->level = vdev->udev->level;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) 		__entry->slot_id = vdev->udev->slot_id;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) 	TP_printk("vdev %p ctx %llx | %llx num %d state %d speed %d port %d level %d slot %d",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) 		__entry->vdev, __entry->in_ctx, __entry->out_ctx,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) 		__entry->devnum, __entry->state, __entry->speed,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) 		__entry->portnum, __entry->level, __entry->slot_id
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) 	)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) DEFINE_EVENT(xhci_log_virt_dev, xhci_alloc_virt_device,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) 	TP_PROTO(struct xhci_virt_device *vdev),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) 	TP_ARGS(vdev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) DEFINE_EVENT(xhci_log_virt_dev, xhci_setup_device,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) 	TP_PROTO(struct xhci_virt_device *vdev),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) 	TP_ARGS(vdev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) DEFINE_EVENT(xhci_log_virt_dev, xhci_setup_addressable_virt_device,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) 	TP_PROTO(struct xhci_virt_device *vdev),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) 	TP_ARGS(vdev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) DEFINE_EVENT(xhci_log_virt_dev, xhci_stop_device,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) 	TP_PROTO(struct xhci_virt_device *vdev),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) 	TP_ARGS(vdev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) DECLARE_EVENT_CLASS(xhci_log_urb,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) 	TP_PROTO(struct urb *urb),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) 	TP_ARGS(urb),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) 	TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) 		__field(void *, urb)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) 		__field(unsigned int, pipe)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) 		__field(unsigned int, stream)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) 		__field(int, status)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) 		__field(unsigned int, flags)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) 		__field(int, num_mapped_sgs)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) 		__field(int, num_sgs)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) 		__field(int, length)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) 		__field(int, actual)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) 		__field(int, epnum)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) 		__field(int, dir_in)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) 		__field(int, type)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) 		__field(int, slot_id)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) 	TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) 		__entry->urb = urb;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) 		__entry->pipe = urb->pipe;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) 		__entry->stream = urb->stream_id;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) 		__entry->status = urb->status;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) 		__entry->flags = urb->transfer_flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) 		__entry->num_mapped_sgs = urb->num_mapped_sgs;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) 		__entry->num_sgs = urb->num_sgs;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) 		__entry->length = urb->transfer_buffer_length;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) 		__entry->actual = urb->actual_length;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) 		__entry->epnum = usb_endpoint_num(&urb->ep->desc);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) 		__entry->dir_in = usb_endpoint_dir_in(&urb->ep->desc);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) 		__entry->type = usb_endpoint_type(&urb->ep->desc);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) 		__entry->slot_id = urb->dev->slot_id;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) 	TP_printk("ep%d%s-%s: urb %p pipe %u slot %d length %d/%d sgs %d/%d stream %d flags %08x",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) 			__entry->epnum, __entry->dir_in ? "in" : "out",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) 			__print_symbolic(__entry->type,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) 				   { USB_ENDPOINT_XFER_INT,	"intr" },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) 				   { USB_ENDPOINT_XFER_CONTROL,	"control" },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) 				   { USB_ENDPOINT_XFER_BULK,	"bulk" },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) 				   { USB_ENDPOINT_XFER_ISOC,	"isoc" }),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) 			__entry->urb, __entry->pipe, __entry->slot_id,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) 			__entry->actual, __entry->length, __entry->num_mapped_sgs,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) 			__entry->num_sgs, __entry->stream, __entry->flags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) 		)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302) DEFINE_EVENT(xhci_log_urb, xhci_urb_enqueue,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) 	TP_PROTO(struct urb *urb),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) 	TP_ARGS(urb)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) DEFINE_EVENT(xhci_log_urb, xhci_urb_giveback,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) 	TP_PROTO(struct urb *urb),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309) 	TP_ARGS(urb)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312) DEFINE_EVENT(xhci_log_urb, xhci_urb_dequeue,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313) 	TP_PROTO(struct urb *urb),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314) 	TP_ARGS(urb)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) DECLARE_EVENT_CLASS(xhci_log_ep_ctx,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) 	TP_PROTO(struct xhci_ep_ctx *ctx),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319) 	TP_ARGS(ctx),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320) 	TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321) 		__field(u32, info)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322) 		__field(u32, info2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323) 		__field(u64, deq)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324) 		__field(u32, tx_info)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) 		__dynamic_array(char, str, XHCI_MSG_MAX)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) 	TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328) 		__entry->info = le32_to_cpu(ctx->ep_info);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329) 		__entry->info2 = le32_to_cpu(ctx->ep_info2);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330) 		__entry->deq = le64_to_cpu(ctx->deq);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) 		__entry->tx_info = le32_to_cpu(ctx->tx_info);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) 	TP_printk("%s", xhci_decode_ep_context(__get_str(str),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334) 		__entry->info, __entry->info2, __entry->deq, __entry->tx_info)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335) 	)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) DEFINE_EVENT(xhci_log_ep_ctx, xhci_handle_cmd_stop_ep,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339) 	TP_PROTO(struct xhci_ep_ctx *ctx),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) 	TP_ARGS(ctx)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343) DEFINE_EVENT(xhci_log_ep_ctx, xhci_handle_cmd_set_deq_ep,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344) 	TP_PROTO(struct xhci_ep_ctx *ctx),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345) 	TP_ARGS(ctx)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348) DEFINE_EVENT(xhci_log_ep_ctx, xhci_handle_cmd_reset_ep,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349) 	TP_PROTO(struct xhci_ep_ctx *ctx),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350) 	TP_ARGS(ctx)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353) DEFINE_EVENT(xhci_log_ep_ctx, xhci_handle_cmd_config_ep,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354) 	TP_PROTO(struct xhci_ep_ctx *ctx),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355) 	TP_ARGS(ctx)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358) DEFINE_EVENT(xhci_log_ep_ctx, xhci_add_endpoint,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359) 	TP_PROTO(struct xhci_ep_ctx *ctx),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360) 	TP_ARGS(ctx)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363) DECLARE_EVENT_CLASS(xhci_log_slot_ctx,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364) 	TP_PROTO(struct xhci_slot_ctx *ctx),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365) 	TP_ARGS(ctx),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366) 	TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367) 		__field(u32, info)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368) 		__field(u32, info2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369) 		__field(u32, tt_info)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370) 		__field(u32, state)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371) 		__dynamic_array(char, str, XHCI_MSG_MAX)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373) 	TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374) 		__entry->info = le32_to_cpu(ctx->dev_info);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375) 		__entry->info2 = le32_to_cpu(ctx->dev_info2);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376) 		__entry->tt_info = le64_to_cpu(ctx->tt_info);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377) 		__entry->state = le32_to_cpu(ctx->dev_state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379) 	TP_printk("%s", xhci_decode_slot_context(__get_str(str),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 380) 			__entry->info, __entry->info2,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 381) 			__entry->tt_info, __entry->state)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 382) 	)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 383) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 384) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 385) DEFINE_EVENT(xhci_log_slot_ctx, xhci_alloc_dev,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 386) 	TP_PROTO(struct xhci_slot_ctx *ctx),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 387) 	TP_ARGS(ctx)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 388) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 389) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 390) DEFINE_EVENT(xhci_log_slot_ctx, xhci_free_dev,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 391) 	TP_PROTO(struct xhci_slot_ctx *ctx),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 392) 	TP_ARGS(ctx)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 393) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 394) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 395) DEFINE_EVENT(xhci_log_slot_ctx, xhci_handle_cmd_disable_slot,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 396) 	TP_PROTO(struct xhci_slot_ctx *ctx),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 397) 	TP_ARGS(ctx)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 398) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 399) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 400) DEFINE_EVENT(xhci_log_slot_ctx, xhci_discover_or_reset_device,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 401) 	TP_PROTO(struct xhci_slot_ctx *ctx),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 402) 	TP_ARGS(ctx)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 403) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 404) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 405) DEFINE_EVENT(xhci_log_slot_ctx, xhci_setup_device_slot,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 406) 	TP_PROTO(struct xhci_slot_ctx *ctx),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 407) 	TP_ARGS(ctx)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 408) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 409) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 410) DEFINE_EVENT(xhci_log_slot_ctx, xhci_handle_cmd_addr_dev,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 411) 	TP_PROTO(struct xhci_slot_ctx *ctx),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 412) 	TP_ARGS(ctx)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 413) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 414) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 415) DEFINE_EVENT(xhci_log_slot_ctx, xhci_handle_cmd_reset_dev,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 416) 	TP_PROTO(struct xhci_slot_ctx *ctx),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 417) 	TP_ARGS(ctx)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 418) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 419) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 420) DEFINE_EVENT(xhci_log_slot_ctx, xhci_handle_cmd_set_deq,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 421) 	TP_PROTO(struct xhci_slot_ctx *ctx),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 422) 	TP_ARGS(ctx)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 423) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 424) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 425) DEFINE_EVENT(xhci_log_slot_ctx, xhci_configure_endpoint,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 426) 	TP_PROTO(struct xhci_slot_ctx *ctx),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 427) 	TP_ARGS(ctx)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 428) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 429) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 430) DECLARE_EVENT_CLASS(xhci_log_ctrl_ctx,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 431) 	TP_PROTO(struct xhci_input_control_ctx *ctrl_ctx),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 432) 	TP_ARGS(ctrl_ctx),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 433) 	TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 434) 		__field(u32, drop)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 435) 		__field(u32, add)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 436) 		__dynamic_array(char, str, XHCI_MSG_MAX)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 437) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 438) 	TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 439) 		__entry->drop = le32_to_cpu(ctrl_ctx->drop_flags);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 440) 		__entry->add = le32_to_cpu(ctrl_ctx->add_flags);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 441) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 442) 	TP_printk("%s", xhci_decode_ctrl_ctx(__get_str(str), __entry->drop, __entry->add)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 443) 	)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 444) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 445) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 446) DEFINE_EVENT(xhci_log_ctrl_ctx, xhci_address_ctrl_ctx,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 447) 	TP_PROTO(struct xhci_input_control_ctx *ctrl_ctx),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 448) 	TP_ARGS(ctrl_ctx)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 449) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 450) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 451) DEFINE_EVENT(xhci_log_ctrl_ctx, xhci_configure_endpoint_ctrl_ctx,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 452) 	TP_PROTO(struct xhci_input_control_ctx *ctrl_ctx),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 453) 	TP_ARGS(ctrl_ctx)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 454) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 455) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 456) DECLARE_EVENT_CLASS(xhci_log_ring,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 457) 	TP_PROTO(struct xhci_ring *ring),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 458) 	TP_ARGS(ring),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 459) 	TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 460) 		__field(u32, type)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 461) 		__field(void *, ring)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 462) 		__field(dma_addr_t, enq)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 463) 		__field(dma_addr_t, deq)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 464) 		__field(dma_addr_t, enq_seg)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 465) 		__field(dma_addr_t, deq_seg)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 466) 		__field(unsigned int, num_segs)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 467) 		__field(unsigned int, stream_id)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 468) 		__field(unsigned int, cycle_state)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 469) 		__field(unsigned int, num_trbs_free)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 470) 		__field(unsigned int, bounce_buf_len)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 471) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 472) 	TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 473) 		__entry->ring = ring;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 474) 		__entry->type = ring->type;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 475) 		__entry->num_segs = ring->num_segs;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 476) 		__entry->stream_id = ring->stream_id;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 477) 		__entry->enq_seg = ring->enq_seg->dma;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 478) 		__entry->deq_seg = ring->deq_seg->dma;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 479) 		__entry->cycle_state = ring->cycle_state;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 480) 		__entry->num_trbs_free = ring->num_trbs_free;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 481) 		__entry->bounce_buf_len = ring->bounce_buf_len;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 482) 		__entry->enq = xhci_trb_virt_to_dma(ring->enq_seg, ring->enqueue);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 483) 		__entry->deq = xhci_trb_virt_to_dma(ring->deq_seg, ring->dequeue);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 484) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 485) 	TP_printk("%s %p: enq %pad(%pad) deq %pad(%pad) segs %d stream %d free_trbs %d bounce %d cycle %d",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 486) 			xhci_ring_type_string(__entry->type), __entry->ring,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 487) 			&__entry->enq, &__entry->enq_seg,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 488) 			&__entry->deq, &__entry->deq_seg,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 489) 			__entry->num_segs,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 490) 			__entry->stream_id,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 491) 			__entry->num_trbs_free,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 492) 			__entry->bounce_buf_len,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 493) 			__entry->cycle_state
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 494) 		)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 495) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 496) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 497) DEFINE_EVENT(xhci_log_ring, xhci_ring_alloc,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 498) 	TP_PROTO(struct xhci_ring *ring),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 499) 	TP_ARGS(ring)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 500) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 501) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 502) DEFINE_EVENT(xhci_log_ring, xhci_ring_free,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 503) 	TP_PROTO(struct xhci_ring *ring),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 504) 	TP_ARGS(ring)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 505) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 506) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 507) DEFINE_EVENT(xhci_log_ring, xhci_ring_expansion,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 508) 	TP_PROTO(struct xhci_ring *ring),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 509) 	TP_ARGS(ring)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 510) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 511) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 512) DEFINE_EVENT(xhci_log_ring, xhci_inc_enq,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 513) 	TP_PROTO(struct xhci_ring *ring),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 514) 	TP_ARGS(ring)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 515) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 516) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 517) DEFINE_EVENT(xhci_log_ring, xhci_inc_deq,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 518) 	TP_PROTO(struct xhci_ring *ring),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 519) 	TP_ARGS(ring)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 520) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 521) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 522) DECLARE_EVENT_CLASS(xhci_log_portsc,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 523) 		    TP_PROTO(u32 portnum, u32 portsc),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 524) 		    TP_ARGS(portnum, portsc),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 525) 		    TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 526) 				     __field(u32, portnum)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 527) 				     __field(u32, portsc)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 528) 				     __dynamic_array(char, str, XHCI_MSG_MAX)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 529) 				     ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 530) 		    TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 531) 				   __entry->portnum = portnum;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 532) 				   __entry->portsc = portsc;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 533) 				   ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 534) 		    TP_printk("port-%d: %s",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 535) 			      __entry->portnum,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 536) 			      xhci_decode_portsc(__get_str(str), __entry->portsc)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 537) 			      )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 538) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 539) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 540) DEFINE_EVENT(xhci_log_portsc, xhci_handle_port_status,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 541) 	     TP_PROTO(u32 portnum, u32 portsc),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 542) 	     TP_ARGS(portnum, portsc)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 543) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 544) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 545) DEFINE_EVENT(xhci_log_portsc, xhci_get_port_status,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 546) 	     TP_PROTO(u32 portnum, u32 portsc),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 547) 	     TP_ARGS(portnum, portsc)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 548) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 549) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 550) DEFINE_EVENT(xhci_log_portsc, xhci_hub_status_data,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 551) 	     TP_PROTO(u32 portnum, u32 portsc),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 552) 	     TP_ARGS(portnum, portsc)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 553) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 554) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 555) DECLARE_EVENT_CLASS(xhci_log_doorbell,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 556) 	TP_PROTO(u32 slot, u32 doorbell),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 557) 	TP_ARGS(slot, doorbell),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 558) 	TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 559) 		__field(u32, slot)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 560) 		__field(u32, doorbell)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 561) 		__dynamic_array(char, str, XHCI_MSG_MAX)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 562) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 563) 	TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 564) 		__entry->slot = slot;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 565) 		__entry->doorbell = doorbell;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 566) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 567) 	TP_printk("Ring doorbell for %s",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 568) 		  xhci_decode_doorbell(__get_str(str), __entry->slot, __entry->doorbell)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 569) 	)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 570) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 571) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 572) DEFINE_EVENT(xhci_log_doorbell, xhci_ring_ep_doorbell,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 573) 	     TP_PROTO(u32 slot, u32 doorbell),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 574) 	     TP_ARGS(slot, doorbell)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 575) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 576) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 577) DEFINE_EVENT(xhci_log_doorbell, xhci_ring_host_doorbell,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 578) 	     TP_PROTO(u32 slot, u32 doorbell),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 579) 	     TP_ARGS(slot, doorbell)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 580) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 581) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 582) DECLARE_EVENT_CLASS(xhci_dbc_log_request,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 583) 	TP_PROTO(struct dbc_request *req),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 584) 	TP_ARGS(req),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 585) 	TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 586) 		__field(struct dbc_request *, req)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 587) 		__field(bool, dir)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 588) 		__field(unsigned int, actual)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 589) 		__field(unsigned int, length)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 590) 		__field(int, status)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 591) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 592) 	TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 593) 		__entry->req = req;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 594) 		__entry->dir = req->direction;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 595) 		__entry->actual = req->actual;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 596) 		__entry->length = req->length;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 597) 		__entry->status = req->status;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 598) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 599) 	TP_printk("%s: req %p length %u/%u ==> %d",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 600) 		__entry->dir ? "bulk-in" : "bulk-out",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 601) 		__entry->req, __entry->actual,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 602) 		__entry->length, __entry->status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 603) 	)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 604) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 605) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 606) DEFINE_EVENT(xhci_dbc_log_request, xhci_dbc_alloc_request,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 607) 	TP_PROTO(struct dbc_request *req),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 608) 	TP_ARGS(req)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 609) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 610) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 611) DEFINE_EVENT(xhci_dbc_log_request, xhci_dbc_free_request,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 612) 	TP_PROTO(struct dbc_request *req),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 613) 	TP_ARGS(req)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 614) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 615) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 616) DEFINE_EVENT(xhci_dbc_log_request, xhci_dbc_queue_request,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 617) 	TP_PROTO(struct dbc_request *req),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 618) 	TP_ARGS(req)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 619) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 620) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 621) DEFINE_EVENT(xhci_dbc_log_request, xhci_dbc_giveback_request,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 622) 	TP_PROTO(struct dbc_request *req),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 623) 	TP_ARGS(req)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 624) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 625) #endif /* __XHCI_TRACE_H */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 626) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 627) /* this part must be outside header guard */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 628) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 629) #undef TRACE_INCLUDE_PATH
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 630) #define TRACE_INCLUDE_PATH .
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 631) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 632) #undef TRACE_INCLUDE_FILE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 633) #define TRACE_INCLUDE_FILE xhci-trace
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 634) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 635) #include <trace/define_trace.h>