mirror of https://gitee.com/openkylin/linux.git
xhci: fix endpoint context tracer output
Fix incorrent values showed for max Primary stream and
Linear stream array (LSA) values in the endpoint context
decoder.
Fixes: 19a7d0d65c
("usb: host: xhci: add Slot and EP Context tracers")
Cc: <stable@vger.kernel.org> # v4.12+
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
7b4d930e0d
commit
97ef0faf57
|
@ -718,11 +718,12 @@ struct xhci_ep_ctx {
|
|||
/* bits 10:14 are Max Primary Streams */
|
||||
/* bit 15 is Linear Stream Array */
|
||||
/* Interval - period between requests to an endpoint - 125u increments. */
|
||||
#define EP_INTERVAL(p) (((p) & 0xff) << 16)
|
||||
#define EP_INTERVAL_TO_UFRAMES(p) (1 << (((p) >> 16) & 0xff))
|
||||
#define CTX_TO_EP_INTERVAL(p) (((p) >> 16) & 0xff)
|
||||
#define EP_MAXPSTREAMS_MASK (0x1f << 10)
|
||||
#define EP_MAXPSTREAMS(p) (((p) << 10) & EP_MAXPSTREAMS_MASK)
|
||||
#define EP_INTERVAL(p) (((p) & 0xff) << 16)
|
||||
#define EP_INTERVAL_TO_UFRAMES(p) (1 << (((p) >> 16) & 0xff))
|
||||
#define CTX_TO_EP_INTERVAL(p) (((p) >> 16) & 0xff)
|
||||
#define EP_MAXPSTREAMS_MASK (0x1f << 10)
|
||||
#define EP_MAXPSTREAMS(p) (((p) << 10) & EP_MAXPSTREAMS_MASK)
|
||||
#define CTX_TO_EP_MAXPSTREAMS(p) (((p) & EP_MAXPSTREAMS_MASK) >> 10)
|
||||
/* Endpoint is set up with a Linear Stream Array (vs. Secondary Stream Array) */
|
||||
#define EP_HAS_LSA (1 << 15)
|
||||
/* hosts with LEC=1 use bits 31:24 as ESIT high bits. */
|
||||
|
@ -2549,21 +2550,22 @@ static inline const char *xhci_decode_ep_context(u32 info, u32 info2, u64 deq,
|
|||
u8 burst;
|
||||
u8 cerr;
|
||||
u8 mult;
|
||||
u8 lsa;
|
||||
u8 hid;
|
||||
|
||||
bool lsa;
|
||||
bool hid;
|
||||
|
||||
esit = CTX_TO_MAX_ESIT_PAYLOAD_HI(info) << 16 |
|
||||
CTX_TO_MAX_ESIT_PAYLOAD(tx_info);
|
||||
|
||||
ep_state = info & EP_STATE_MASK;
|
||||
max_pstr = info & EP_MAXPSTREAMS_MASK;
|
||||
max_pstr = CTX_TO_EP_MAXPSTREAMS(info);
|
||||
interval = CTX_TO_EP_INTERVAL(info);
|
||||
mult = CTX_TO_EP_MULT(info) + 1;
|
||||
lsa = info & EP_HAS_LSA;
|
||||
lsa = !!(info & EP_HAS_LSA);
|
||||
|
||||
cerr = (info2 & (3 << 1)) >> 1;
|
||||
ep_type = CTX_TO_EP_TYPE(info2);
|
||||
hid = info2 & (1 << 7);
|
||||
hid = !!(info2 & (1 << 7));
|
||||
burst = CTX_TO_MAX_BURST(info2);
|
||||
maxp = MAX_PACKET_DECODED(info2);
|
||||
|
||||
|
|
Loading…
Reference in New Issue