|
@@ -2457,6 +2457,19 @@ static int __init omap_init_dma(void)
|
|
|
setup_irq(irq, &omap24xx_dma_irq);
|
|
|
}
|
|
|
|
|
|
+ /* Enable smartidle idlemodes and autoidle */
|
|
|
+ if (cpu_is_omap34xx()) {
|
|
|
+ u32 v = dma_read(OCP_SYSCONFIG);
|
|
|
+ v &= ~(DMA_SYSCONFIG_MIDLEMODE_MASK |
|
|
|
+ DMA_SYSCONFIG_SIDLEMODE_MASK |
|
|
|
+ DMA_SYSCONFIG_AUTOIDLE);
|
|
|
+ v |= (DMA_SYSCONFIG_MIDLEMODE(DMA_IDLEMODE_SMARTIDLE) |
|
|
|
+ DMA_SYSCONFIG_SIDLEMODE(DMA_IDLEMODE_SMARTIDLE) |
|
|
|
+ DMA_SYSCONFIG_AUTOIDLE);
|
|
|
+ dma_write(v , OCP_SYSCONFIG);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
/* FIXME: Update LCD DMA to work on 24xx */
|
|
|
if (cpu_class_is_omap1()) {
|
|
|
r = request_irq(INT_DMA_LCD, lcd_dma_irq_handler, 0,
|