^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>