Skip to content

Commit

Permalink
OMAP: DSS2: Taal: Fix TE when resuming
Browse files Browse the repository at this point in the history
TE was not initialized properly on power on, which broke TE when resuming
from suspend.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
  • Loading branch information
Tomi Valkeinen committed Mar 2, 2010
1 parent 1189b7f commit 21df20f
Showing 1 changed file with 18 additions and 3 deletions.
21 changes: 18 additions & 3 deletions drivers/video/omap2/displays/panel-taal.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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)
Expand All @@ -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;
Expand Down

0 comments on commit 21df20f

Please sign in to comment.