public inbox for linux-omap@vger.kernel.org
 help / color / mirror / Atom feed
From: Vivien Chappelier <vivien.chappelier@free.fr>
To: linux-omap-open-source@linux.omap.com
Subject: [PATCH 6/12] Allow framebuffer in SRAM and do not touch framebuffer SRAM on boot.
Date: Sat, 9 Jun 2007 20:41:40 +0200	[thread overview]
Message-ID: <20070609184140.GF1889@varda> (raw)

On HTC smartphones, the LCD controller is already running in SRAM at boot time.
Therefore, clearing the SRAM before the controller is turned off will hang it,
and attemps to reset it later during the initialization of the LCD will not
work. This patch reserves the SRAM part where the framebuffer 'palette' is
located so that it is not cleared at boot time on HTC phones. It also fixes
support for LCD DMA in the SRAM region.

Signed-off-by: Vivien Chappelier <vivien.chappelier@free.fr>

---
 arch/arm/plat-omap/dma.c  |   12 ++++++++++++
 arch/arm/plat-omap/sram.c |    2 ++
 2 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c
index 05a3849..6e83f85 100644
--- a/arch/arm/plat-omap/dma.c
+++ b/arch/arm/plat-omap/dma.c
@@ -47,6 +47,8 @@
 
 #define OMAP_FUNC_MUX_ARM_BASE	(0xfffe1000 + 0xec)
 
+#define OMAP_SRAM_BASE          0x20000000
+
 static int enable_1510_mode = 0;
 
 struct omap_dma_lch {
@@ -1176,6 +1178,16 @@ static void set_b1_regs(void)
 	}
 
 	if (omap_dma_in_1510_mode()) {
+
+		if(top >= OMAP_SRAM_BASE && bottom >= OMAP_SRAM_BASE) {
+			omap_writew(1 << 6, OMAP1510_DMA_LCD_CTRL); /* SRAM */
+		} else if(top < OMAP_SRAM_BASE && bottom < OMAP_SRAM_BASE) {
+			omap_writew(0, OMAP1510_DMA_LCD_CTRL);     /* SDRAM */
+		} else {
+			printk(KERN_ERR "LCD DMA across SDRAM and SRAM\n");
+			BUG();
+		}
+
 		omap_writew(top >> 16, OMAP1510_DMA_LCD_TOP_F1_U);
 		omap_writew(top, OMAP1510_DMA_LCD_TOP_F1_L);
 		omap_writew(bottom >> 16, OMAP1510_DMA_LCD_BOT_F1_U);
diff --git a/arch/arm/plat-omap/sram.c b/arch/arm/plat-omap/sram.c
index 1f23f04..2e0b267 100644
--- a/arch/arm/plat-omap/sram.c
+++ b/arch/arm/plat-omap/sram.c
@@ -33,6 +33,8 @@
 
 #if defined(CONFIG_ARCH_OMAP24XX)
 #define SRAM_BOOTLOADER_SZ	0x00
+#elif defined(CONFIG_MACH_TYPHOON) /* don't touch framebuffer until DMA off */
+#define SRAM_BOOTLOADER_SZ      0x1020
 #else
 #define SRAM_BOOTLOADER_SZ	0x80
 #endif
-- 
1.5.1.3

             reply	other threads:[~2007-06-09 18:41 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-06-09 18:41 Vivien Chappelier [this message]
  -- strict thread matches above, loose matches on Subject: below --
2007-06-09 17:28 [PATCH 6/12] Allow framebuffer in SRAM and do not touch framebuffer SRAM on boot Vivien Chappelier
2007-06-12 13:27 ` 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=20070609184140.GF1889@varda \
    --to=vivien.chappelier@free.fr \
    --cc=linux-omap-open-source@linux.omap.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox