aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/omap2/displays
diff options
context:
space:
mode:
authorsrinivas pulukuru <srinivas.pulukuru@ti.com>2011-11-14 12:08:05 -0600
committerZiyann <jaraidaniel@gmail.com>2014-10-03 01:17:56 +0200
commit88f260ff72c1484927ae238738387dbcd1081b45 (patch)
treed63dbf7073ffcea8c0d4d9c81a953b125649db04 /drivers/video/omap2/displays
parent25c24b6bc1822475f1778bab08c226c14fd1a1d1 (diff)
downloadkernel_samsung_tuna-88f260ff72c1484927ae238738387dbcd1081b45.zip
kernel_samsung_tuna-88f260ff72c1484927ae238738387dbcd1081b45.tar.gz
kernel_samsung_tuna-88f260ff72c1484927ae238738387dbcd1081b45.tar.bz2
OMAP4: HDMI: Add suspend handler for LCD panel
Add a suspend handler for LCD panel. HDMI suspend/ resume path is broken due to lack of a suspend handler for LCD panel. When a HPD signal is received during resume it sends a device switch setting to user space causing set_mode call from user space for reconfiguring the HDMI panel. this enables the LCD panel but when the system goes to suspend again it fails as the LCD doesn't have a suspend handler. LCD is currently being disabled / enabled from DSSCOMP as part of Early suspend/Late Resume But if the LCD is enabled after early suspend is completed there is no way to disable it. This patch will fix this issue. Remove the device switch setting for HDMI panel as this wiil cause the user space to wake up for handling the switch setting and result in the suspend path being broken. Change-Id: Ia6c003d096fdce96935158fb17e9e079e0b8705a Signed-off-by: Srinivas Pulukuru <srinivas.pulukuru@ti.com>
Diffstat (limited to 'drivers/video/omap2/displays')
-rw-r--r--drivers/video/omap2/displays/panel-tc358765.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/video/omap2/displays/panel-tc358765.c b/drivers/video/omap2/displays/panel-tc358765.c
index 6048369..86faab2 100644
--- a/drivers/video/omap2/displays/panel-tc358765.c
+++ b/drivers/video/omap2/displays/panel-tc358765.c
@@ -416,12 +416,21 @@ static int tc358765_enable(struct omap_dss_device *dssdev)
return r;
}
+static int tc358765_suspend(struct omap_dss_device *dssdev)
+{
+ /* Disable the panel and return 0;*/
+ tc358765_disable(dssdev);
+ return 0;
+}
+
static struct omap_dss_driver tc358765_driver = {
.probe = tc358765_probe,
.remove = tc358765_remove,
.enable = tc358765_enable,
.disable = tc358765_disable,
+ .suspend = tc358765_suspend,
+ .resume = NULL,
.get_resolution = tc358765_get_resolution,
.get_recommended_bpp = omapdss_default_get_recommended_bpp,