|
@@ -53,6 +53,7 @@ static int xhci_pci_setup(struct usb_hcd *hcd)
|
|
|
struct xhci_hcd *xhci = hcd_to_xhci(hcd);
|
|
|
struct pci_dev *pdev = to_pci_dev(hcd->self.controller);
|
|
|
int retval;
|
|
|
+ u32 temp;
|
|
|
|
|
|
hcd->self.sg_tablesize = TRBS_PER_SEGMENT - 2;
|
|
|
|
|
@@ -93,6 +94,14 @@ static int xhci_pci_setup(struct usb_hcd *hcd)
|
|
|
return retval;
|
|
|
xhci_dbg(xhci, "Reset complete\n");
|
|
|
|
|
|
+ temp = xhci_readl(xhci, &xhci->cap_regs->hcc_params);
|
|
|
+ if (HCC_64BIT_ADDR(temp)) {
|
|
|
+ xhci_dbg(xhci, "Enabling 64-bit DMA addresses.\n");
|
|
|
+ dma_set_mask(hcd->self.controller, DMA_BIT_MASK(64));
|
|
|
+ } else {
|
|
|
+ dma_set_mask(hcd->self.controller, DMA_BIT_MASK(32));
|
|
|
+ }
|
|
|
+
|
|
|
xhci_dbg(xhci, "Calling HCD init\n");
|
|
|
/* Initialize HCD and host controller data structures. */
|
|
|
retval = xhci_init(hcd);
|