From dbe81612adba70d02831ffae57dd406fa08785b8 Mon Sep 17 00:00:00 2001 From: Arthur Heymans Date: Sat, 29 Apr 2017 14:00:47 +0200 Subject: [PATCH] lib/edid: Save the display ASCII string Change-Id: Ic31af53dcb9947e2264c809ee8f80ea4f89f347d Signed-off-by: Arthur Heymans Reviewed-on: https://review.coreboot.org/19499 Tested-by: build bot (Jenkins) Reviewed-by: Nico Huber --- src/include/edid.h | 3 +++ src/lib/edid.c | 6 ++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/include/edid.h b/src/include/edid.h index 100dbe9ba3..1eb8c4d306 100644 --- a/src/include/edid.h +++ b/src/include/edid.h @@ -53,6 +53,8 @@ struct edid_mode { * unsigned int. We can move more into into this struct as needed. */ +#define EDID_ASCII_STRING_LENGTH 13 + struct edid { /* These next three things used to all be called bpp. * Merriment ensued. The identifier @@ -89,6 +91,7 @@ struct edid { u32 bytes_per_line; int hdmi_monitor_detected; + char ascii_string[EDID_ASCII_STRING_LENGTH + 1]; }; enum edid_status { diff --git a/src/lib/edid.c b/src/lib/edid.c index 7b7098a0e8..405b3fdbc1 100644 --- a/src/lib/edid.c +++ b/src/lib/edid.c @@ -470,9 +470,11 @@ detailed_block(struct edid *result_edid, unsigned char *x, int in_extension, * slots, seems to be specified by SPWG: * http://www.spwg.org/ */ + strcpy(result_edid->ascii_string, extract_string(x + 5, + &c->has_valid_string_termination, + EDID_ASCII_STRING_LENGTH)); printk(BIOS_SPEW, "ASCII string: %s\n", - extract_string(x + 5, - &c->has_valid_string_termination, 13)); + result_edid->ascii_string); return 1; case 0xFF: printk(BIOS_SPEW, "Serial number: %s\n",