summaryrefslogtreecommitdiff
path: root/recipes/linux/linux-omap-pm-2.6.29/dss2/0053-DSS2-disable-LCD-DIGIT-before-resetting-DSS.patch
blob: 38d162d024fd172b85ab9f0982b664d498775f1c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
From c7ce3c5e9f7e28900b8ea9c3e1afe41dcdc0863d Mon Sep 17 00:00:00 2001
From: Tomi Valkeinen <tomi.valkeinen@nokia.com>
Date: Thu, 23 Apr 2009 10:46:53 +0300
Subject: [PATCH 53/69] DSS2: disable LCD & DIGIT before resetting DSS

This seems to fix the synclost problem that we get, if the bootloader
starts the DSS and the kernel resets it.
---
 drivers/video/omap2/dss/dss.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/video/omap2/dss/dss.c b/drivers/video/omap2/dss/dss.c
index adc1f34..aab9758 100644
--- a/drivers/video/omap2/dss/dss.c
+++ b/drivers/video/omap2/dss/dss.c
@@ -285,6 +285,11 @@ int dss_init(bool skip_init)
 	}
 
 	if (!skip_init) {
+		/* disable LCD and DIGIT output. This seems to fix the synclost
+		 * problem that we get, if the bootloader starts the DSS and
+		 * the kernel resets it */
+		omap_writel(omap_readl(0x48050440) & ~0x3, 0x48050440);
+
 		/* We need to wait here a bit, otherwise we sometimes start to
 		 * get synclost errors, and after that only power cycle will
 		 * restore DSS functionality. I have no idea why this happens.
@@ -294,10 +299,7 @@ int dss_init(bool skip_init)
 		msleep(50);
 
 		_omap_dss_reset();
-
 	}
-	else
-		printk("DSS SKIP RESET\n");
 
 	/* autoidle */
 	REG_FLD_MOD(DSS_SYSCONFIG, 1, 0, 0);
-- 
1.6.2.4