aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2011-04-18 04:47:57 -0400
committerPaul Mundt <lethal@linux-sh.org>2011-04-18 04:47:57 -0400
commit9b6d7777118d3f2abc39591481ea5b9b5e76d6ba (patch)
tree925971758ff353e4da126b03ad78113f61fb1b6b /drivers/video
parentb07f3bbee12163a6b48991138a37b87a1126462a (diff)
parent0fd08060f1bb9d7d0d712f39257dc3574a632271 (diff)
Merge branch 'for-paul-39-rc' of git://gitorious.org/linux-omap-dss2/linux into fbdev-fixes-for-linus
Diffstat (limited to 'drivers/video')
-rw-r--r--drivers/video/omap2/displays/Kconfig9
-rw-r--r--drivers/video/omap2/dss/dsi.c14
-rw-r--r--drivers/video/omap2/dss/dss.c10
-rw-r--r--drivers/video/omap2/dss/dss_features.c2
-rw-r--r--drivers/video/omap2/dss/dss_features.h2
5 files changed, 25 insertions, 12 deletions
diff --git a/drivers/video/omap2/displays/Kconfig b/drivers/video/omap2/displays/Kconfig
index d18ad6b2372a..609a28073178 100644
--- a/drivers/video/omap2/displays/Kconfig
+++ b/drivers/video/omap2/displays/Kconfig
@@ -3,6 +3,7 @@ menu "OMAP2/3 Display Device Drivers"
3 3
4config PANEL_GENERIC_DPI 4config PANEL_GENERIC_DPI
5 tristate "Generic DPI Panel" 5 tristate "Generic DPI Panel"
6 depends on OMAP2_DSS_DPI
6 help 7 help
7 Generic DPI panel driver. 8 Generic DPI panel driver.
8 Supports DVI output for Beagle and OMAP3 SDP. 9 Supports DVI output for Beagle and OMAP3 SDP.
@@ -11,20 +12,20 @@ config PANEL_GENERIC_DPI
11 12
12config PANEL_LGPHILIPS_LB035Q02 13config PANEL_LGPHILIPS_LB035Q02
13 tristate "LG.Philips LB035Q02 LCD Panel" 14 tristate "LG.Philips LB035Q02 LCD Panel"
14 depends on OMAP2_DSS && SPI 15 depends on OMAP2_DSS_DPI && SPI
15 help 16 help
16 LCD Panel used on the Gumstix Overo Palo35 17 LCD Panel used on the Gumstix Overo Palo35
17 18
18config PANEL_SHARP_LS037V7DW01 19config PANEL_SHARP_LS037V7DW01
19 tristate "Sharp LS037V7DW01 LCD Panel" 20 tristate "Sharp LS037V7DW01 LCD Panel"
20 depends on OMAP2_DSS 21 depends on OMAP2_DSS_DPI
21 select BACKLIGHT_CLASS_DEVICE 22 select BACKLIGHT_CLASS_DEVICE
22 help 23 help
23 LCD Panel used in TI's SDP3430 and EVM boards 24 LCD Panel used in TI's SDP3430 and EVM boards
24 25
25config PANEL_NEC_NL8048HL11_01B 26config PANEL_NEC_NL8048HL11_01B
26 tristate "NEC NL8048HL11-01B Panel" 27 tristate "NEC NL8048HL11-01B Panel"
27 depends on OMAP2_DSS 28 depends on OMAP2_DSS_DPI
28 help 29 help
29 This NEC NL8048HL11-01B panel is TFT LCD 30 This NEC NL8048HL11-01B panel is TFT LCD
30 used in the Zoom2/3/3630 sdp boards. 31 used in the Zoom2/3/3630 sdp boards.
@@ -37,7 +38,7 @@ config PANEL_TAAL
37 38
38config PANEL_TPO_TD043MTEA1 39config PANEL_TPO_TD043MTEA1
39 tristate "TPO TD043MTEA1 LCD Panel" 40 tristate "TPO TD043MTEA1 LCD Panel"
40 depends on OMAP2_DSS && SPI 41 depends on OMAP2_DSS_DPI && SPI
41 help 42 help
42 LCD Panel used in OMAP3 Pandora 43 LCD Panel used in OMAP3 Pandora
43 44
diff --git a/drivers/video/omap2/dss/dsi.c b/drivers/video/omap2/dss/dsi.c
index 0a7f1a47f8e3..cbd9ca48d6ec 100644
--- a/drivers/video/omap2/dss/dsi.c
+++ b/drivers/video/omap2/dss/dsi.c
@@ -1059,6 +1059,11 @@ static int dsi_pll_power(enum dsi_pll_power_state state)
1059{ 1059{
1060 int t = 0; 1060 int t = 0;
1061 1061
1062 /* DSI-PLL power command 0x3 is not working */
1063 if (dss_has_feature(FEAT_DSI_PLL_PWR_BUG) &&
1064 state == DSI_PLL_POWER_ON_DIV)
1065 state = DSI_PLL_POWER_ON_ALL;
1066
1062 REG_FLD_MOD(DSI_CLK_CTRL, state, 31, 30); /* PLL_PWR_CMD */ 1067 REG_FLD_MOD(DSI_CLK_CTRL, state, 31, 30); /* PLL_PWR_CMD */
1063 1068
1064 /* PLL_PWR_STATUS */ 1069 /* PLL_PWR_STATUS */
@@ -1276,6 +1281,9 @@ int dsi_pll_set_clock_div(struct dsi_clock_info *cinfo)
1276 1281
1277 DSSDBGF(); 1282 DSSDBGF();
1278 1283
1284 dsi.current_cinfo.use_sys_clk = cinfo->use_sys_clk;
1285 dsi.current_cinfo.highfreq = cinfo->highfreq;
1286
1279 dsi.current_cinfo.fint = cinfo->fint; 1287 dsi.current_cinfo.fint = cinfo->fint;
1280 dsi.current_cinfo.clkin4ddr = cinfo->clkin4ddr; 1288 dsi.current_cinfo.clkin4ddr = cinfo->clkin4ddr;
1281 dsi.current_cinfo.dsi_pll_hsdiv_dispc_clk = 1289 dsi.current_cinfo.dsi_pll_hsdiv_dispc_clk =
@@ -1488,7 +1496,6 @@ void dsi_pll_uninit(void)
1488 1496
1489void dsi_dump_clocks(struct seq_file *s) 1497void dsi_dump_clocks(struct seq_file *s)
1490{ 1498{
1491 int clksel;
1492 struct dsi_clock_info *cinfo = &dsi.current_cinfo; 1499 struct dsi_clock_info *cinfo = &dsi.current_cinfo;
1493 enum dss_clk_source dispc_clk_src, dsi_clk_src; 1500 enum dss_clk_source dispc_clk_src, dsi_clk_src;
1494 1501
@@ -1497,13 +1504,10 @@ void dsi_dump_clocks(struct seq_file *s)
1497 1504
1498 enable_clocks(1); 1505 enable_clocks(1);
1499 1506
1500 clksel = REG_GET(DSI_PLL_CONFIGURATION2, 11, 11);
1501
1502 seq_printf(s, "- DSI PLL -\n"); 1507 seq_printf(s, "- DSI PLL -\n");
1503 1508
1504 seq_printf(s, "dsi pll source = %s\n", 1509 seq_printf(s, "dsi pll source = %s\n",
1505 clksel == 0 ? 1510 cinfo->use_sys_clk ? "dss_sys_clk" : "pclkfree");
1506 "dss_sys_clk" : "pclkfree");
1507 1511
1508 seq_printf(s, "Fint\t\t%-16luregn %u\n", cinfo->fint, cinfo->regn); 1512 seq_printf(s, "Fint\t\t%-16luregn %u\n", cinfo->fint, cinfo->regn);
1509 1513
diff --git a/drivers/video/omap2/dss/dss.c b/drivers/video/omap2/dss/dss.c
index 3f1fee63c678..c3b48a0fcf35 100644
--- a/drivers/video/omap2/dss/dss.c
+++ b/drivers/video/omap2/dss/dss.c
@@ -385,8 +385,14 @@ enum dss_clk_source dss_get_dsi_clk_source(void)
385 385
386enum dss_clk_source dss_get_lcd_clk_source(enum omap_channel channel) 386enum dss_clk_source dss_get_lcd_clk_source(enum omap_channel channel)
387{ 387{
388 int ix = channel == OMAP_DSS_CHANNEL_LCD ? 0 : 1; 388 if (dss_has_feature(FEAT_LCD_CLK_SRC)) {
389 return dss.lcd_clk_source[ix]; 389 int ix = channel == OMAP_DSS_CHANNEL_LCD ? 0 : 1;
390 return dss.lcd_clk_source[ix];
391 } else {
392 /* LCD_CLK source is the same as DISPC_FCLK source for
393 * OMAP2 and OMAP3 */
394 return dss.dispc_clk_source;
395 }
390} 396}
391 397
392/* calculate clock rates using dividers in cinfo */ 398/* calculate clock rates using dividers in cinfo */
diff --git a/drivers/video/omap2/dss/dss_features.c b/drivers/video/omap2/dss/dss_features.c
index aa1622241d0d..8c50e18bc0b0 100644
--- a/drivers/video/omap2/dss/dss_features.c
+++ b/drivers/video/omap2/dss/dss_features.c
@@ -271,7 +271,7 @@ static struct omap_dss_features omap3630_dss_features = {
271 FEAT_LCDENABLESIGNAL | FEAT_PCKFREEENABLE | 271 FEAT_LCDENABLESIGNAL | FEAT_PCKFREEENABLE |
272 FEAT_PRE_MULT_ALPHA | FEAT_FUNCGATED | 272 FEAT_PRE_MULT_ALPHA | FEAT_FUNCGATED |
273 FEAT_ROWREPEATENABLE | FEAT_LINEBUFFERSPLIT | 273 FEAT_ROWREPEATENABLE | FEAT_LINEBUFFERSPLIT |
274 FEAT_RESIZECONF, 274 FEAT_RESIZECONF | FEAT_DSI_PLL_PWR_BUG,
275 275
276 .num_mgrs = 2, 276 .num_mgrs = 2,
277 .num_ovls = 3, 277 .num_ovls = 3,
diff --git a/drivers/video/omap2/dss/dss_features.h b/drivers/video/omap2/dss/dss_features.h
index 12e9c4ef0dec..37922ce6b8b1 100644
--- a/drivers/video/omap2/dss/dss_features.h
+++ b/drivers/video/omap2/dss/dss_features.h
@@ -40,6 +40,8 @@ enum dss_feat_id {
40 /* Independent core clk divider */ 40 /* Independent core clk divider */
41 FEAT_CORE_CLK_DIV = 1 << 11, 41 FEAT_CORE_CLK_DIV = 1 << 11,
42 FEAT_LCD_CLK_SRC = 1 << 12, 42 FEAT_LCD_CLK_SRC = 1 << 12,
43 /* DSI-PLL power command 0x3 is not working */
44 FEAT_DSI_PLL_PWR_BUG = 1 << 13,
43}; 45};
44 46
45/* DSS register field id */ 47/* DSS register field id */