summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb/controller/xhci.h
diff options
context:
space:
mode:
authorhselasky <hselasky@FreeBSD.org>2013-09-21 21:40:57 +0000
committerhselasky <hselasky@FreeBSD.org>2013-09-21 21:40:57 +0000
commiteaecb3d1ae60457bac557fd719cacb819f801159 (patch)
tree7a266a6213a92c1ea75f5a60a67c666060a37f55 /sys/dev/usb/controller/xhci.h
parentcda41f674dcdd03b86d4e53cd0dbd08b534f9e7a (diff)
downloadFreeBSD-src-eaecb3d1ae60457bac557fd719cacb819f801159.zip
FreeBSD-src-eaecb3d1ae60457bac557fd719cacb819f801159.tar.gz
Stability fixes for Intel LynxPoint XHCI controllers. Disable XHCI port
routing if we get certain errors. Poll for command completion upon command timeouts. The XHCI error events might not generate interrupts. MFC after: 1 week Reported by: Daniel Gerzo <danger@rulez.sk>, Antonis Anastasiadis <anastasiadis@datalive.gr> PR: usb/181159 Approved by: re (gjb)
Diffstat (limited to 'sys/dev/usb/controller/xhci.h')
-rw-r--r--sys/dev/usb/controller/xhci.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/dev/usb/controller/xhci.h b/sys/dev/usb/controller/xhci.h
index 3d436fd..10045a7 100644
--- a/sys/dev/usb/controller/xhci.h
+++ b/sys/dev/usb/controller/xhci.h
@@ -431,6 +431,8 @@ union xhci_hub_desc {
uint8_t temp[128];
};
+typedef int (xhci_port_route_t)(device_t, uint32_t, uint32_t);
+
struct xhci_softc {
struct xhci_hw_softc sc_hw;
/* base device */
@@ -440,6 +442,8 @@ struct xhci_softc {
struct usb_callout sc_callout;
+ xhci_port_route_t *sc_port_route;
+
union xhci_hub_desc sc_hub_desc;
struct cv sc_cmd_cv;
@@ -502,7 +506,6 @@ struct xhci_softc {
/* prototypes */
-uint32_t xhci_get_port_route(void);
uint8_t xhci_use_polling(void);
usb_error_t xhci_halt_controller(struct xhci_softc *);
usb_error_t xhci_init(struct xhci_softc *, device_t);
OpenPOWER on IntegriCloud