/* 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);
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. */
}
soc_dma_reset(&s->soc);
+ fifo_size = 0;
return &s->soc;
}