summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2015-10-20 18:39:29 +0200
committerMarek Vasut <marex@denx.de>2015-11-03 17:29:33 +0100
commitb748b24fb504b4da630c6464d6704ae7758f3732 (patch)
tree54f5f361286050aeac6129559ad353f16944a27b /drivers
parentf5fb78a2748af0d532110cc4f03912b6b30f8761 (diff)
downloadu-boot-imx-b748b24fb504b4da630c6464d6704ae7758f3732.zip
u-boot-imx-b748b24fb504b4da630c6464d6704ae7758f3732.tar.gz
u-boot-imx-b748b24fb504b4da630c6464d6704ae7758f3732.tar.bz2
ohci: Add missing cache-flush for hcca area
We need to cache-flush the hcca area after the initial memset, otherwise on the first hc_interrupt we might see an old $random value as done_head and try to interpret that as the address for a completed td (followed by chaos). Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/usb/host/ohci-hcd.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c
index 9bde2b2..ccbfc02 100644
--- a/drivers/usb/host/ohci-hcd.c
+++ b/drivers/usb/host/ohci-hcd.c
@@ -2205,6 +2205,7 @@ int ohci_register(struct udevice *dev, struct ohci_regs *regs)
if (!ohci->hcca)
return -ENOMEM;
memset(ohci->hcca, 0, sizeof(struct ohci_hcca));
+ flush_dcache_hcca(ohci->hcca);
if (hc_reset(ohci) < 0)
return -EIO;