Explorar el Código

Blackfin: work around anomaly 05000480

Anomaly 05000480 on BF537 rev 0.0, 0.1, 0.2:
Multiple Simultaneous Urgent DMA Requests May Cause DMA System Instability

Suggested Workaround:
Program the DMA Traffic Control Period to a non-zero value.  This forces
the DMA block to group accesses together rather than allow arbitration for
each piece of data placed on the internal DMA bus.

Signed-off-by: Steven Miao <realmz6@gmail.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Steven Miao hace 14 años
padre
commit
f9691bb967
Se han modificado 1 ficheros con 5 adiciones y 0 borrados
  1. 5 0
      arch/blackfin/kernel/bfin_dma_5xx.c

+ 5 - 0
arch/blackfin/kernel/bfin_dma_5xx.c

@@ -36,6 +36,11 @@ static int __init blackfin_dma_init(void)
 
 	printk(KERN_INFO "Blackfin DMA Controller\n");
 
+
+#if ANOMALY_05000480
+	bfin_write_DMAC_TC_PER(0x0111);
+#endif
+
 	for (i = 0; i < MAX_DMA_CHANNELS; i++) {
 		atomic_set(&dma_ch[i].chan_status, 0);
 		dma_ch[i].regs = dma_io_base_addr[i];