Browse Source

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>
Tomi Valkeinen 15 years ago
parent
commit
21df20fcfb
1 changed files with 18 additions and 3 deletions
  1. 18 3
      drivers/video/omap2/displays/panel-taal.c

+ 18 - 3
drivers/video/omap2/displays/panel-taal.c

@@ -63,6 +63,8 @@
 /* #define TAAL_USE_ESD_CHECK */
 /* #define TAAL_USE_ESD_CHECK */
 #define TAAL_ESD_CHECK_PERIOD	msecs_to_jiffies(5000)
 #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 taal_data {
 	struct backlight_device *bldev;
 	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);
 	taal_dcs_write_0(DCS_DISPLAY_ON);
 
 
+	r = _taal_enable_te(dssdev, td->te_enabled);
+	if (r)
+		goto err;
+
 #ifdef TAAL_USE_ESD_CHECK
 #ifdef TAAL_USE_ESD_CHECK
 	queue_delayed_work(td->esd_wq, &td->esd_work, TAAL_ESD_CHECK_PERIOD);
 	queue_delayed_work(td->esd_wq, &td->esd_work, TAAL_ESD_CHECK_PERIOD);
 #endif
 #endif
@@ -828,13 +834,11 @@ static int taal_sync(struct omap_dss_device *dssdev)
 	return 0;
 	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);
 	struct taal_data *td = dev_get_drvdata(&dssdev->dev);
 	int r;
 	int r;
 
 
-	dsi_bus_lock();
-
 	td->te_enabled = enable;
 	td->te_enabled = enable;
 
 
 	if (enable)
 	if (enable)
@@ -848,6 +852,17 @@ static int taal_enable_te(struct omap_dss_device *dssdev, bool enable)
 	 * Panel bug? Needs more studying */
 	 * Panel bug? Needs more studying */
 	msleep(100);
 	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();
 	dsi_bus_unlock();
 
 
 	return r;
 	return r;