diff options
author | Erik Gilling <konkers@android.com> | 2011-02-06 19:32:17 -0800 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-11-30 21:36:57 -0800 |
commit | cb5acd891d88529ccd75191577df4728d9081217 (patch) | |
tree | ce2096d51047ce6c146c176d12739482f944705f /drivers/video/fbmon.c | |
parent | 1321ef14671f996a7bd893cb2f3ffa4cf36b5519 (diff) |
video: fbmon: add HDMI dectetion to fbmod edid parsing
Looks for ieee registration numver 0x000c03 as per HDMI spec.
Change-Id: I6875b24c66e8754510edabcb4f9ba682a50d6ac1
Signed-off-by: Erik Gilling <konkers@android.com>
Diffstat (limited to 'drivers/video/fbmon.c')
-rw-r--r-- | drivers/video/fbmon.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/video/fbmon.c b/drivers/video/fbmon.c index 4f57485f8c54..c648562b8bc4 100644 --- a/drivers/video/fbmon.c +++ b/drivers/video/fbmon.c @@ -1001,13 +1001,22 @@ void fb_edid_add_monspecs(unsigned char *edid, struct fb_monspecs *specs) while (pos < edid[2]) { u8 len = edid[pos] & 0x1f, type = (edid[pos] >> 5) & 7; pr_debug("Data block %u of %u bytes\n", type, len); - if (type == 2) + if (type == 2) { for (i = pos; i < pos + len; i++) { u8 idx = edid[pos + i] & 0x7f; svd[svd_n++] = idx; pr_debug("N%sative mode #%d\n", edid[pos + i] & 0x80 ? "" : "on-n", idx); } + } else if (type == 0x3) { + if (len >= 3) { + u32 ieee_reg = edid[pos] | + (edid[pos + 1] << 8) | + (edid[pos + 2] << 16); + if (ieee_reg == 0x000c03) + specs->misc |= FB_MISC_HDMI; + } + } pos += len + 1; } |