diff options
Diffstat (limited to 'drivers/video/omap2/displays/panel-taal.c')
-rw-r--r-- | drivers/video/omap2/displays/panel-taal.c | 50 |
1 files changed, 29 insertions, 21 deletions
diff --git a/drivers/video/omap2/displays/panel-taal.c b/drivers/video/omap2/displays/panel-taal.c index 4cb0449d509..fdd5d4ae437 100644 --- a/drivers/video/omap2/displays/panel-taal.c +++ b/drivers/video/omap2/displays/panel-taal.c @@ -504,18 +504,14 @@ static int taal_exit_ulps(struct omap_dss_device *dssdev) return 0; r = omapdss_dsi_display_enable(dssdev); - if (r) { - dev_err(&dssdev->dev, "failed to enable DSI\n"); - goto err1; - } + if (r) + goto err; omapdss_dsi_vc_enable_hs(dssdev, td->channel, true); r = _taal_enable_te(dssdev, true); - if (r) { - dev_err(&dssdev->dev, "failed to re-enable TE"); - goto err2; - } + if (r) + goto err; enable_irq(gpio_to_irq(panel_data->ext_te_gpio)); @@ -525,15 +521,13 @@ static int taal_exit_ulps(struct omap_dss_device *dssdev) return 0; -err2: - dev_err(&dssdev->dev, "failed to exit ULPS"); - +err: + dev_err(&dssdev->dev, "exit ULPS failed"); r = taal_panel_reset(dssdev); - if (!r) { - enable_irq(gpio_to_irq(panel_data->ext_te_gpio)); - td->ulps_enabled = false; - } -err1: + + enable_irq(gpio_to_irq(panel_data->ext_te_gpio)); + td->ulps_enabled = false; + taal_queue_ulps_work(dssdev); return r; @@ -1323,11 +1317,8 @@ static void taal_disable(struct omap_dss_device *dssdev) dsi_bus_lock(dssdev); if (dssdev->state == OMAP_DSS_DISPLAY_ACTIVE) { - int r; - - r = taal_wake_up(dssdev); - if (!r) - taal_power_off(dssdev); + taal_wake_up(dssdev); + taal_power_off(dssdev); } dsi_bus_unlock(dssdev); @@ -1906,6 +1897,20 @@ 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), @@ -1915,6 +1920,9 @@ 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, |