aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/omap2/dss/dss.c
diff options
context:
space:
mode:
authorArchit Taneja <archit@ti.com>2011-05-12 07:56:26 -0400
committerTomi Valkeinen <tomi.valkeinen@ti.com>2011-05-12 12:30:26 -0400
commita72b64b99918ee801a3a6abf5391e356752bcad0 (patch)
tree7e3c19fe6b77bf6187b503b5dec2b0e1e80e99d9 /drivers/video/omap2/dss/dss.c
parent41e03d15977978cdf8a5936f30ceb6088dda157a (diff)
OMAP: DSS2: Pass platform_device as an argument in dsi functions
The DSI interface is represented as a platform device, using the DSI platform driver(dsi.c). The current DSI driver design is capable of running only one instance of a DSI device. On OMAP4, there are 2 very similar DSI modules which can be represented as instances of "omapdss_dsi" platform device. Add member "module" in "dssdev.phy.dsi" that tells us which DSI module's lanes the panel is connected to. Modify dsi.c functions to take the device's platform_device struct pointer, provide functions dsi_get_dsidev_from_dssdev() and dsi_get_dsidev_from_id() take the panel's omap_dss_device and module number respectively, and return the platform_device pointer. Currently, the dsi struct is declared globally and is accessed when dsi data is needed. The new pdev argument will be used later to provide the platform device's dsi related data. Signed-off-by: Archit Taneja <archit@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/video/omap2/dss/dss.c')
-rw-r--r--drivers/video/omap2/dss/dss.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/video/omap2/dss/dss.c b/drivers/video/omap2/dss/dss.c
index 3302bd367449..3bf6e626f862 100644
--- a/drivers/video/omap2/dss/dss.c
+++ b/drivers/video/omap2/dss/dss.c
@@ -300,6 +300,7 @@ void dss_dump_regs(struct seq_file *s)
300 300
301void dss_select_dispc_clk_source(enum omap_dss_clk_source clk_src) 301void dss_select_dispc_clk_source(enum omap_dss_clk_source clk_src)
302{ 302{
303 struct platform_device *dsidev;
303 int b; 304 int b;
304 u8 start, end; 305 u8 start, end;
305 306
@@ -309,7 +310,8 @@ void dss_select_dispc_clk_source(enum omap_dss_clk_source clk_src)
309 break; 310 break;
310 case OMAP_DSS_CLK_SRC_DSI_PLL_HSDIV_DISPC: 311 case OMAP_DSS_CLK_SRC_DSI_PLL_HSDIV_DISPC:
311 b = 1; 312 b = 1;
312 dsi_wait_pll_hsdiv_dispc_active(); 313 dsidev = dsi_get_dsidev_from_id(0);
314 dsi_wait_pll_hsdiv_dispc_active(dsidev);
313 break; 315 break;
314 default: 316 default:
315 BUG(); 317 BUG();
@@ -324,6 +326,7 @@ void dss_select_dispc_clk_source(enum omap_dss_clk_source clk_src)
324 326
325void dss_select_dsi_clk_source(enum omap_dss_clk_source clk_src) 327void dss_select_dsi_clk_source(enum omap_dss_clk_source clk_src)
326{ 328{
329 struct platform_device *dsidev;
327 int b; 330 int b;
328 331
329 switch (clk_src) { 332 switch (clk_src) {
@@ -332,7 +335,8 @@ void dss_select_dsi_clk_source(enum omap_dss_clk_source clk_src)
332 break; 335 break;
333 case OMAP_DSS_CLK_SRC_DSI_PLL_HSDIV_DSI: 336 case OMAP_DSS_CLK_SRC_DSI_PLL_HSDIV_DSI:
334 b = 1; 337 b = 1;
335 dsi_wait_pll_hsdiv_dsi_active(); 338 dsidev = dsi_get_dsidev_from_id(0);
339 dsi_wait_pll_hsdiv_dsi_active(dsidev);
336 break; 340 break;
337 default: 341 default:
338 BUG(); 342 BUG();
@@ -346,6 +350,7 @@ void dss_select_dsi_clk_source(enum omap_dss_clk_source clk_src)
346void dss_select_lcd_clk_source(enum omap_channel channel, 350void dss_select_lcd_clk_source(enum omap_channel channel,
347 enum omap_dss_clk_source clk_src) 351 enum omap_dss_clk_source clk_src)
348{ 352{
353 struct platform_device *dsidev;
349 int b, ix, pos; 354 int b, ix, pos;
350 355
351 if (!dss_has_feature(FEAT_LCD_CLK_SRC)) 356 if (!dss_has_feature(FEAT_LCD_CLK_SRC))
@@ -358,7 +363,8 @@ void dss_select_lcd_clk_source(enum omap_channel channel,
358 case OMAP_DSS_CLK_SRC_DSI_PLL_HSDIV_DISPC: 363 case OMAP_DSS_CLK_SRC_DSI_PLL_HSDIV_DISPC:
359 BUG_ON(channel != OMAP_DSS_CHANNEL_LCD); 364 BUG_ON(channel != OMAP_DSS_CHANNEL_LCD);
360 b = 1; 365 b = 1;
361 dsi_wait_pll_hsdiv_dispc_active(); 366 dsidev = dsi_get_dsidev_from_id(0);
367 dsi_wait_pll_hsdiv_dispc_active(dsidev);
362 break; 368 break;
363 default: 369 default:
364 BUG(); 370 BUG();