summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorVincent Palatin <vpalatin@chromium.org>2011-07-05 13:01:26 -0700
committerSimon Glass <sjg@chromium.org>2011-08-29 10:58:47 -0700
commit61f94468277f418e3ca904ddf612bd0d81dbf742 (patch)
treec444232d4ab14bacecfe6bffa4116a48647fe261 /drivers
parent9136773f0da367d4f2ad41f93673c5035594b488 (diff)
ehci: Add 64-bit controller support
On EHCI controller with 64-bit address space support, we must initialize properly the high word for the PCI bus master accesses. BUG=chrome-os-partner:3914 TEST=Boot a Chromeos image from a USB key on Alex : "usb start ; fatload usb 1:c 3000000 syslinux/vmlinuz.a ; zboot 3000000" and launch a TFTP transfer using a USB-ethernet dongle. Change-Id: I61026276c27d82707469f7296deaffef4f5d7926 Reviewed-on: http://gerrit.chromium.org/gerrit/3655 Tested-by: Vincent Palatin <vpalatin@chromium.org> Reviewed-by: Stefan Reinauer <reinauer@google.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/usb/host/ehci-hcd.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
index 319c0d12f9..4051923f83 100644
--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
@@ -850,6 +850,9 @@ int usb_lowlevel_init(void)
if (ehci_hcd_init() != 0)
return -1;
#endif
+ /* Set the high address word (aka segment) for 64-bit controller */
+ if (ehci_readl(&hccr->cr_hccparams) & 1) /* 64-bit Addressing */
+ ehci_writel(&hcor->or_ctrldssegment, 0);
/* Set head of reclaim list */
memset(&qh_list, 0, sizeof(qh_list));