ARM: OMAP: Sleep is prevented when no LCD is attached
authorImre Deak <imre.deak@solidboot.com>
Mon, 25 Sep 2006 09:41:28 +0000 (12:41 +0300)
committerTony Lindgren <tony@atomide.com>
Mon, 25 Sep 2006 09:41:28 +0000 (12:41 +0300)
We have to make sure that the LCD DMA external destination bit is
cleared by default, otherwise OMAP won't sleep.

Signed-off-by: Imre Deak <imre.deak@solidboot.com>
Signed-off-by: Juha Yrjola <juha.yrjola@solidboot.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/plat-omap/dma.c

index 9eddc9507147121a892291563dd4902eda322810..9948d7a263398aced5329124fb67ac7b9efca118 100644 (file)
@@ -1339,6 +1339,14 @@ static int __init omap_init_dma(void)
                        dma_chan_count = 16;
                } else
                        dma_chan_count = 9;
+               if (cpu_is_omap16xx()) {
+                       u16 w;
+
+                       /* this would prevent OMAP sleep */
+                       w = omap_readw(OMAP1610_DMA_LCD_CTRL);
+                       w &= ~(1 << 8);
+                       omap_writew(w, OMAP1610_DMA_LCD_CTRL);
+               }
        } else if (cpu_is_omap24xx()) {
                u8 revision = omap_readb(OMAP_DMA4_REVISION);
                printk(KERN_INFO "OMAP DMA hardware revision %d.%d\n",