Hi,

Mathias Nyman <mathias.ny...@linux.intel.com> writes:
> Unfortunately config endpoint command doesn't log endpoint context in this 
> log,
> it should call  trace_xhci_handle_cmd_config_ep(ep_ctx), I don't know why 
> it's missing.

That's called conditionally:

        case TRB_CONFIG_EP:
                if (!cmd->completion)
                        xhci_handle_cmd_config_ep(xhci, slot_id, event,
                                                  cmd_comp_code);

> But later on at Set TR Dequeue Pointer Command it logs the endpiont context:
>
> 259.147237: xhci_handle_cmd_set_deq: RS 00000 super-speed Ctx Entries 7 MEL 
> 512 us Port# 19/0 [TT Slot 0 Port# 0 TTT 0 Intr 0] Addr 1 State configured
> 259.147238: xhci_handle_cmd_set_deq_ep: State stopped mult 1 max P. Streams 0 
> interval 125 us max ESIT payload 201326592 CErr 0 Type Isoc IN burst 2 maxp 
> 1024 deq 00000003f9fd6510 avg trb len 3072
>
> This looks odd,  201326592 bytes per ESIT, way too much. So much that I 
> suspect tracing decodes it wrong

try this:

modified   drivers/usb/host/xhci.h
@@ -2540,9 +2540,7 @@ static inline const char *xhci_decode_ep_context(u32 
info, u32 info2, u64 deq,
        u8 lsa;
        u8 hid;
 
-       esit = EP_MAX_ESIT_PAYLOAD_HI(info) << 16 |
-               EP_MAX_ESIT_PAYLOAD_LO(tx_info);
-
+       esit = CTX_TO_MAX_ESIT_PAYLOAD(info);
        ep_state = info & EP_STATE_MASK;
        max_pstr = info & EP_MAXPSTREAMS_MASK;
        interval = CTX_TO_EP_INTERVAL(info);

-- 
balbi
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to