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 <pgeorgi@chromium.org>
Original-Commit-Id: 409f041805d9fdff2d49faa1a3a262cf4dc609c2
Original-Change-Id: Ife770898b0f2b4f58b8259711101a0cab4a5e4ac
Original-Signed-off-by: Yakir Yang <ykk@rock-chips.com>
Original-Reviewed-on: https://chromium-review.googlesource.com/309055
Original-Tested-by: David Hendricks <dhendrix@chromium.org>
Original-Reviewed-by: David Hendricks <dhendrix@chromium.org>
Reviewed-on: http://review.coreboot.org/12345
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
Yakir Yang 2015-10-27 16:17:13 +08:00 committed by Patrick Georgi
parent dc5b10bd92
commit 85810cce50
2 changed files with 4 additions and 0 deletions

View File

@ -87,6 +87,8 @@ struct edid {
u32 x_resolution; u32 x_resolution;
u32 y_resolution; u32 y_resolution;
u32 bytes_per_line; u32 bytes_per_line;
int hdmi_monitor_detected;
}; };
/* Defined in src/lib/edid.c */ /* Defined in src/lib/edid.c */

View File

@ -657,6 +657,8 @@ cea_hdmi_block(struct edid *out, unsigned char *x)
{ {
int length = x[0] & 0x1f; int length = x[0] & 0x1f;
out->hdmi_monitor_detected = 1;
printk(BIOS_SPEW, " (HDMI)\n"); printk(BIOS_SPEW, " (HDMI)\n");
printk(BIOS_SPEW, printk(BIOS_SPEW,
" Source physical address %d.%d.%d.%d\n", " Source physical address %d.%d.%d.%d\n",