summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/src/9/bcm/dma.c4
-rw-r--r--sys/src/9/bcm/emmc.c2
2 files changed, 4 insertions, 2 deletions
diff --git a/sys/src/9/bcm/dma.c b/sys/src/9/bcm/dma.c
index 84c7f0c73..e0d073ae1 100644
--- a/sys/src/9/bcm/dma.c
+++ b/sys/src/9/bcm/dma.c
@@ -170,7 +170,7 @@ dmastart(int chan, int dev, int dir, void *src, void *dst, int len)
ti = 0;
switch(dir){
case DmaD2M:
- cachedinvse(dst, len);
+ cachedwbinvse(dst, len);
ti = Srcdreq | Destinc;
cb->sourcead = dmaioaddr(src);
cb->destad = dmaaddr(dst);
@@ -183,7 +183,7 @@ dmastart(int chan, int dev, int dir, void *src, void *dst, int len)
break;
case DmaM2M:
cachedwbse(src, len);
- cachedinvse(dst, len);
+ cachedwbinvse(dst, len);
ti = Srcinc | Destinc;
cb->sourcead = dmaaddr(src);
cb->destad = dmaaddr(dst);
diff --git a/sys/src/9/bcm/emmc.c b/sys/src/9/bcm/emmc.c
index 53efe4325..d1906de06 100644
--- a/sys/src/9/bcm/emmc.c
+++ b/sys/src/9/bcm/emmc.c
@@ -398,6 +398,8 @@ emmcio(int write, uchar *buf, int len)
}
if(i)
WR(Interrupt, i);
+ if(!write)
+ cachedinvse(buf, len);
poperror();
okay(0);
}