aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video
diff options
context:
space:
mode:
authorTomi Valkeinen <tomi.valkeinen@ti.com>2011-05-17 09:10:59 -0400
committerTomi Valkeinen <tomi.valkeinen@ti.com>2011-07-25 03:08:14 -0400
commitcb5930bdb57393a6ab9dc0c96fe5f03dcfb5bf43 (patch)
tree1d371a5cf7d8f28c8a07af392b098e006acc6315 /drivers/video
parentb98482ed73810c4a970dee3402b35241d3ce4b7e (diff)
OMAP: DSS2: Fix init and unit sequence
The initialization order of the DSS modules is important when pm_runtime support is implemented. Currently RFBI is initialized before DISPC, which will cause problems with pm_runtime as RFBI uses DISPC. The same goes for uninitialization order, and dss_uninit needs to be called last, and dispc_uninit just before that. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/video')
-rw-r--r--drivers/video/omap2/dss/core.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/drivers/video/omap2/dss/core.c b/drivers/video/omap2/dss/core.c
index 3da426719dd6..3380a9196fdb 100644
--- a/drivers/video/omap2/dss/core.c
+++ b/drivers/video/omap2/dss/core.c
@@ -185,6 +185,11 @@ static int omap_dss_probe(struct platform_device *pdev)
185 185
186 /* keep clocks enabled to prevent context saves/restores during init */ 186 /* keep clocks enabled to prevent context saves/restores during init */
187 dss_clk_enable(DSS_CLK_ICK | DSS_CLK_FCK); 187 dss_clk_enable(DSS_CLK_ICK | DSS_CLK_FCK);
188 r = dispc_init_platform_driver();
189 if (r) {
190 DSSERR("Failed to initialize dispc platform driver\n");
191 goto err_dispc;
192 }
188 193
189 r = rfbi_init_platform_driver(); 194 r = rfbi_init_platform_driver();
190 if (r) { 195 if (r) {
@@ -192,12 +197,6 @@ static int omap_dss_probe(struct platform_device *pdev)
192 goto err_rfbi; 197 goto err_rfbi;
193 } 198 }
194 199
195 r = dispc_init_platform_driver();
196 if (r) {
197 DSSERR("Failed to initialize dispc platform driver\n");
198 goto err_dispc;
199 }
200
201 r = venc_init_platform_driver(); 200 r = venc_init_platform_driver();
202 if (r) { 201 if (r) {
203 DSSERR("Failed to initialize venc platform driver\n"); 202 DSSERR("Failed to initialize venc platform driver\n");
@@ -268,11 +267,11 @@ static int omap_dss_remove(struct platform_device *pdev)
268 267
269 dss_uninitialize_debugfs(); 268 dss_uninitialize_debugfs();
270 269
270 hdmi_uninit_platform_driver();
271 dsi_uninit_platform_driver();
271 venc_uninit_platform_driver(); 272 venc_uninit_platform_driver();
272 dispc_uninit_platform_driver();
273 rfbi_uninit_platform_driver(); 273 rfbi_uninit_platform_driver();
274 dsi_uninit_platform_driver(); 274 dispc_uninit_platform_driver();
275 hdmi_uninit_platform_driver();
276 dss_uninit_platform_driver(); 275 dss_uninit_platform_driver();
277 276
278 dss_uninit_overlays(pdev); 277 dss_uninit_overlays(pdev);