diff options
Diffstat (limited to 'drivers/video/omap2/displays/panel-taal.c')
| -rw-r--r-- | drivers/video/omap2/displays/panel-taal.c | 55 | 
1 files changed, 22 insertions, 33 deletions
| diff --git a/drivers/video/omap2/displays/panel-taal.c b/drivers/video/omap2/displays/panel-taal.c index fdd5d4ae437d..4e888ac09b3f 100644 --- a/drivers/video/omap2/displays/panel-taal.c +++ b/drivers/video/omap2/displays/panel-taal.c @@ -504,14 +504,18 @@ static int taal_exit_ulps(struct omap_dss_device *dssdev)  		return 0;  	r = omapdss_dsi_display_enable(dssdev); -	if (r) -		goto err; +	if (r) { +		dev_err(&dssdev->dev, "failed to enable DSI\n"); +		goto err1; +	}  	omapdss_dsi_vc_enable_hs(dssdev, td->channel, true);  	r = _taal_enable_te(dssdev, true); -	if (r) -		goto err; +	if (r) { +		dev_err(&dssdev->dev, "failed to re-enable TE"); +		goto err2; +	}  	enable_irq(gpio_to_irq(panel_data->ext_te_gpio)); @@ -521,13 +525,15 @@ static int taal_exit_ulps(struct omap_dss_device *dssdev)  	return 0; -err: -	dev_err(&dssdev->dev, "exit ULPS failed"); -	r = taal_panel_reset(dssdev); - -	enable_irq(gpio_to_irq(panel_data->ext_te_gpio)); -	td->ulps_enabled = false; +err2: +	dev_err(&dssdev->dev, "failed to exit ULPS"); +	r = taal_panel_reset(dssdev); +	if (!r) { +		enable_irq(gpio_to_irq(panel_data->ext_te_gpio)); +		td->ulps_enabled = false; +	} +err1:  	taal_queue_ulps_work(dssdev);  	return r; @@ -1241,11 +1247,8 @@ static void taal_power_off(struct omap_dss_device *dssdev)  	int r;  	r = taal_dcs_write_0(td, DCS_DISPLAY_OFF); -	if (!r) { +	if (!r)  		r = taal_sleep_in(td); -		/* HACK: wait a bit so that the message goes through */ -		msleep(10); -	}  	if (r) {  		dev_err(&dssdev->dev, @@ -1317,8 +1320,11 @@ static void taal_disable(struct omap_dss_device *dssdev)  	dsi_bus_lock(dssdev);  	if (dssdev->state == OMAP_DSS_DISPLAY_ACTIVE) { -		taal_wake_up(dssdev); -		taal_power_off(dssdev); +		int r; + +		r = taal_wake_up(dssdev); +		if (!r) +			taal_power_off(dssdev);  	}  	dsi_bus_unlock(dssdev); @@ -1897,20 +1903,6 @@ err:  	mutex_unlock(&td->lock);  } -static int taal_set_update_mode(struct omap_dss_device *dssdev, -		enum omap_dss_update_mode mode) -{ -	if (mode != OMAP_DSS_UPDATE_MANUAL) -		return -EINVAL; -	return 0; -} - -static enum omap_dss_update_mode taal_get_update_mode( -		struct omap_dss_device *dssdev) -{ -	return OMAP_DSS_UPDATE_MANUAL; -} -  static struct omap_dss_driver taal_driver = {  	.probe		= taal_probe,  	.remove		= __exit_p(taal_remove), @@ -1920,9 +1912,6 @@ static struct omap_dss_driver taal_driver = {  	.suspend	= taal_suspend,  	.resume		= taal_resume, -	.set_update_mode = taal_set_update_mode, -	.get_update_mode = taal_get_update_mode, -  	.update		= taal_update,  	.sync		= taal_sync, | 
