diff options
Diffstat (limited to 'drivers/video/omap2/dss/dsi.c')
| -rw-r--r-- | drivers/video/omap2/dss/dsi.c | 26 | 
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)); |