summaryrefslogtreecommitdiff
path: root/drivers/video/omap2/dss/dsi.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/video/omap2/dss/dsi.c')
-rw-r--r--drivers/video/omap2/dss/dsi.c26
1 files changed, 15 insertions, 11 deletions
diff --git a/drivers/video/omap2/dss/dsi.c b/drivers/video/omap2/dss/dsi.c
index a73dedc3310..749aa38605a 100644
--- a/drivers/video/omap2/dss/dsi.c
+++ b/drivers/video/omap2/dss/dsi.c
@@ -4272,10 +4272,6 @@ static void dsi_update_screen_dispc(struct platform_device *dsidev)
dsi_perf_mark_start(dsidev);
- r = schedule_delayed_work(&dsi->framedone_timeout_work,
- msecs_to_jiffies(250));
- BUG_ON(r == 0);
-
dss_mgr_set_timings(mgr, &dsi->timings);
dss_mgr_start_update(mgr);
@@ -4291,6 +4287,11 @@ static void dsi_update_screen_dispc(struct platform_device *dsidev)
mod_timer(&dsi->te_timer, jiffies + msecs_to_jiffies(250));
#endif
}
+ /* Start timer at bottom to avoid dispc update start delayed sometimes
+ */
+ r = schedule_delayed_work(&dsi->framedone_timeout_work,
+ msecs_to_jiffies(250));
+ BUG_ON(r == 0);
}
#ifdef DSI_CATCH_MISSING_TE
@@ -4593,6 +4594,9 @@ int omapdss_dsi_display_enable(struct omap_dss_device *dssdev)
dsi_enable_pll_clock(dsidev, 1);
+ dsi_vc_enable(dsidev, 0, 0);
+ dsi_vc_enable(dsidev, 1, 0);
+
_dsi_initialize_irq(dsidev);
r = dsi_display_init_dsi(dsidev);
@@ -5521,13 +5525,6 @@ static int omap_dsihw_probe(struct platform_device *dsidev)
return -ENODEV;
}
- r = devm_request_irq(&dsidev->dev, dsi->irq, omap_dsi_irq_handler,
- IRQF_SHARED, dev_name(&dsidev->dev), dsi->pdev);
- if (r < 0) {
- DSSERR("request_irq failed\n");
- return r;
- }
-
/* DSI VCs initialization */
for (i = 0; i < ARRAY_SIZE(dsi->vc); i++) {
dsi->vc[i].source = DSI_VC_SOURCE_L4;
@@ -5547,6 +5544,13 @@ static int omap_dsihw_probe(struct platform_device *dsidev)
if (r)
goto err_runtime_get;
+ r = devm_request_irq(&dsidev->dev, dsi->irq, omap_dsi_irq_handler,
+ IRQF_SHARED, dev_name(&dsidev->dev), dsi->pdev);
+ if (r < 0) {
+ DSSERR("request_irq failed\n");
+ goto err_runtime_get;
+ }
+
rev = dsi_read_reg(dsidev, DSI_REVISION);
dev_dbg(&dsidev->dev, "OMAP DSI rev %d.%d\n",
FLD_GET(rev, 7, 4), FLD_GET(rev, 3, 0));