From 85810cce503403cb67596717b4f4d1c2a180f214 Mon Sep 17 00:00:00 2001 From: Yakir Yang Date: Tue, 27 Oct 2015 16:17:13 +0800 Subject: [PATCH] edid: add hdmi_monitor_detected in data struct edid HDMI driver need to know whether the monitor is DVI or HDMI interface, so this commit just introduce a new number 'hdmi_monitor_detected' to struct edid. There were four bits to indicate the monitor interfaces, it's better to take use of that. But those bits only existed in EDID 1.4 version, but didn't persented in the previous EDID version, so I decided to detect the hdmi cea block. BRANCH=none BUG=chrome-os-partner:43789 TEST=When mickey connect with HDMI monitor, see 'hdmi_monitor_detected' is 'true'. When mickey connect with DVI monitor, see 'hdmi_monitor_detected' is 'false'. Change-Id: I1a4f1410e1cce1474ffae858db161a18578cac3a Signed-off-by: Patrick Georgi Original-Commit-Id: 409f041805d9fdff2d49faa1a3a262cf4dc609c2 Original-Change-Id: Ife770898b0f2b4f58b8259711101a0cab4a5e4ac Original-Signed-off-by: Yakir Yang Original-Reviewed-on: https://chromium-review.googlesource.com/309055 Original-Tested-by: David Hendricks Original-Reviewed-by: David Hendricks Reviewed-on: http://review.coreboot.org/12345 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer --- src/include/edid.h | 2 ++ src/lib/edid.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/include/edid.h b/src/include/edid.h index 43e6883796..d3cab17f49 100644 --- a/src/include/edid.h +++ b/src/include/edid.h @@ -87,6 +87,8 @@ struct edid { u32 x_resolution; u32 y_resolution; u32 bytes_per_line; + + int hdmi_monitor_detected; }; /* Defined in src/lib/edid.c */ diff --git a/src/lib/edid.c b/src/lib/edid.c index d0056788a3..0f5643d3cc 100644 --- a/src/lib/edid.c +++ b/src/lib/edid.c @@ -657,6 +657,8 @@ cea_hdmi_block(struct edid *out, unsigned char *x) { int length = x[0] & 0x1f; + out->hdmi_monitor_detected = 1; + printk(BIOS_SPEW, " (HDMI)\n"); printk(BIOS_SPEW, " Source physical address %d.%d.%d.%d\n",