diff options
Diffstat (limited to 'extras/recipes-kernel/linux/linux-omap-2.6.39/sakoman/0004-OMAP-DSS-DSI-Fix-DSI-PLL-power-bug.patch')
-rw-r--r-- | extras/recipes-kernel/linux/linux-omap-2.6.39/sakoman/0004-OMAP-DSS-DSI-Fix-DSI-PLL-power-bug.patch | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/extras/recipes-kernel/linux/linux-omap-2.6.39/sakoman/0004-OMAP-DSS-DSI-Fix-DSI-PLL-power-bug.patch b/extras/recipes-kernel/linux/linux-omap-2.6.39/sakoman/0004-OMAP-DSS-DSI-Fix-DSI-PLL-power-bug.patch new file mode 100644 index 00000000..8c2d6e6c --- /dev/null +++ b/extras/recipes-kernel/linux/linux-omap-2.6.39/sakoman/0004-OMAP-DSS-DSI-Fix-DSI-PLL-power-bug.patch | |||
@@ -0,0 +1,64 @@ | |||
1 | From 4a56fbcabd128dbd07895e5167fd131299a1391c Mon Sep 17 00:00:00 2001 | ||
2 | From: Tomi Valkeinen <tomi.valkeinen@ti.com> | ||
3 | Date: Fri, 15 Apr 2011 10:42:59 +0300 | ||
4 | Subject: [PATCH 04/32] OMAP: DSS: DSI: Fix DSI PLL power bug | ||
5 | |||
6 | OMAP3630 has a HW bug causing DSI PLL power command POWER_ON_DIV (0x3) | ||
7 | to not work properly. The bug prevents us from enabling DSI PLL power | ||
8 | only to HS divider block. | ||
9 | |||
10 | This patch adds a dss feature for the bug and converts POWER_ON_DIV | ||
11 | requests to POWER_ON_ALL (0x2). | ||
12 | |||
13 | Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> | ||
14 | --- | ||
15 | drivers/video/omap2/dss/dsi.c | 5 +++++ | ||
16 | drivers/video/omap2/dss/dss_features.c | 2 +- | ||
17 | drivers/video/omap2/dss/dss_features.h | 2 ++ | ||
18 | 3 files changed, 8 insertions(+), 1 deletions(-) | ||
19 | |||
20 | diff --git a/drivers/video/omap2/dss/dsi.c b/drivers/video/omap2/dss/dsi.c | ||
21 | index 1464ac4..cbd9ca4 100644 | ||
22 | --- a/drivers/video/omap2/dss/dsi.c | ||
23 | +++ b/drivers/video/omap2/dss/dsi.c | ||
24 | @@ -1059,6 +1059,11 @@ static int dsi_pll_power(enum dsi_pll_power_state state) | ||
25 | { | ||
26 | int t = 0; | ||
27 | |||
28 | + /* DSI-PLL power command 0x3 is not working */ | ||
29 | + if (dss_has_feature(FEAT_DSI_PLL_PWR_BUG) && | ||
30 | + state == DSI_PLL_POWER_ON_DIV) | ||
31 | + state = DSI_PLL_POWER_ON_ALL; | ||
32 | + | ||
33 | REG_FLD_MOD(DSI_CLK_CTRL, state, 31, 30); /* PLL_PWR_CMD */ | ||
34 | |||
35 | /* PLL_PWR_STATUS */ | ||
36 | diff --git a/drivers/video/omap2/dss/dss_features.c b/drivers/video/omap2/dss/dss_features.c | ||
37 | index aa16222..8c50e18 100644 | ||
38 | --- a/drivers/video/omap2/dss/dss_features.c | ||
39 | +++ b/drivers/video/omap2/dss/dss_features.c | ||
40 | @@ -271,7 +271,7 @@ static struct omap_dss_features omap3630_dss_features = { | ||
41 | FEAT_LCDENABLESIGNAL | FEAT_PCKFREEENABLE | | ||
42 | FEAT_PRE_MULT_ALPHA | FEAT_FUNCGATED | | ||
43 | FEAT_ROWREPEATENABLE | FEAT_LINEBUFFERSPLIT | | ||
44 | - FEAT_RESIZECONF, | ||
45 | + FEAT_RESIZECONF | FEAT_DSI_PLL_PWR_BUG, | ||
46 | |||
47 | .num_mgrs = 2, | ||
48 | .num_ovls = 3, | ||
49 | diff --git a/drivers/video/omap2/dss/dss_features.h b/drivers/video/omap2/dss/dss_features.h | ||
50 | index 12e9c4e..37922ce 100644 | ||
51 | --- a/drivers/video/omap2/dss/dss_features.h | ||
52 | +++ b/drivers/video/omap2/dss/dss_features.h | ||
53 | @@ -40,6 +40,8 @@ enum dss_feat_id { | ||
54 | /* Independent core clk divider */ | ||
55 | FEAT_CORE_CLK_DIV = 1 << 11, | ||
56 | FEAT_LCD_CLK_SRC = 1 << 12, | ||
57 | + /* DSI-PLL power command 0x3 is not working */ | ||
58 | + FEAT_DSI_PLL_PWR_BUG = 1 << 13, | ||
59 | }; | ||
60 | |||
61 | /* DSS register field id */ | ||
62 | -- | ||
63 | 1.6.6.1 | ||
64 | |||