All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH i-g-t 1/3] tools/intel_bios_reader: Print the child dev handle
@ 2015-09-11 13:14 ville.syrjala
  2015-09-11 13:14 ` [PATCH i-g-t 2/3] tools/intel_bios_reader: Decode the device type bits ville.syrjala
  2015-09-11 13:14 ` [PATCH i-g-t 3/3] tools/intel_bios_reader: Add MIPI device type ville.syrjala
  0 siblings, 2 replies; 3+ messages in thread
From: ville.syrjala @ 2015-09-11 13:14 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tools/intel_bios.h        |  8 ++++++++
 tools/intel_bios_reader.c | 28 ++++++++++++++++++++++++++++
 2 files changed, 36 insertions(+)

diff --git a/tools/intel_bios.h b/tools/intel_bios.h
index 64e723d..cd6abf9 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 bb6139e..19c988b 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,
-- 
2.4.6

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH i-g-t 2/3] tools/intel_bios_reader: Decode the device type bits
  2015-09-11 13:14 [PATCH i-g-t 1/3] tools/intel_bios_reader: Print the child dev handle ville.syrjala
@ 2015-09-11 13:14 ` ville.syrjala
  2015-09-11 13:14 ` [PATCH i-g-t 3/3] tools/intel_bios_reader: Add MIPI device type ville.syrjala
  1 sibling, 0 replies; 3+ messages in thread
From: ville.syrjala @ 2015-09-11 13:14 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Each bit in the device type is supposed to mean something. Decode their
meaning.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tools/intel_bios.h        | 18 ++++++++++++++++++
 tools/intel_bios_reader.c | 32 ++++++++++++++++++++++++++++++++
 2 files changed, 50 insertions(+)

diff --git a/tools/intel_bios.h b/tools/intel_bios.h
index cd6abf9..a97797f 100644
--- a/tools/intel_bios.h
+++ b/tools/intel_bios.h
@@ -142,6 +142,24 @@ struct bdb_general_features {
 #define DEVICE_HANDLE_LPF1	0x08
 #define DEVICE_HANDLE_LFP2	0x80
 
+/* device type bits */
+#define DEVICE_TYPE_CLASS_EXTENSION	15
+#define DEVICE_TYPE_POWER_MANAGEMENT	14
+#define DEVICE_TYPE_HOTPLUG_SIGNALING	13
+#define DEVICE_TYPE_INTERNAL_CONNECTOR	12
+#define DEVICE_TYPE_NOT_HDMI_OUTPUT	11
+#define DEVICE_TYPE_MIPI_OUTPUT		10
+#define DEVICE_TYPE_COMPOSITE_OUTPUT	9
+#define DEVICE_TYPE_DIAL_CHANNEL	8
+#define DEVICE_TYPE_CONTENT_PROTECTION	7
+#define DEVICE_TYPE_HIGH_SPEED_LINK	6
+#define DEVICE_TYPE_LVDS_SIGNALING	5
+#define DEVICE_TYPE_TMDS_DVI_SIGNALING	4
+#define DEVICE_TYPE_VIDEO_SIGNALING	3
+#define DEVICE_TYPE_DISPLAYPORT_OUTPUT	2
+#define DEVICE_TYPE_DIGITAL_OUTPUT	1
+#define DEVICE_TYPE_ANALOG_OUTPUT	0
+
 /* 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 19c988b..459b547 100644
--- a/tools/intel_bios_reader.c
+++ b/tools/intel_bios_reader.c
@@ -254,6 +254,37 @@ static const char *child_device_type(unsigned short type)
 	return "unknown";
 }
 
+static const char * const child_device_type_bits[] = {
+	[DEVICE_TYPE_CLASS_EXTENSION] = "Class extension",
+	[DEVICE_TYPE_POWER_MANAGEMENT] = "Power management",
+	[DEVICE_TYPE_HOTPLUG_SIGNALING] = "Hotplug signaling",
+	[DEVICE_TYPE_INTERNAL_CONNECTOR] = "Internal connector",
+	[DEVICE_TYPE_NOT_HDMI_OUTPUT] = "HDMI output", /* decoded as inverse */
+	[DEVICE_TYPE_MIPI_OUTPUT] = "MIPI output",
+	[DEVICE_TYPE_COMPOSITE_OUTPUT] = "Composite output",
+	[DEVICE_TYPE_DIAL_CHANNEL] = "Dual channel",
+	[DEVICE_TYPE_CONTENT_PROTECTION] = "Content protection",
+	[DEVICE_TYPE_HIGH_SPEED_LINK] = "High speel link",
+	[DEVICE_TYPE_LVDS_SIGNALING] = "LVDS signaling",
+	[DEVICE_TYPE_TMDS_DVI_SIGNALING] = "TMDS/DVI signaling",
+	[DEVICE_TYPE_VIDEO_SIGNALING] = "Video signaling",
+	[DEVICE_TYPE_DISPLAYPORT_OUTPUT] = "DisplayPort output",
+	[DEVICE_TYPE_DIGITAL_OUTPUT] = "Digital output",
+	[DEVICE_TYPE_ANALOG_OUTPUT] = "Analog output",
+};
+
+static void dump_child_device_type_bits(uint16_t type)
+{
+	int bit;
+
+	type ^= 1 << DEVICE_TYPE_NOT_HDMI_OUTPUT;
+
+	for (bit = 15; bit >= 0; bit--) {
+		if (type & (1 << bit))
+			printf("\t\t\t%s\n", child_device_type_bits[bit]);
+	}
+}
+
 static const struct {
 	unsigned char handle;
 	const char *name;
@@ -354,6 +385,7 @@ static void dump_child_device(struct child_device_config *child)
 		       child_device_handle(efp->handle));
 		printf("\t\tDevice type: 0x%04x (%s)\n", efp->device_type,
 		       child_device_type(efp->device_type));
+		dump_child_device_type_bits(efp->device_type);
 		printf("\t\tPort: 0x%02x (%s)\n", efp->port,
 		       efp_port(efp->port));
 		printf("\t\tDDC pin: 0x%02x\n", efp->ddc_pin);
-- 
2.4.6

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH i-g-t 3/3] tools/intel_bios_reader: Add MIPI device type
  2015-09-11 13:14 [PATCH i-g-t 1/3] tools/intel_bios_reader: Print the child dev handle ville.syrjala
  2015-09-11 13:14 ` [PATCH i-g-t 2/3] tools/intel_bios_reader: Decode the device type bits ville.syrjala
@ 2015-09-11 13:14 ` ville.syrjala
  1 sibling, 0 replies; 3+ messages in thread
From: ville.syrjala @ 2015-09-11 13:14 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Decode the MIPI [sic] device type.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tools/intel_bios.h        | 1 +
 tools/intel_bios_reader.c | 1 +
 2 files changed, 2 insertions(+)

diff --git a/tools/intel_bios.h b/tools/intel_bios.h
index a97797f..6135a2b 100644
--- a/tools/intel_bios.h
+++ b/tools/intel_bios.h
@@ -197,6 +197,7 @@ struct bdb_general_features {
 #define DEVICE_TYPE_HDMI_DVI		0x60d2
 #define DEVICE_TYPE_DVI			0x68d2
 #define DEVICE_TYPE_eDP			0x78C6
+#define DEVICE_TYPE_MIPI		0x7cc2
 
 #define DEVICE_CFG_NONE		0x00
 #define DEVICE_CFG_12BIT_DVOB	0x01
diff --git a/tools/intel_bios_reader.c b/tools/intel_bios_reader.c
index 459b547..e308eaa 100644
--- a/tools/intel_bios_reader.c
+++ b/tools/intel_bios_reader.c
@@ -239,6 +239,7 @@ static const struct {
 	{ DEVICE_TYPE_HDMI_DVI, "HDMI/DVI" },
 	{ DEVICE_TYPE_DVI, "DVI" },
 	{ DEVICE_TYPE_eDP, "eDP" },
+	{ DEVICE_TYPE_MIPI, "MIPI" },
 };
 static const int num_child_device_types =
 	sizeof(child_device_types) / sizeof(child_device_types[0]);
-- 
2.4.6

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-09-11 13:14 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-09-11 13:14 [PATCH i-g-t 1/3] tools/intel_bios_reader: Print the child dev handle ville.syrjala
2015-09-11 13:14 ` [PATCH i-g-t 2/3] tools/intel_bios_reader: Decode the device type bits ville.syrjala
2015-09-11 13:14 ` [PATCH i-g-t 3/3] tools/intel_bios_reader: Add MIPI device type ville.syrjala

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.