diff options
author | Tomi Valkeinen <tomi.valkeinen@nokia.com> | 2010-03-02 12:13:55 +0200 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@nokia.com> | 2010-03-02 17:24:18 +0200 |
commit | 21df20fcfb4e88f4cd4991e9e67de549e6480adf (patch) | |
tree | e75764923d09f257dae21c913dcdfe10431e20db /drivers | |
parent | 1189b7ff6485ebf1039440c34150360fab7cfb01 (diff) | |
download | lwn-21df20fcfb4e88f4cd4991e9e67de549e6480adf.tar.gz lwn-21df20fcfb4e88f4cd4991e9e67de549e6480adf.zip |
OMAP: DSS2: Taal: Fix TE when resuming
TE was not initialized properly on power on, which broke TE when resuming
from suspend.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/video/omap2/displays/panel-taal.c | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/drivers/video/omap2/displays/panel-taal.c b/drivers/video/omap2/displays/panel-taal.c index 2b5777621779..fcd6a61a91eb 100644 --- a/drivers/video/omap2/displays/panel-taal.c +++ b/drivers/video/omap2/displays/panel-taal.c @@ -63,6 +63,8 @@ /* #define TAAL_USE_ESD_CHECK */ #define TAAL_ESD_CHECK_PERIOD msecs_to_jiffies(5000) +static int _taal_enable_te(struct omap_dss_device *dssdev, bool enable); + struct taal_data { struct backlight_device *bldev; @@ -666,6 +668,10 @@ static int taal_power_on(struct omap_dss_device *dssdev) taal_dcs_write_0(DCS_DISPLAY_ON); + r = _taal_enable_te(dssdev, td->te_enabled); + if (r) + goto err; + #ifdef TAAL_USE_ESD_CHECK queue_delayed_work(td->esd_wq, &td->esd_work, TAAL_ESD_CHECK_PERIOD); #endif @@ -828,13 +834,11 @@ static int taal_sync(struct omap_dss_device *dssdev) return 0; } -static int taal_enable_te(struct omap_dss_device *dssdev, bool enable) +static int _taal_enable_te(struct omap_dss_device *dssdev, bool enable) { struct taal_data *td = dev_get_drvdata(&dssdev->dev); int r; - dsi_bus_lock(); - td->te_enabled = enable; if (enable) @@ -848,6 +852,17 @@ static int taal_enable_te(struct omap_dss_device *dssdev, bool enable) * Panel bug? Needs more studying */ msleep(100); + return r; +} + +static int taal_enable_te(struct omap_dss_device *dssdev, bool enable) +{ + int r; + + dsi_bus_lock(); + + r = _taal_enable_te(dssdev, enable); + dsi_bus_unlock(); return r; |