]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
[PATCH] ARM: OMAP: DMA fixes
authorImre Deak <imre.deak@nokia.com>
Thu, 11 Aug 2005 13:48:04 +0000 (06:48 -0700)
committerTony Lindgren <tony@atomide.com>
Thu, 11 Aug 2005 13:48:04 +0000 (06:48 -0700)
Set the LCD DMA active flag _before_ starting the transfer and
Mask CSR to avoid unnecessary callbacks.

arch/arm/plat-omap/dma.c

index 8d75c9d18142572117ae0576b7836974030f0ca3..da7b6514565884e894d82f729ee38274d63ae46d 100644 (file)
@@ -425,7 +425,7 @@ static int dma_handle_ch(int ch)
                dma_chan[ch + 6].saved_csr = csr >> 7;
                csr &= 0x7f;
        }
-       if (!csr)
+       if ((csr & 0x3f) == 0)
                return 0;
        if (unlikely(dma_chan[ch].dev_id == -1)) {
                printk(KERN_WARNING "Spurious interrupt from DMA channel %d (CSR %04x)\n",
@@ -890,11 +890,11 @@ void omap_enable_lcd_dma(void)
        w |= 1 << 8;
        omap_writew(w, OMAP1610_DMA_LCD_CTRL);
 
+       lcd_dma.active = 1;
+
        w = omap_readw(OMAP1610_DMA_LCD_CCR);
        w |= 1 << 7;
        omap_writew(w, OMAP1610_DMA_LCD_CCR);
-
-       lcd_dma.active = 1;
 }
 
 void omap_setup_lcd_dma(void)