Revision d4066479

b/hw/omap_dma.c
668 668
        /* If the channel is async, update cpc */
669 669
        if (!ch->sync && frames)
670 670
            ch->cpc = a->dest & 0xffff;
671

  
672
        /* TODO: if the destination port is IMIF or EMIFF, set the dirty
673
         * bits on it.  */
671 674
    }
672 675

  
673 676
    omap_dma_interrupts_update(s);
b/hw/soc_dma.c
49 49
static int fifo_size;
50 50
void transfer_fifo2fifo(struct soc_dma_ch_s *ch)
51 51
{
52
    if (ch->bytes < fifo_size)
52
    if (ch->bytes > fifo_size)
53 53
        fifo_buf = realloc(fifo_buf, fifo_size = ch->bytes);
54 54

  
55 55
    /* Implement as transfer_fifo2linear + transfer_linear2fifo.  */
......
251 251
    }
252 252

  
253 253
    soc_dma_reset(&s->soc);
254
    fifo_size = 0;
254 255

  
255 256
    return &s->soc;
256 257
}

Also available in: Unified diff