PERFORCE change 181869 for review
Hans Petter Selasky
hselasky at FreeBSD.org
Thu Aug 5 15:49:40 UTC 2010
http://p4web.freebsd.org/@@181869?ac=10
Change 181869 by hselasky at hselasky_laptop001 on 2010/08/05 15:49:38
USB controller (XHCI):
- scratchpad buffers are per HC and not per USB device.
Affected files ...
.. //depot/projects/usb/src/sys/dev/usb/controller/xhci.h#15 edit
Differences ...
==== //depot/projects/usb/src/sys/dev/usb/controller/xhci.h#15 (text+ko) ====
@@ -51,9 +51,11 @@
#define XHCI_PAGE_SIZE 4096 /* bytes */
struct xhci_dev_ctx_addr {
- volatile uint64_t qwBaaDevCtxAddr;
- volatile uint64_t qwBaaScratchAddr;
-#define XHCI_BAA_MASK 0xFFFFFFFFFFFFFFE0ULL
+ volatile uint64_t qwBaaDevCtxAddr[USB_MAX_DEVICES + 1];
+ struct {
+ volatile uint64_t dummy;
+ } __aligned(64) padding;
+ volatile uint64_t qwSpBufPtr[XHCI_MAX_SCRATCHPADS];
};
#define XHCI_EPNO2EPID(x) ((((x) & UE_DIR_IN) ? 1 : 0) | (2 * ((x) & UE_ADDR)))
@@ -151,7 +153,6 @@
struct xhci_input_ctx ctx_input;
struct xhci_slot_ctx ctx_slot;
struct xhci_endp_ctx ctx_ep[XHCI_MAX_ENDPOINTS - 1];
- volatile uint64_t ctx_sp_buf_ptr[XHCI_MAX_SCRATCHPADS];
};
struct xhci_dev_ctx {
@@ -359,12 +360,10 @@
struct usb_page_cache device_pc;
struct usb_page_cache input_pc;
struct usb_page_cache endpoint_pc;
- struct usb_page_cache scratch_pc[XHCI_MAX_SCRATCHPADS];
struct usb_page device_pg;
struct usb_page input_pg;
struct usb_page endpoint_pg;
- struct usb_page scratch_pg[XHCI_MAX_SCRATCHPADS];
struct xhci_endpoint_ext endp[XHCI_MAX_ENDPOINTS];
};
@@ -372,9 +371,11 @@
struct xhci_hw_softc {
struct usb_page_cache root_pc;
struct usb_page_cache ctx_pc;
+ struct usb_page_cache scratch_pc[XHCI_MAX_SCRATCHPADS];
struct usb_page root_pg;
struct usb_page ctx_pg;
+ struct usb_page scratch_pg[XHCI_MAX_SCRATCHPADS];
struct xhci_hw_dev devs[XHCI_MAX_DEVICES];
};
More information about the p4-projects
mailing list