xref: /linux/drivers/usb/host/xhci-dbg.c (revision 26fbb4c8c7c3ee9a4c3b4de555a8587b5a19154e)
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