From a02305260eaba0da622cacc8308adbeffa467db7 Mon Sep 17 00:00:00 2001 From: Ville Syrjälä Date: Fri, 11 Sep 2015 14:47:59 +0300 Subject: tools/intel_bios_reader: Print the child dev handle MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Ville Syrjälä --- tools/intel_bios.h | 8 ++++++++ tools/intel_bios_reader.c | 28 ++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) (limited to 'tools') diff --git a/tools/intel_bios.h b/tools/intel_bios.h index 64e723d4..cd6abf94 100644 --- a/tools/intel_bios.h +++ b/tools/intel_bios.h @@ -134,6 +134,14 @@ struct bdb_general_features { #define GPIO_PIN_ADD_DDC 0x04 /* "ADDCARD DDC GPIO pins" */ #define GPIO_PIN_ADD_DDC_I2C 0x06 /* "ADDCARD DDC/I2C GPIO pins" */ +#define DEVICE_HANDLE_CRT 0x01 +#define DEVICE_HANDLE_EFP1 0x04 +#define DEVICE_HANDLE_EFP2 0x40 +#define DEVICE_HANDLE_EFP3 0x20 +#define DEVICE_HANDLE_EFP4 0x10 +#define DEVICE_HANDLE_LPF1 0x08 +#define DEVICE_HANDLE_LFP2 0x80 + /* Pre 915 */ #define DEVICE_TYPE_NONE 0x00 #define DEVICE_TYPE_CRT 0x01 diff --git a/tools/intel_bios_reader.c b/tools/intel_bios_reader.c index bb6139eb..19c988ba 100644 --- a/tools/intel_bios_reader.c +++ b/tools/intel_bios_reader.c @@ -254,6 +254,32 @@ static const char *child_device_type(unsigned short type) return "unknown"; } +static const struct { + unsigned char handle; + const char *name; +} child_device_handles[] = { + { DEVICE_HANDLE_CRT, "CRT" }, + { DEVICE_HANDLE_EFP1, "EFP 1 (HDMI/DVI/DP)" }, + { DEVICE_HANDLE_EFP2, "EFP 2 (HDMI/DVI/DP)" }, + { DEVICE_HANDLE_EFP3, "EFP 3 (HDMI/DVI/DP)" }, + { DEVICE_HANDLE_EFP4, "EFP 4 (HDMI/DVI/DP)" }, + { DEVICE_HANDLE_LPF1, "LFP 1 (eDP)" }, + { DEVICE_HANDLE_LFP2, "LFP 2 (eDP)" }, +}; +static const int num_child_device_handles = + sizeof(child_device_handles) / sizeof(child_device_handles[0]); + +static const char *child_device_handle(unsigned char handle) +{ + int i; + + for (i = 0; i < num_child_device_handles; i++) + if (child_device_handles[i].handle == handle) + return child_device_handles[i].name; + + return "unknown"; +} + static const struct { unsigned short type; const char *name; @@ -324,6 +350,8 @@ static void dump_child_device(struct child_device_config *child) struct efp_child_device_config *efp = (struct efp_child_device_config *)child; printf("\tEFP device info:\n"); + printf("\t\tDevice handle: 0x%04x (%s)\n", efp->handle, + child_device_handle(efp->handle)); printf("\t\tDevice type: 0x%04x (%s)\n", efp->device_type, child_device_type(efp->device_type)); printf("\t\tPort: 0x%02x (%s)\n", efp->port, -- cgit v1.2.3