All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tony Lindgren <tony@atomide.com>
To: linux-arm-kernel@lists.arm.linux.org.uk
Cc: linux-omap@vger.kernel.org,
	Kevin Hilman <khilman@ti.deeprootsystems.com>,
	Kalle Jokiniemi <ext-kalle.jokiniemi@nokia.com>
Subject: [PATCH 08/12] OMAP3: DMA: Enable idlemodes for DMA OCP
Date: Mon, 22 Jun 2009 14:47:41 +0300	[thread overview]
Message-ID: <20090622114741.28477.50965.stgit@localhost> (raw)
In-Reply-To: <20090622113422.28477.27052.stgit@localhost>

From: Kalle Jokiniemi <ext-kalle.jokiniemi@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.jokiniemi@nokia.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Kevin Hilman <khilman@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_IDLE			0x0
+
 /* Chaining modes*/
 #ifndef CONFIG_ARCH_OMAP1
 #define OMAP_DMA_STATIC_CHAIN		0x1


  parent reply	other threads:[~2009-06-22 11:47 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-22 11:36 [PATCH 00/12] Omap fixes for 2.6.31 Tony Lindgren
2009-06-22 11:38 ` [PATCH 01/12] OMAP1: Fix compilation of arch/arm/mach-omap1/mailbox.c Tony Lindgren
2009-06-22 11:39 ` [PATCH 02/12] OMAP1: Fix N770 MMC support Tony Lindgren
2009-06-22 11:41 ` [PATCH 03/12] OMAP1: remove duplicated #include Tony Lindgren
2009-06-22 11:42 ` [PATCH 04/12] OMAP2/3: mmc-twl4030: use correct controller in twl_mmc23_set_power Tony Lindgren
2009-06-22 11:43 ` [PATCH 05/12] OMAP2/3: omap mailbox: platform_get_irq() error ignored Tony Lindgren
2009-06-22 11:45 ` [PATCH 06/12] OMAP2/3: Add omap_type() for determining GP/EMU/HS Tony Lindgren
2009-06-22 11:46 ` [PATCH 07/12] OMAP3: SRAM size fix for HS/EMU devices Tony Lindgren
2009-06-22 11:47 ` Tony Lindgren [this message]
2009-06-22 11:49 ` [PATCH 09/12] OMAP2/3: gpmc-onenand: correct use of async timings Tony Lindgren
2009-06-22 11:50 ` [PATCH 10/12] OMAP3: RX51: Use OneNAND sync read / write Tony Lindgren
2009-06-22 11:51 ` [PATCH 11/12] OMAP: IOMMU: function flush_iotlb_page is not flushing correct entry Tony Lindgren
2009-06-22 11:53 ` [PATCH 12/12] OMAP2/3: Initialize gpio debounce register Tony Lindgren
2009-06-23 13:57   ` [PATCH 13/12] OMAP: Fix IOMEM macro for assembly Tony Lindgren
2009-06-25 12:27 ` [PATCH 00/12] Omap fixes for 2.6.31 Russell King - ARM Linux
2009-06-25 12:35   ` Git pull request for omap-fixes for 2.6.31 (Re: [PATCH 00/12] Omap fixes for 2.6.31) Tony Lindgren

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090622114741.28477.50965.stgit@localhost \
    --to=tony@atomide.com \
    --cc=ext-kalle.jokiniemi@nokia.com \
    --cc=khilman@ti.deeprootsystems.com \
    --cc=linux-arm-kernel@lists.arm.linux.org.uk \
    --cc=linux-omap@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.