summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMythri P K <mythripk@ti.com>2012-06-20 14:20:03 +0530
committerAndy Green <andy.green@linaro.org>2012-11-27 11:42:27 +0800
commit7db27fcc6f6141cc2bdf54923e95e8e2f22b934a (patch)
treec3044d16e605da8bc6385cdda2e0e6aafc79fa73
parentc6e7aae9556ddf967d5cddc017a5246378fc2849 (diff)
OMAPDSS: HDMI: Add support in the HDMI panel to support 3D
Add support to HDMI panel to configure it in 3D mode. Signed-off-by: Mythri P K <mythripk@ti.com>
-rw-r--r--drivers/video/omap2/dss/hdmi_panel.c28
-rw-r--r--include/video/omapdss.h3
2 files changed, 30 insertions, 1 deletions
diff --git a/drivers/video/omap2/dss/hdmi_panel.c b/drivers/video/omap2/dss/hdmi_panel.c
index 121db6269cc..f7e8319d11a 100644
--- a/drivers/video/omap2/dss/hdmi_panel.c
+++ b/drivers/video/omap2/dss/hdmi_panel.c
@@ -338,6 +338,33 @@ err:
return r;
}
+static int hdmi_panel_3d_enable(struct omap_dss_device *dssdev,
+ struct s3d_disp_info *info, int code)
+{
+ int r = 0;
+ DSSDBG("ENTER hdmi_panel_3d_enable\n");
+
+ mutex_lock(&hdmi.lock);
+
+ if (dssdev->state != OMAP_DSS_DISPLAY_DISABLED) {
+ r = -EINVAL;
+ goto err;
+ }
+
+ r = omapdss_hdmi_display_3d_enable(dssdev, info, code);
+ if (r) {
+ DSSERR("failed to power on\n");
+ goto err;
+ }
+
+ dssdev->state = OMAP_DSS_DISPLAY_ACTIVE;
+
+err:
+ mutex_unlock(&hdmi.lock);
+
+ return r;
+}
+
static void hdmi_panel_disable(struct omap_dss_device *dssdev)
{
mutex_lock(&hdmi.lock);
@@ -530,6 +557,7 @@ static struct omap_dss_driver hdmi_driver = {
.audio_stop = hdmi_panel_audio_stop,
.audio_supported = hdmi_panel_audio_supported,
.audio_config = hdmi_panel_audio_config,
+ .s3d_enable = hdmi_panel_3d_enable,
.driver = {
.name = "hdmi_panel",
.owner = THIS_MODULE,
diff --git a/include/video/omapdss.h b/include/video/omapdss.h
index 40daf178ae7..418a1077d07 100644
--- a/include/video/omapdss.h
+++ b/include/video/omapdss.h
@@ -760,7 +760,6 @@ struct omap_dss_driver {
int (*read_edid)(struct omap_dss_device *dssdev, u8 *buf, int len);
bool (*detect)(struct omap_dss_device *dssdev);
-
/*
* For display drivers that support audio. This encompasses
* HDMI and DisplayPort at the moment.
@@ -778,6 +777,8 @@ struct omap_dss_driver {
int (*audio_start)(struct omap_dss_device *dssdev);
void (*audio_stop)(struct omap_dss_device *dssdev);
+ int (*s3d_enable)(struct omap_dss_device *dssdev,
+ struct s3d_disp_info *info, int code);
};
int omap_dss_register_driver(struct omap_dss_driver *);