1 // SPDX-License-Identifier: GPL-2.0 2 /* 3 * xHCI host controller driver 4 * 5 * Copyright (C) 2008 Intel Corp. 6 * 7 * Author: Sarah Sharp 8 * Some code borrowed from the Linux EHCI driver. 9 */ 10 11 #include "xhci.h" 12 13 char *xhci_get_slot_state(struct xhci_hcd *xhci, 14 struct xhci_container_ctx *ctx) 15 { 16 struct xhci_slot_ctx *slot_ctx = xhci_get_slot_ctx(xhci, ctx); 17 int state = GET_SLOT_STATE(le32_to_cpu(slot_ctx->dev_state)); 18 19 return xhci_slot_state_string(state); 20 } 21 22 void xhci_dbg_trace(struct xhci_hcd *xhci, void (*trace)(struct va_format *), 23 const char *fmt, ...) 24 { 25 struct va_format vaf; 26 va_list args; 27 28 va_start(args, fmt); 29 vaf.fmt = fmt; 30 vaf.va = &args; 31 xhci_dbg(xhci, "%pV\n", &vaf); 32 trace(&vaf); 33 va_end(args); 34 } 35 EXPORT_SYMBOL_GPL(xhci_dbg_trace); 36