From d406647966365b4ea505ef290825b257c678e764 Mon Sep 17 00:00:00 2001 From: balrog Date: Tue, 22 Jul 2008 01:57:42 +0000 Subject: [PATCH] Fix a bad comparison, spotted by Paul Brook. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4922 c046a42c-6fe2-441c-8c8c-71466251a162 --- hw/omap_dma.c | 3 +++ hw/soc_dma.c | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/hw/omap_dma.c b/hw/omap_dma.c index df4fb01c99..ba980df5e1 100644 --- a/hw/omap_dma.c +++ b/hw/omap_dma.c @@ -668,6 +668,9 @@ static void omap_dma_transfer_setup(struct soc_dma_ch_s *dma) /* If the channel is async, update cpc */ if (!ch->sync && frames) ch->cpc = a->dest & 0xffff; + + /* TODO: if the destination port is IMIF or EMIFF, set the dirty + * bits on it. */ } omap_dma_interrupts_update(s); diff --git a/hw/soc_dma.c b/hw/soc_dma.c index f46e260600..4ff8cae7c2 100644 --- a/hw/soc_dma.c +++ b/hw/soc_dma.c @@ -49,7 +49,7 @@ static void *fifo_buf; static int fifo_size; void transfer_fifo2fifo(struct soc_dma_ch_s *ch) { - if (ch->bytes < fifo_size) + if (ch->bytes > fifo_size) fifo_buf = realloc(fifo_buf, fifo_size = ch->bytes); /* Implement as transfer_fifo2linear + transfer_linear2fifo. */ @@ -251,6 +251,7 @@ struct soc_dma_s *soc_dma_init(int n) } soc_dma_reset(&s->soc); + fifo_size = 0; return &s->soc; }