Title: [5984] trunk/arch/blackfin/kernel/bfin_dma_5xx.c: [#4743] do a SSYNC before mucking with DMA registers
Revision
5984
Author
vapier
Date
2009-01-09 05:47:54 -0600 (Fri, 09 Jan 2009)

Log Message

[#4743] do a SSYNC before mucking with DMA registers

Modified Paths

Diff

Modified: trunk/arch/blackfin/kernel/bfin_dma_5xx.c (5983 => 5984)


--- trunk/arch/blackfin/kernel/bfin_dma_5xx.c	2009-01-09 10:02:01 UTC (rev 5983)
+++ trunk/arch/blackfin/kernel/bfin_dma_5xx.c	2009-01-09 11:47:54 UTC (rev 5984)
@@ -249,6 +249,13 @@
 
 	spin_lock_irqsave(&mdma_lock, flags);
 
+	/* Force a sync in case a previous config reset on this channel
+	 * occurred.  This is needed so subsequent writes to DMA registers
+	 * are not spuriously lost/corrupted.  Do it under irq lock and
+	 * without the anomaly version (because we are atomic already).
+	 */
+	__builtin_bfin_ssync();
+
 	if (bfin_read_MDMA_S0_CONFIG())
 		while (!(bfin_read_MDMA_D0_IRQ_STATUS() & DMA_DONE))
 			continue;
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
http://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits

Reply via email to