summaryrefslogtreecommitdiffstats
path: root/drivers/video/omap2/dss/dsi.c
diff options
context:
space:
mode:
authorArchit Taneja2012-06-29 11:07:03 +0200
committerArchit Taneja2012-06-29 12:57:42 +0200
commitf476ae9dab3234532d41d36beb4ba7be838fa786 (patch)
treeaee514d49e1ccbc1aabd1cf74f4ff603c35d00b2 /drivers/video/omap2/dss/dsi.c
parentOMAPDSS: SDI: Configure dss_lcd_mgr_config struct with lcd manager parameters (diff)
downloadkernel-qcow2-linux-f476ae9dab3234532d41d36beb4ba7be838fa786.tar.gz
kernel-qcow2-linux-f476ae9dab3234532d41d36beb4ba7be838fa786.tar.xz
kernel-qcow2-linux-f476ae9dab3234532d41d36beb4ba7be838fa786.zip
OMAPDSS: APPLY: Remove DISPC writes to manager's lcd parameters in interface drivers
Replace the DISPC fuctions used to configure LCD channel related manager parameters with dss_mgr_set_lcd_config() in APPLY. This function ensures that the DISPC registers are written at the right time by using the shadow register programming model. The LCD manager configurations is stored as a private data of manager in APPLY. It is treated as an extra info as it's the panel drivers which trigger this apply via interface drivers, and not a DSS2 user like omapfb or omapdrm. Storing LCD manager related properties in APPLY also prevents the need to refer to the panel connected to the manager for information. This helps in making the DSS driver less dependent on panel. A helper function is added to check whether the manager is LCD or TV. The direct DISPC register writes are removed from the interface drivers. Signed-off-by: Archit Taneja <archit@ti.com>
Diffstat (limited to 'drivers/video/omap2/dss/dsi.c')
-rw-r--r--drivers/video/omap2/dss/dsi.c17
1 files changed, 1 insertions, 16 deletions
diff --git a/drivers/video/omap2/dss/dsi.c b/drivers/video/omap2/dss/dsi.c
index f51df30d8c15..b07e8864f82f 100644
--- a/drivers/video/omap2/dss/dsi.c
+++ b/drivers/video/omap2/dss/dsi.c
@@ -4425,22 +4425,7 @@ static int dsi_display_init_dispc(struct omap_dss_device *dssdev)
dsi_get_pixel_size(dssdev->panel.dsi_pix_fmt);
dsi->mgr_config.lcden_sig_polarity = 0;
- dispc_mgr_set_io_pad_mode(dsi->mgr_config.io_pad_mode);
-
- dispc_mgr_enable_stallmode(dssdev->manager->id,
- dsi->mgr_config.stallmode);
- dispc_mgr_enable_fifohandcheck(dssdev->manager->id,
- dsi->mgr_config.fifohandcheck);
-
- dispc_mgr_set_clock_div(dssdev->manager->id,
- &dsi->mgr_config.clock_info);
-
- dispc_mgr_set_tft_data_lines(dssdev->manager->id,
- dsi->mgr_config.video_port_width);
-
- dispc_lcd_enable_signal_polarity(dsi->mgr_config.lcden_sig_polarity);
-
- dispc_mgr_set_lcd_type_tft(dssdev->manager->id);
+ dss_mgr_set_lcd_config(dssdev->manager, &dsi->mgr_config);
return 0;
err1: