[PATCH i-g-t 05/27] tools/intel_vbt_decode: Decode block 4 (Mode Support List)

Ville Syrjala ville.syrjala at linux.intel.com
Fri Jun 7 13:57:36 UTC 2024


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

Decode VBT block 4 (Mode Support List). The contents are just
some kind of list of "Intel mode numbers" (whateer those are).

Example output:
BDB block 4 (28 bytes, min 2 bytes) - Mode support list:
        0000: 04 1c 00 30 32 34 36 38  3a 3c 40 42 44 46 48 4a
        0010: 4c 50 52 54 56 58 5a 5c  80 81 82 83 84 1a 00

        Intel mode numbers:
                0x30
                ...
                0x84
        Mode list length: 26

Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
---
 tools/intel_vbt_decode.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index 4281bd7e520e..845f26828c44 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -318,6 +318,8 @@ static size_t block_min_size(const struct context *context, int section_id)
 		return sizeof(struct bdb_general_definitions);
 	case BDB_DISPLAY_TOGGLE:
 		return sizeof(struct bdb_display_toggle);
+	case BDB_MODE_SUPPORT_LIST:
+		return sizeof(struct bdb_mode_support_list);
 	case BDB_PSR:
 		return sizeof(struct bdb_psr);
 	case BDB_CHILD_DEVICE_TABLE:
@@ -1265,6 +1267,20 @@ static void dump_display_toggle(struct context *context,
 		       t->list[i]);
 }
 
+static void dump_mode_support_list(struct context *context,
+				   const struct bdb_block *block)
+{
+	const struct bdb_mode_support_list *l =
+		block_data(block) + block->size - sizeof(*l);
+	const uint8_t *mode_number = block_data(block);
+
+	printf("\tIntel mode numbers:\n");
+	for (int i = 0 ; i < l->mode_list_length; i++)
+		printf("\t\t0x%02x\n", mode_number[i]);
+
+	printf("\tMode list length: %d\n", l->mode_list_length);
+}
+
 static void dump_legacy_child_devices(struct context *context,
 				      const struct bdb_block *block)
 {
@@ -2748,6 +2764,11 @@ struct dumper dumpers[] = {
 		.name = "Display toggle option block",
 		.dump = dump_display_toggle,
 	},
+	{
+		.id = BDB_MODE_SUPPORT_LIST,
+		.name = "Mode support list",
+		.dump = dump_mode_support_list,
+	},
 	{
 		.id = BDB_PSR,
 		.min_bdb_version = 165,
-- 
2.44.2



More information about the igt-dev mailing list