]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - android-sdk/kernel-video.git/commitdiff
HDMI: Add reading edid and mode db creation
authorDandawate Saket <dsaket@ti.com>
Mon, 29 Apr 2013 08:48:47 +0000 (01:48 -0700)
committerPraneeth Bajjuri <praneeth@ti.com>
Fri, 12 Jul 2013 23:58:15 +0000 (18:58 -0500)
Add edid read and mode db databse creation to be used
by hwc.

Change-Id: I5bd4fcd5b0e5990aabab18f44f3a3bb54adedb16
Signed-off-by: Dandawate Saket <dsaket@ti.com>
Conflicts:
drivers/video/omap2/dss/hdmi.c

drivers/video/omap2/dss/dss.h
drivers/video/omap2/dss/hdmi.c

index 2dcb55b3c7d4ed312a8549456063c78480edd893..20ae9604a94347321829759033ef0abff0e5e296 100755 (executable)
@@ -506,6 +506,7 @@ int omapdss_hdmi_display_set_mode(struct omap_dss_device *dssdev,
 u8 *hdmi_read_valid_edid(void);
 void omapdss_hdmi_clear_edid(void);
 ssize_t omapdss_get_edid(char *buf);
+void hdmi_get_monspecs(struct omap_dss_device *dssdev);
 int hdmi_panel_init(void);
 void hdmi_panel_exit(void);
 #if defined(CONFIG_OMAP4_DSS_HDMI_AUDIO) || \
index a731144d7d4503f23e413b08cc2745577db1d50a..475240ee2c7804716d3174af31080a114e423227 100755 (executable)
@@ -1261,10 +1261,13 @@ int omapdss_hdmi_read_edid(u8 *buf, int len)
        r = hdmi_runtime_get();
        BUG_ON(r);
 
-
        hdmi_set_ls_state(LS_ENABLED);
 
-       r = hdmi.ip_data.ops->read_edid(&hdmi.ip_data, buf, len);
+       //r = hdmi.ip_data.ops->read_edid(&hdmi.ip_data, buf, len);
+       if(hdmi_read_valid_edid())
+               omapdss_get_edid(buf);
+       else
+               r = -1;
 
        /* restore level shifter state */
        hdmi_set_ls_state(restore_state);
@@ -1272,6 +1275,7 @@ int omapdss_hdmi_read_edid(u8 *buf, int len)
        hdmi_runtime_put();
        mutex_unlock(&hdmi.lock);
 
+
        return r;
 }
 
@@ -1315,6 +1319,12 @@ int omapdss_hdmi_display_enable(struct omap_dss_device *dssdev)
                goto err0;
        }
 
+       /* Update the mode db database */
+       if (hdmi.edid_set) {
+               /* get monspecs from edid */
+               hdmi_get_monspecs(dssdev);
+       }
+
        r = hdmi_power_on_full(dssdev);
        if (r) {
                DSSERR("failed to power on device\n");