summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2015-09-11 14:47:59 +0300
committerVille Syrjälä <ville.syrjala@linux.intel.com>2015-09-11 16:00:58 +0300
commita02305260eaba0da622cacc8308adbeffa467db7 (patch)
tree7527621d1695c5b3c73a5f525291b118330777d8 /tools
parentb701bb14c6fc82edfb07c2f6087b96e36dd48efe (diff)
tools/intel_bios_reader: Print the child dev handle
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/intel_bios.h8
-rw-r--r--tools/intel_bios_reader.c28
2 files changed, 36 insertions, 0 deletions
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
@@ -255,6 +255,32 @@ static const char *child_device_type(unsigned short type)
}
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;
} efp_ports[] = {
@@ -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,