OSDN Git Service

usb: host: xhci: extract xhci_slot_state_string()
authorFelipe Balbi <felipe.balbi@linux.intel.com>
Fri, 7 Apr 2017 14:56:56 +0000 (17:56 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 8 Apr 2017 10:17:41 +0000 (12:17 +0200)
By extracting and exposing xhci_slot_state_string() in a header file, we
can re-use it to print Slot Context State from our tracepoints, which
can aid in tracking down problems related to command execution.

Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/host/xhci-dbg.c
drivers/usb/host/xhci.h

index 2b4a00f..4cfdd51 100644 (file)
@@ -451,19 +451,9 @@ char *xhci_get_slot_state(struct xhci_hcd *xhci,
                struct xhci_container_ctx *ctx)
 {
        struct xhci_slot_ctx *slot_ctx = xhci_get_slot_ctx(xhci, ctx);
+       int state = GET_SLOT_STATE(le32_to_cpu(slot_ctx->dev_state));
 
-       switch (GET_SLOT_STATE(le32_to_cpu(slot_ctx->dev_state))) {
-       case SLOT_STATE_ENABLED:
-               return "enabled/disabled";
-       case SLOT_STATE_DEFAULT:
-               return "default";
-       case SLOT_STATE_ADDRESSED:
-               return "addressed";
-       case SLOT_STATE_CONFIGURED:
-               return "configured";
-       default:
-               return "reserved";
-       }
+       return xhci_slot_state_string(state);
 }
 
 static void xhci_dbg_slot_ctx(struct xhci_hcd *xhci, struct xhci_container_ctx *ctx)
index 675d552..44d031c 100644 (file)
@@ -2158,6 +2158,22 @@ static inline struct xhci_ring *xhci_urb_to_transfer_ring(struct xhci_hcd *xhci,
                                        urb->stream_id);
 }
 
+static inline char *xhci_slot_state_string(u32 state)
+{
+       switch (state) {
+       case SLOT_STATE_ENABLED:
+               return "enabled/disabled";
+       case SLOT_STATE_DEFAULT:
+               return "default";
+       case SLOT_STATE_ADDRESSED:
+               return "addressed";
+       case SLOT_STATE_CONFIGURED:
+               return "configured";
+       default:
+               return "reserved";
+       }
+}
+
 static inline const char *xhci_decode_trb(u32 field0, u32 field1, u32 field2,
                u32 field3)
 {