aboutsummaryrefslogtreecommitdiff
path: root/hw/esp.c
diff options
context:
space:
mode:
authorpbrook <pbrook@c046a42c-6fe2-441c-8c8c-71466251a162>2006-08-15 22:57:33 +0000
committerpbrook <pbrook@c046a42c-6fe2-441c-8c8c-71466251a162>2006-08-15 22:57:33 +0000
commit3dc1cb3428f8661f99e03cfac6f5aedf3d614927 (patch)
tree9428561edabd74145f71958024417a88c5d58565 /hw/esp.c
parent35f1df84b6a9d4462764b833e915100f91e4f257 (diff)
downloadqemu-3dc1cb3428f8661f99e03cfac6f5aedf3d614927.zip
qemu-3dc1cb3428f8661f99e03cfac6f5aedf3d614927.tar.gz
qemu-3dc1cb3428f8661f99e03cfac6f5aedf3d614927.tar.bz2
ESP DMA fix.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2110 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'hw/esp.c')
-rw-r--r--hw/esp.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/hw/esp.c b/hw/esp.c
index 17e70dd..d67dbf3 100644
--- a/hw/esp.c
+++ b/hw/esp.c
@@ -206,7 +206,6 @@ static void esp_do_dma(ESPState *s)
{
uint32_t dmaptr, minlen, len, from, to;
int to_device;
- dmaptr = iommu_translate(s->espdmaregs[1]);
to_device = (s->espdmaregs[0] & DMA_WRITE_MEM) == 0;
from = s->espdmaregs[1];
minlen = s->dma_left;
@@ -218,8 +217,8 @@ static void esp_do_dma(ESPState *s)
len = to - from;
}
DPRINTF("DMA address p %08x v %08x len %08x, from %08x, to %08x\n", dmaptr, s->espdmaregs[1], len, from, to);
- s->espdmaregs[1] += len;
if (s->do_cmd) {
+ s->espdmaregs[1] += len;
s->ti_size -= len;
DPRINTF("command len %d + %d\n", s->cmdlen, len);
cpu_physical_memory_read(dmaptr, &s->cmdbuf[s->cmdlen], len);