summaryrefslogtreecommitdiffstats
path: root/meta/recipes-kernel/linux/linux-omap-2.6.29/dss2/0053-DSS2-disable-LCD-DIGIT-before-resetting-DSS.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-kernel/linux/linux-omap-2.6.29/dss2/0053-DSS2-disable-LCD-DIGIT-before-resetting-DSS.patch')
-rw-r--r--meta/recipes-kernel/linux/linux-omap-2.6.29/dss2/0053-DSS2-disable-LCD-DIGIT-before-resetting-DSS.patch41
1 files changed, 41 insertions, 0 deletions
diff --git a/meta/recipes-kernel/linux/linux-omap-2.6.29/dss2/0053-DSS2-disable-LCD-DIGIT-before-resetting-DSS.patch b/meta/recipes-kernel/linux/linux-omap-2.6.29/dss2/0053-DSS2-disable-LCD-DIGIT-before-resetting-DSS.patch
new file mode 100644
index 0000000000..f591fb700a
--- /dev/null
+++ b/meta/recipes-kernel/linux/linux-omap-2.6.29/dss2/0053-DSS2-disable-LCD-DIGIT-before-resetting-DSS.patch
@@ -0,0 +1,41 @@
1From c7ce3c5e9f7e28900b8ea9c3e1afe41dcdc0863d Mon Sep 17 00:00:00 2001
2From: Tomi Valkeinen <tomi.valkeinen@nokia.com>
3Date: Thu, 23 Apr 2009 10:46:53 +0300
4Subject: [PATCH] DSS2: disable LCD & DIGIT before resetting DSS
5
6This seems to fix the synclost problem that we get, if the bootloader
7starts the DSS and the kernel resets it.
8---
9 drivers/video/omap2/dss/dss.c | 8 +++++---
10 1 files changed, 5 insertions(+), 3 deletions(-)
11
12diff --git a/drivers/video/omap2/dss/dss.c b/drivers/video/omap2/dss/dss.c
13index adc1f34..aab9758 100644
14--- a/drivers/video/omap2/dss/dss.c
15+++ b/drivers/video/omap2/dss/dss.c
16@@ -285,6 +285,11 @@ int dss_init(bool skip_init)
17 }
18
19 if (!skip_init) {
20+ /* disable LCD and DIGIT output. This seems to fix the synclost
21+ * problem that we get, if the bootloader starts the DSS and
22+ * the kernel resets it */
23+ omap_writel(omap_readl(0x48050440) & ~0x3, 0x48050440);
24+
25 /* We need to wait here a bit, otherwise we sometimes start to
26 * get synclost errors, and after that only power cycle will
27 * restore DSS functionality. I have no idea why this happens.
28@@ -294,10 +299,7 @@ int dss_init(bool skip_init)
29 msleep(50);
30
31 _omap_dss_reset();
32-
33 }
34- else
35- printk("DSS SKIP RESET\n");
36
37 /* autoidle */
38 REG_FLD_MOD(DSS_SYSCONFIG, 1, 0, 0);
39--
401.5.6.5
41