summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorJan Luebbe <jlu@pengutronix.de>2012-05-14 10:39:29 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2012-05-14 19:42:42 +0200
commit1503fe67d11616dccafd3068ad4d3c771df03c4c (patch)
tree565c0aaa9392a6f3626d5ad4e5037c95ceab9ee5 /drivers
parent33daa4f69440bbabdd8fd0bde13d22aa4a384010 (diff)
downloadbarebox-1503fe67d11616dccafd3068ad4d3c771df03c4c.tar.gz
barebox-1503fe67d11616dccafd3068ad4d3c771df03c4c.tar.xz
ohci-hcd: use dma_flush/inv_range to allow using the driver with enabled MMU
Signed-off-by: Jan Luebbe <jlu@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/usb/host/ohci-hcd.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c
index f103101464..05e4094386 100644
--- a/drivers/usb/host/ohci-hcd.c
+++ b/drivers/usb/host/ohci-hcd.c
@@ -859,6 +859,8 @@ static void td_fill(struct ohci *ohci, unsigned int info,
td->hwNextTD = virt_to_phys((void *)m32_swap((unsigned long)td_pt));
+ dma_flush_range((unsigned long)data, (unsigned long)(data + len));
+
/* append to queue */
td->ed->hwTailP = td->hwNextTD;
}
@@ -1555,6 +1557,8 @@ int submit_common_msg(struct usb_device *dev, unsigned long pipe, void *buffer,
dev->status = stat;
dev->act_len = urb->actual_length;
+ dma_inv_range((unsigned long)buffer, (unsigned long)(buffer + transfer_len));
+
pkt_print(urb, dev, pipe, buffer, transfer_len,
setup, "RET(ctlr)", usb_pipein(pipe));