diff options
author | Hans de Goede | 2015-10-20 18:39:29 +0200 |
---|---|---|
committer | Marek Vasut | 2015-11-03 17:29:33 +0100 |
commit | b748b24fb504b4da630c6464d6704ae7758f3732 (patch) | |
tree | 54f5f361286050aeac6129559ad353f16944a27b | |
parent | f5fb78a2748af0d532110cc4f03912b6b30f8761 (diff) |
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>
-rw-r--r-- | drivers/usb/host/ohci-hcd.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c index 9bde2b252c0..ccbfc0265a3 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; |