xhci: add stream context tracing

Show stream id, stream context type (SCT), ring dequeue pointer and
the DMA address of the stream context during stream allocation

Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Link: https://lore.kernel.org/r/20241106101459.775897-8-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Mathias Nyman
2024-11-06 12:14:33 +02:00
committed by Greg Kroah-Hartman
parent 4a587aa521
commit 4817754a18
3 changed files with 29 additions and 0 deletions
+2
View File
@@ -658,6 +658,8 @@ struct xhci_stream_info *xhci_alloc_stream_info(struct xhci_hcd *xhci,
xhci_dbg(xhci, "Setting stream %d ring ptr to 0x%08llx\n", cur_stream, addr);
ret = xhci_update_stream_mapping(cur_ring, mem_flags);
trace_xhci_alloc_stream_info_ctx(stream_info, cur_stream);
if (ret) {
xhci_ring_free(xhci, cur_ring);
stream_info->stream_rings[cur_stream] = NULL;
+26
View File
@@ -314,6 +314,32 @@ DEFINE_EVENT(xhci_log_urb, xhci_urb_dequeue,
TP_ARGS(urb)
);
DECLARE_EVENT_CLASS(xhci_log_stream_ctx,
TP_PROTO(struct xhci_stream_info *info, unsigned int stream_id),
TP_ARGS(info, stream_id),
TP_STRUCT__entry(
__field(unsigned int, stream_id)
__field(u64, stream_ring)
__field(dma_addr_t, ctx_array_dma)
),
TP_fast_assign(
__entry->stream_id = stream_id;
__entry->stream_ring = le64_to_cpu(info->stream_ctx_array[stream_id].stream_ring);
__entry->ctx_array_dma = info->ctx_array_dma + stream_id * 16;
),
TP_printk("stream %u ctx @%pad: SCT %llu deq %llx", __entry->stream_id,
&__entry->ctx_array_dma, CTX_TO_SCT(__entry->stream_ring),
__entry->stream_ring
)
);
DEFINE_EVENT(xhci_log_stream_ctx, xhci_alloc_stream_info_ctx,
TP_PROTO(struct xhci_stream_info *info, unsigned int stream_id),
TP_ARGS(info, stream_id)
);
DECLARE_EVENT_CLASS(xhci_log_ep_ctx,
TP_PROTO(struct xhci_ep_ctx *ctx),
TP_ARGS(ctx),
+1
View File
@@ -554,6 +554,7 @@ struct xhci_stream_ctx {
/* Stream Context Types (section 6.4.1) - bits 3:1 of stream ctx deq ptr */
#define SCT_FOR_CTX(p) (((p) & 0x7) << 1)
#define CTX_TO_SCT(p) (((p) >> 1) & 0x7)
/* Secondary stream array type, dequeue pointer is to a transfer ring */
#define SCT_SEC_TR 0
/* Primary stream array type, dequeue pointer is to a transfer ring */