OMAP: DSS2: Taal: Fix TE when resuming
authorTomi Valkeinen <tomi.valkeinen@nokia.com>
Tue, 2 Mar 2010 10:13:55 +0000 (12:13 +0200)
committerTomi Valkeinen <tomi.valkeinen@nokia.com>
Tue, 2 Mar 2010 15:24:18 +0000 (17:24 +0200)
TE was not initialized properly on power on, which broke TE when resuming
from suspend.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
drivers/video/omap2/displays/panel-taal.c

index 2b57776217796b3b9fa4e326b0316eea725e60fb..fcd6a61a91ebf73d519385c9c1c3a2247a30da62 100644 (file)
@@ -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;