|
@@ -171,6 +171,37 @@ DEFINE_EVENT(xhci_log_trb, xhci_dbc_gadget_ep_queue,
|
|
|
TP_ARGS(ring, trb)
|
|
|
);
|
|
|
|
|
|
+DECLARE_EVENT_CLASS(xhci_log_free_virt_dev,
|
|
|
+ TP_PROTO(struct xhci_virt_device *vdev),
|
|
|
+ TP_ARGS(vdev),
|
|
|
+ TP_STRUCT__entry(
|
|
|
+ __field(void *, vdev)
|
|
|
+ __field(unsigned long long, out_ctx)
|
|
|
+ __field(unsigned long long, in_ctx)
|
|
|
+ __field(u8, fake_port)
|
|
|
+ __field(u8, real_port)
|
|
|
+ __field(u16, current_mel)
|
|
|
+
|
|
|
+ ),
|
|
|
+ TP_fast_assign(
|
|
|
+ __entry->vdev = vdev;
|
|
|
+ __entry->in_ctx = (unsigned long long) vdev->in_ctx->dma;
|
|
|
+ __entry->out_ctx = (unsigned long long) vdev->out_ctx->dma;
|
|
|
+ __entry->fake_port = (u8) vdev->fake_port;
|
|
|
+ __entry->real_port = (u8) vdev->real_port;
|
|
|
+ __entry->current_mel = (u16) vdev->current_mel;
|
|
|
+ ),
|
|
|
+ TP_printk("vdev %p ctx %llx | %llx fake_port %d real_port %d current_mel %d",
|
|
|
+ __entry->vdev, __entry->in_ctx, __entry->out_ctx,
|
|
|
+ __entry->fake_port, __entry->real_port, __entry->current_mel
|
|
|
+ )
|
|
|
+);
|
|
|
+
|
|
|
+DEFINE_EVENT(xhci_log_free_virt_dev, xhci_free_virt_device,
|
|
|
+ TP_PROTO(struct xhci_virt_device *vdev),
|
|
|
+ TP_ARGS(vdev)
|
|
|
+);
|
|
|
+
|
|
|
DECLARE_EVENT_CLASS(xhci_log_virt_dev,
|
|
|
TP_PROTO(struct xhci_virt_device *vdev),
|
|
|
TP_ARGS(vdev),
|
|
@@ -208,11 +239,6 @@ DEFINE_EVENT(xhci_log_virt_dev, xhci_alloc_virt_device,
|
|
|
TP_ARGS(vdev)
|
|
|
);
|
|
|
|
|
|
-DEFINE_EVENT(xhci_log_virt_dev, xhci_free_virt_device,
|
|
|
- TP_PROTO(struct xhci_virt_device *vdev),
|
|
|
- TP_ARGS(vdev)
|
|
|
-);
|
|
|
-
|
|
|
DEFINE_EVENT(xhci_log_virt_dev, xhci_setup_device,
|
|
|
TP_PROTO(struct xhci_virt_device *vdev),
|
|
|
TP_ARGS(vdev)
|