diff options
author | hselasky <hselasky@FreeBSD.org> | 2013-09-21 21:40:57 +0000 |
---|---|---|
committer | hselasky <hselasky@FreeBSD.org> | 2013-09-21 21:40:57 +0000 |
commit | eaecb3d1ae60457bac557fd719cacb819f801159 (patch) | |
tree | 7a266a6213a92c1ea75f5a60a67c666060a37f55 /sys/dev/usb/controller/xhci.h | |
parent | cda41f674dcdd03b86d4e53cd0dbd08b534f9e7a (diff) | |
download | FreeBSD-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.h | 5 |
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); |