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