From: Liviu Dudau <liviu.du...@arm.com>

arm64 architecture handles correctly 64bit DMAs and can enable support
for 64bit EHCI host controllers.

Signed-off-by: Liviu Dudau <liviu.du...@arm.com>
Signed-off-by: Ryan Harkin <ryan.har...@linaro.org>
Signed-off-by: Mark Brown <broo...@linaro.org>
---
 drivers/usb/host/ehci-hcd.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
index 81cda09b47e3..e704d403beae 100644
--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
@@ -590,11 +590,17 @@ static int ehci_run (struct usb_hcd *hcd)
         */
        hcc_params = ehci_readl(ehci, &ehci->caps->hcc_params);
        if (HCC_64BIT_ADDR(hcc_params)) {
-               ehci_writel(ehci, 0, &ehci->regs->segment);
-#if 0
-// this is deeply broken on almost all architectures
+#if CONFIG_ARM64
+               ehci_writel(ehci, ehci->periodic_dma >> 32,
+                           &ehci->regs->segment);
+               /*
+                * this is deeply broken on almost all architectures
+                * but arm64 can use it so enable it
+                */
                if (!dma_set_mask(hcd->self.controller, DMA_BIT_MASK(64)))
                        ehci_info(ehci, "enabled 64bit DMA\n");
+#else
+               ehci_writel(ehci, 0, &ehci->regs->segment);
 #endif
        }
 
-- 
2.0.0.rc2

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to