aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomi Valkeinen <tomi.valkeinen@nokia.com>2010-03-02 05:13:55 -0500
committerTomi Valkeinen <tomi.valkeinen@nokia.com>2010-03-02 10:24:18 -0500
commit21df20fcfb4e88f4cd4991e9e67de549e6480adf (patch)
treee75764923d09f257dae21c913dcdfe10431e20db
parent1189b7ff6485ebf1039440c34150360fab7cfb01 (diff)
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>
-rw-r--r--drivers/video/omap2/displays/panel-taal.c21
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 @@
63/* #define TAAL_USE_ESD_CHECK */ 63/* #define TAAL_USE_ESD_CHECK */
64#define TAAL_ESD_CHECK_PERIOD msecs_to_jiffies(5000) 64#define TAAL_ESD_CHECK_PERIOD msecs_to_jiffies(5000)
65 65
66static int _taal_enable_te(struct omap_dss_device *dssdev, bool enable);
67
66struct taal_data { 68struct taal_data {
67 struct backlight_device *bldev; 69 struct backlight_device *bldev;
68 70
@@ -666,6 +668,10 @@ static int taal_power_on(struct omap_dss_device *dssdev)
666 668
667 taal_dcs_write_0(DCS_DISPLAY_ON); 669 taal_dcs_write_0(DCS_DISPLAY_ON);
668 670
671 r = _taal_enable_te(dssdev, td->te_enabled);
672 if (r)
673 goto err;
674
669#ifdef TAAL_USE_ESD_CHECK 675#ifdef TAAL_USE_ESD_CHECK
670 queue_delayed_work(td->esd_wq, &td->esd_work, TAAL_ESD_CHECK_PERIOD); 676 queue_delayed_work(td->esd_wq, &td->esd_work, TAAL_ESD_CHECK_PERIOD);
671#endif 677#endif
@@ -828,13 +834,11 @@ static int taal_sync(struct omap_dss_device *dssdev)
828 return 0; 834 return 0;
829} 835}
830 836
831static int taal_enable_te(struct omap_dss_device *dssdev, bool enable) 837static int _taal_enable_te(struct omap_dss_device *dssdev, bool enable)
832{ 838{
833 struct taal_data *td = dev_get_drvdata(&dssdev->dev); 839 struct taal_data *td = dev_get_drvdata(&dssdev->dev);
834 int r; 840 int r;
835 841
836 dsi_bus_lock();
837
838 td->te_enabled = enable; 842 td->te_enabled = enable;
839 843
840 if (enable) 844 if (enable)
@@ -848,6 +852,17 @@ static int taal_enable_te(struct omap_dss_device *dssdev, bool enable)
848 * Panel bug? Needs more studying */ 852 * Panel bug? Needs more studying */
849 msleep(100); 853 msleep(100);
850 854
855 return r;
856}
857
858static int taal_enable_te(struct omap_dss_device *dssdev, bool enable)
859{
860 int r;
861
862 dsi_bus_lock();
863
864 r = _taal_enable_te(dssdev, enable);
865
851 dsi_bus_unlock(); 866 dsi_bus_unlock();
852 867
853 return r; 868 return r;