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:
committed by
Greg Kroah-Hartman
parent
4a587aa521
commit
4817754a18
@@ -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;
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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 */
|
||||
|
||||
Reference in New Issue
Block a user