Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f9691bb9 authored by Steven Miao's avatar Steven Miao Committed by Mike Frysinger
Browse files

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: default avatarSteven Miao <realmz6@gmail.com>
Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
parent 7a7a430f
Loading
Loading
Loading
Loading
+5 −0
Original line number Original line Diff line number Diff line
@@ -36,6 +36,11 @@ static int __init blackfin_dma_init(void)


	printk(KERN_INFO "Blackfin DMA Controller\n");
	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++) {
	for (i = 0; i < MAX_DMA_CHANNELS; i++) {
		atomic_set(&dma_ch[i].chan_status, 0);
		atomic_set(&dma_ch[i].chan_status, 0);
		dma_ch[i].regs = dma_io_base_addr[i];
		dma_ch[i].regs = dma_io_base_addr[i];