[APPLIED] [PATCH 2/2] OMAP3: DMA: Enable idlemodes for DMA OCP

2009-06-15 Thread Tony Lindgren
This patch has been applied to the linux-omap
by youw fwiendly patch wobot.

Branch in linux-omap: %s

Initial commit ID (Likely to change): f8e830d85b5cd497fb8176be0d2d8b17c10cf1f0

PatchWorks
http://patchwork.kernel.org/patch/29975/

Git (Likely to change, and takes a while to get mirrored)
http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=commit;h=f8e830d85b5cd497fb8176be0d2d8b17c10cf1f0


--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 2/2] OMAP3: DMA: Enable idlemodes for DMA OCP

2009-06-12 Thread Kevin Hilman
From: Kalle Jokiniemi ext-kalle.jokini...@nokia.com

This patch enables MStandby smart-idle mode, autoidle smartidle mode,
and the autoidle bit for DMA4_OCP_SYSCONFIG.

Signed-off-by: Kalle Jokiniemi ext-kalle.jokini...@nokia.com
Signed-off-by: Tony Lindgren t...@atomide.com
Signed-off-by: Kevin Hilman khil...@ti.deeprootsystems.com
---
 arch/arm/plat-omap/dma.c  |   13 +
 arch/arm/plat-omap/include/mach/dma.h |   15 +++
 2 files changed, 28 insertions(+), 0 deletions(-)

diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c
index def14ec..7677a4a 100644
--- a/arch/arm/plat-omap/dma.c
+++ b/arch/arm/plat-omap/dma.c
@@ -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,
diff --git a/arch/arm/plat-omap/include/mach/dma.h 
b/arch/arm/plat-omap/include/mach/dma.h
index 8c1eae8..7b939cc 100644
--- a/arch/arm/plat-omap/include/mach/dma.h
+++ b/arch/arm/plat-omap/include/mach/dma.h
@@ -389,6 +389,21 @@
 #define DMA_THREAD_FIFO_25 (0x02  14)
 #define DMA_THREAD_FIFO_50 (0x03  14)
 
+/* DMA4_OCP_SYSCONFIG bits */
+#define DMA_SYSCONFIG_MIDLEMODE_MASK   (3  12)
+#define DMA_SYSCONFIG_CLOCKACTIVITY_MASK   (3  8)
+#define DMA_SYSCONFIG_EMUFREE  (1  5)
+#define DMA_SYSCONFIG_SIDLEMODE_MASK   (3  3)
+#define DMA_SYSCONFIG_SOFTRESET(1  2)
+#define DMA_SYSCONFIG_AUTOIDLE (1  0)
+
+#define DMA_SYSCONFIG_MIDLEMODE(n) ((n)  12)
+#define DMA_SYSCONFIG_SIDLEMODE(n) ((n)  3)
+
+#define DMA_IDLEMODE_SMARTIDLE 0x2
+#define DMA_IDLEMODE_NO_IDLE   0x1
+#define DMA_IDLEMODE_FORCE_IDLE0x0
+
 /* Chaining modes*/
 #ifndef CONFIG_ARCH_OMAP1
 #define OMAP_DMA_STATIC_CHAIN  0x1
-- 
1.6.2.2

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html