29#ifdef USB_GLOBAL_INCLUDE_FILE
30#include USB_GLOBAL_INCLUDE_FILE
32#include <sys/stdint.h>
33#include <sys/stddef.h>
38#include <sys/kernel.h>
40#include <sys/module.h>
43#include <sys/condvar.h>
44#include <sys/sysctl.h>
46#include <sys/unistd.h>
47#include <sys/callout.h>
48#include <sys/malloc.h>
62#include <ddb/db_sym.h>
80static SYSCTL_NODE(_hw_usb, OID_AUTO, timings, CTLFLAG_RW | CTLFLAG_MPSAFE, 0,
82static int usb_timings_sysctl_handler(SYSCTL_HANDLER_ARGS);
84SYSCTL_PROC(_hw_usb_timings, OID_AUTO, port_reset_delay,
88SYSCTL_PROC(_hw_usb_timings, OID_AUTO, port_root_reset_delay,
89 CTLTYPE_UINT | CTLFLAG_RWTUN | CTLFLAG_MPSAFE,
91 usb_timings_sysctl_handler,
"IU",
92 "Root Port Reset Delay");
93SYSCTL_PROC(_hw_usb_timings, OID_AUTO, port_reset_recovery,
94 CTLTYPE_UINT | CTLFLAG_RWTUN | CTLFLAG_MPSAFE,
96 usb_timings_sysctl_handler,
"IU",
97 "Port Reset Recovery");
98SYSCTL_PROC(_hw_usb_timings, OID_AUTO, port_powerup_delay,
101 "Port PowerUp Delay");
102SYSCTL_PROC(_hw_usb_timings, OID_AUTO, port_resume_delay,
105 "Port Resume Delay");
106SYSCTL_PROC(_hw_usb_timings, OID_AUTO, set_address_settle,
109 "Set Address Settle");
110SYSCTL_PROC(_hw_usb_timings, OID_AUTO, resume_delay,
118SYSCTL_PROC(_hw_usb_timings, OID_AUTO, resume_recovery,
122SYSCTL_PROC(_hw_usb_timings, OID_AUTO, extra_power_up_time,
125 "Extra PowerUp Time");
136 printf(
"usb_dump_iface: iface=%p\n", iface);
140 printf(
" iface=%p idesc=%p altindex=%d\n",
152 printf(
"usb_dump_device: dev=%p\n", udev);
157 " address=%d config=%d depth=%d speed=%d self_powered=%d\n"
158 " power=%d langid=%d\n",
175 printf(
"usb_dump_queue: endpoint=%p xfer: ", ep);
177 TAILQ_FOREACH(xfer, &ep->
endpoint_q[x].head, wait_entry)
192 printf(
"usb_dump_endpoint: endpoint=%p", ep);
194 printf(
" edesc=%p isoc_next=%d toggle_next=%d",
198 printf(
" bEndpointAddress=0x%02x",
204 printf(
"usb_dump_endpoint: endpoint=NULL\n");
217 printf(
"usb_dump_xfer: xfer=%p\n", xfer);
222 printf(
"xfer %p: endpoint=NULL\n",
227 printf(
"xfer %p: udev=%p vid=0x%04x pid=0x%04x addr=%d "
228 "endpoint=%p ep=0x%02x attr=0x%02x\n",
254static int usb_timings_sysctl_handler(SYSCTL_HANDLER_ARGS)
263 val = *(
unsigned *)arg1;
285 *(
unsigned *)arg1 =
val;
SYSCTL_PROC(_hw_usb_atp, OID_AUTO, scale_factor, CTLTYPE_UINT|CTLFLAG_RWTUN|CTLFLAG_MPSAFE, &atp_mickeys_scale_factor, sizeof(atp_mickeys_scale_factor), atp_sysctl_scale_factor_handler, "IU", "movement scale factor")
struct usb_device_descriptor ddesc
struct usb_device_flags flags
struct usb_xfer_queue endpoint_q[USB_MAX_EP_STREAMS]
struct usb_endpoint_descriptor * edesc
struct usb_interface_descriptor * idesc
struct usb_endpoint * endpoint
struct usb_xfer_root * xroot
#define USB_PORT_RESET_RECOVERY
#define USB_SET_ADDRESS_SETTLE
#define USB_EXTRA_POWER_UP_TIME
#define USB_PORT_POWERUP_DELAY
#define USB_PORT_ROOT_RESET_DELAY
#define USB_PORT_RESET_DELAY
#define USB_RESUME_RECOVERY
#define USB_PORT_RESUME_DELAY
SYSCTL_INT(_hw_usb, OID_AUTO, debug, CTLFLAG_RWTUN, &usb_debug, 0, "Debug level")
SYSCTL_NODE(_hw, OID_AUTO, usb, CTLFLAG_RW|CTLFLAG_MPSAFE, 0, "USB debugging")
void usb_dump_endpoint(struct usb_endpoint *ep)
void usb_dump_iface(struct usb_interface *iface)
void usb_dump_queue(struct usb_endpoint *ep)
void usb_dump_device(struct usb_device *udev)
void usb_dump_xfer(struct usb_xfer *xfer)
#define usb_port_resume_delay
#define usb_port_reset_recovery
#define usb_port_reset_delay
#define usb_extra_power_up_time
#define usb_port_powerup_delay
#define usb_resume_recovery
#define usb_set_address_settle
#define usb_port_root_reset_delay
#define USB_MAX_EP_STREAMS