diff options
author | Per Persson <per.xb.persson@stericsson.com> | 2011-11-28 11:32:43 +0100 |
---|---|---|
committer | Kalle Vahlman <kalle.vahlman@movial.com> | 2011-12-08 10:21:39 +0000 |
commit | 781c36475cf44240cdeedfe7ddb4c7fd5df3dfba (patch) | |
tree | 32cd6186a423a6703519f36d78bd3a497974552d /src/edid.c | |
parent | fc05dad8780c78a831f37003e749be2b0d2c894d (diff) |
HDMIservice: Improve EDID handling
Requirement on CEA Extension header revision number match is
removed in order to accept older monitors.
HDMI support is determined by the revision number.
ST-Ericsson ID: 401287
ST-Ericsson FOSS-OUT ID: Trivial
Change-Id: I111e679b12eb240e2346bd674da768c5d1c5a526
Signed-off-by: Per Persson <per.xb.persson@stericsson.com>
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/40794
Reviewed-by: QATOOLS
Reviewed-by: Robert LIND <robert.lind@stericsson.com>
Reviewed-by: Jimmy RUBIN <jimmy.rubin@stericsson.com>
Diffstat (limited to 'src/edid.c')
-rw-r--r-- | src/edid.c | 17 |
1 files changed, 9 insertions, 8 deletions
@@ -341,7 +341,8 @@ int edid_parse0(__u8 *data, __u8 *extension, struct video_format formats[], /* Parse EDID block 1 */ int edid_parse1(__u8 *data, struct video_format formats[], int nr_formats, - int *basic_audio_support, struct edid_latency *edid_latency) + int *basic_audio_support, struct edid_latency *edid_latency, + int *hdmi) { __u8 tag; __u8 rev; @@ -366,19 +367,19 @@ int edid_parse1(__u8 *data, struct video_format formats[], int nr_formats, tag = *(data + EDID_BL1_TAG_OFFSET); rev = *(data + EDID_BL1_REVNR_OFFSET); - if ((tag != EDID_BL1_TAG_EXPECTED) || rev != EDID_BL1_REV_EXPECTED) { - LOGHDMILIB("edid bl1 tag:%02x or rev:%02x invalid", tag, rev); + if (tag != EDID_BL1_TAG_EXPECTED) { + LOGHDMILIB("edid bl1 tag:%02x or rev:%02x", tag, rev); return EDIDREAD_BL1_TAG_REV_ERR; } + if (rev >= EDID_EXTVER_3) + *hdmi = 1; + else + *hdmi = 0; /* Only DVI */ + offset = *(data + EDID_BL1_OFFSET_OFFSET); LOGHDMILIB("rev:%d offset:%d", rev, offset); - if ((rev != EDID_EXTVER_3) || (offset == 0) || - (offset == EDID_NO_DATA)) { - LOGHDMILIB("%s", "No video block"); - return EDIDREAD_NOVIDEO; - } /* Check Audio support */ if (*(data + EDID_BL1_AUDIO_SUPPORT_OFFSET) & |