* [igt-dev] [PATCH i-g-t v2 00/17] tools/intel_vbt_decode: Improve VBT decoder
@ 2022-09-06 12:29 Ville Syrjala
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 01/17] tools/intel_vbt_decode: Fix mipi sequence block size Ville Syrjala
` (20 more replies)
0 siblings, 21 replies; 22+ messages in thread
From: Ville Syrjala @ 2022-09-06 12:29 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Sync uo the VBT decoder with the kernel code and
improve/add the decoding of various things.
Ville Syrjälä (17):
tools/intel_vbt_decode: Fix mipi sequence block size
tools/intel_vbt_decode: Validate fp_timing terminator presence
tools/intel_vbt_decode: Use hardcoded fp_timing size for generating
LFP data pointers
tools/intel_vbt_decode: update vbt defs from kernel
tools/intel_vbt_decode: Introduce panel_bits()/panel_bool()
tools/intel_vbt_decode: Remove pointless variables
tools/intel_vbt_decode: Extract lvds_config[]
tools/intel_vbt_decode: Extract panel_fitting[]
tools/intel_vbt_decode: Parse HDMI FRL rate
tools/intel_vbt_decode: Decode the "use VBT vswing tables" flag
tools/intel_vbt_decode: Decode eDP/DP max lane count
tools/intel_vbt_decode: Clean up driver features block decoding
tools/intel_vbt_decode: Decode AUX CH
tools/intel_vbt_decode: Adjust DVO port printing
tools/intel_vbt_decode: Dump the compression structure index as
decimal
tools/intel_vbt_decode: Dump all panels from MIPI blocks
tools/intel_vbt_decode: Print panel_type2
tools/intel_bios.h | 8 -
tools/intel_vbt_decode.c | 712 +++++++++++++++++++++++----------------
tools/intel_vbt_defs.h | 348 ++++++++++---------
3 files changed, 622 insertions(+), 446 deletions(-)
--
2.35.1
^ permalink raw reply [flat|nested] 22+ messages in thread
* [igt-dev] [PATCH i-g-t v2 01/17] tools/intel_vbt_decode: Fix mipi sequence block size
2022-09-06 12:29 [igt-dev] [PATCH i-g-t v2 00/17] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
@ 2022-09-06 12:29 ` Ville Syrjala
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 02/17] tools/intel_vbt_decode: Validate fp_timing terminator presence Ville Syrjala
` (19 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: Ville Syrjala @ 2022-09-06 12:29 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
The v3+ MIPI sequence block version number and new size
field are considered part of the BDB block header, and thus
not included in the reported size. Bump up the size appropariately
so that we copy the whole block.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
tools/intel_vbt_decode.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index bad6825cfbab..98edeb385635 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -476,6 +476,13 @@ static struct bdb_block *find_section(const struct context *context, int section
size = get_blocksize(data);
+ /*
+ * Version number and new block size are considered
+ * part of the header for MIPI sequenece block v3+.
+ */
+ if (section_id == BDB_MIPI_SEQUENCE && *(const u8*)data >= 3)
+ size += 5;
+
/* expect to have the full definition for each block with modern VBTs */
if (min_size && size > min_size &&
section_id != BDB_CHILD_DEVICE_TABLE &&
--
2.35.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [igt-dev] [PATCH i-g-t v2 02/17] tools/intel_vbt_decode: Validate fp_timing terminator presence
2022-09-06 12:29 [igt-dev] [PATCH i-g-t v2 00/17] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 01/17] tools/intel_vbt_decode: Fix mipi sequence block size Ville Syrjala
@ 2022-09-06 12:29 ` Ville Syrjala
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 03/17] tools/intel_vbt_decode: Use hardcoded fp_timing size for generating LFP data pointers Ville Syrjala
` (18 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: Ville Syrjala @ 2022-09-06 12:29 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Validate the LFP data block a bit hardwer by making sure the
fp_timing terminators (0xffff) are where we expect them to be.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
tools/intel_vbt_decode.c | 59 +++++++++++++++++++++-------------------
1 file changed, 31 insertions(+), 28 deletions(-)
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index 98edeb385635..09ed4bd0c1f8 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -148,18 +148,6 @@ static u32 raw_block_offset(const struct context *context, enum bdb_block_id sec
return block - (const void *)context->bdb;
}
-/* size of the block excluding the header */
-static u32 raw_block_size(const struct context *context, enum bdb_block_id section_id)
-{
- const void *block;
-
- block = find_raw_section(context, section_id);
- if (!block)
- return 0;
-
- return get_blocksize(block);
-}
-
static const void *block_data(const struct bdb_block *block)
{
return block->data + 3;
@@ -353,9 +341,14 @@ static bool validate_lfp_data_ptrs(const struct context *context,
{
int fp_timing_size, dvo_timing_size, panel_pnp_id_size, panel_name_size;
int data_block_size, lfp_data_size;
+ const void *block;
int i;
- data_block_size = raw_block_size(context, BDB_LVDS_LFP_DATA);
+ block = find_raw_section(context, BDB_LVDS_LFP_DATA);
+ if (!block)
+ return false;
+
+ data_block_size = get_blocksize(block);
if (data_block_size == 0)
return false;
@@ -383,21 +376,6 @@ static bool validate_lfp_data_ptrs(const struct context *context,
if (16 * lfp_data_size > data_block_size)
return false;
- /*
- * Except for vlv/chv machines all real VBTs seem to have 6
- * unaccounted bytes in the fp_timing table. And it doesn't
- * appear to be a really intentional hole as the fp_timing
- * 0xffff terminator is always within those 6 missing bytes.
- */
- if (fp_timing_size + dvo_timing_size + panel_pnp_id_size != lfp_data_size &&
- fp_timing_size + 6 + dvo_timing_size + panel_pnp_id_size != lfp_data_size)
- return false;
-
- if (ptrs->ptr[0].fp_timing.offset + fp_timing_size > ptrs->ptr[0].dvo_timing.offset ||
- ptrs->ptr[0].dvo_timing.offset + dvo_timing_size != ptrs->ptr[0].panel_pnp_id.offset ||
- ptrs->ptr[0].panel_pnp_id.offset + panel_pnp_id_size != lfp_data_size)
- return false;
-
/* make sure the table entries have uniform size */
for (i = 1; i < 16; i++) {
if (ptrs->ptr[i].fp_timing.table_size != fp_timing_size ||
@@ -411,6 +389,23 @@ static bool validate_lfp_data_ptrs(const struct context *context,
return false;
}
+ /*
+ * Except for vlv/chv machines all real VBTs seem to have 6
+ * unaccounted bytes in the fp_timing table. And it doesn't
+ * appear to be a really intentional hole as the fp_timing
+ * 0xffff terminator is always within those 6 missing bytes.
+ */
+ if (fp_timing_size + 6 + dvo_timing_size + panel_pnp_id_size == lfp_data_size)
+ fp_timing_size += 6;
+
+ if (fp_timing_size + dvo_timing_size + panel_pnp_id_size != lfp_data_size)
+ return false;
+
+ if (ptrs->ptr[0].fp_timing.offset + fp_timing_size != ptrs->ptr[0].dvo_timing.offset ||
+ ptrs->ptr[0].dvo_timing.offset + dvo_timing_size != ptrs->ptr[0].panel_pnp_id.offset ||
+ ptrs->ptr[0].panel_pnp_id.offset + panel_pnp_id_size != lfp_data_size)
+ return false;
+
/* make sure the tables fit inside the data block */
for (i = 0; i < 16; i++) {
if (ptrs->ptr[i].fp_timing.offset + fp_timing_size > data_block_size ||
@@ -422,6 +417,14 @@ static bool validate_lfp_data_ptrs(const struct context *context,
if (ptrs->panel_name.offset + 16 * panel_name_size > data_block_size)
return false;
+ /* make sure fp_timing terminators are present at expected locations */
+ for (i = 0; i < 16; i++) {
+ const u16 *t = block + ptrs->ptr[i].fp_timing.offset + fp_timing_size - 2;
+
+ if (*t != 0xffff)
+ return false;
+ }
+
return true;
}
--
2.35.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [igt-dev] [PATCH i-g-t v2 03/17] tools/intel_vbt_decode: Use hardcoded fp_timing size for generating LFP data pointers
2022-09-06 12:29 [igt-dev] [PATCH i-g-t v2 00/17] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 01/17] tools/intel_vbt_decode: Fix mipi sequence block size Ville Syrjala
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 02/17] tools/intel_vbt_decode: Validate fp_timing terminator presence Ville Syrjala
@ 2022-09-06 12:29 ` Ville Syrjala
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 04/17] tools/intel_vbt_decode: update vbt defs from kernel Ville Syrjala
` (17 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: Ville Syrjala @ 2022-09-06 12:29 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
The current scheme for generating the LFP data table pointers
(when the block including them is missing from the VBT) expects
the 0xffff sequence to only appear in the fp_timing terminator
entries. However some VBTs also have extra 0xffff sequences
elsewhere in the LFP data. When looking for the terminators
we may end up finding those extra sequeneces insted, which means
we deduce the wrong size for the fp_timing table. The code
then notices the inconsistent looking values and gives up on
the generated data table pointers, preventing us from parsing
the LFP data table entirely.
Let's give up on the "search for the terminators" approach
and instead just hardcode the expected size for the fp_timing
table.
We have enough sanity checks in place to make sure we
shouldn't end up parsing total garbage even if that size
should change in the future (although that seems unlikely
as the fp_timing and dvo_timing tables have been declared
obsolete as of VBT version 229).
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
tools/intel_vbt_decode.c | 45 ++++++++++++++++------------------------
1 file changed, 18 insertions(+), 27 deletions(-)
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index 09ed4bd0c1f8..1ef565b93565 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -177,19 +177,6 @@ static size_t lfp_data_min_size(const struct context *context)
return size;
}
-static const uint8_t *find_fp_timing_terminator(const uint8_t *data, int size)
-{
- if (!data)
- return NULL;
-
- for (int i = 0; i < size - 1; i++) {
- if (data[i] == 0xff && data[i+1] == 0xff)
- return &data[i];
- }
-
- return NULL;
-}
-
static int make_lvds_data_ptr(struct lvds_lfp_data_ptr_table *table,
int table_size, int total_size)
{
@@ -212,11 +199,22 @@ static void next_lvds_data_ptr(struct lvds_lfp_data_ptr_table *next,
static void *generate_lvds_data_ptrs(const struct context *context)
{
- int size, table_size, block_size, offset;
- const void *t0, *t1, *block;
+ int size, table_size, block_size, offset, fp_timing_size;
+ const void *block;
struct bdb_lvds_lfp_data_ptrs *ptrs;
void *ptrs_block;
+ /*
+ * The hardcoded fp_timing_size is only valid for
+ * modernish VBTs. All older VBTs definitely should
+ * include block 41 and thus we don't need to
+ * generate one.
+ */
+ if (context->bdb->version < 155)
+ return NULL;
+
+ fp_timing_size = 38;
+
block = find_raw_section(context, BDB_LVDS_LFP_DATA);
if (!block)
return NULL;
@@ -224,16 +222,9 @@ static void *generate_lvds_data_ptrs(const struct context *context)
block_size = get_blocksize(block);
size = block_size;
- t0 = find_fp_timing_terminator(block, size);
- if (!t0)
- return NULL;
- size -= t0 - block - 2;
- t1 = find_fp_timing_terminator(t0 + 2, size);
- if (!t1)
- return NULL;
-
- size = t1 - t0;
+ size = fp_timing_size + sizeof(struct lvds_dvo_timing) +
+ sizeof(struct lvds_pnp_id);
if (size * 16 > block_size)
return NULL;
@@ -251,7 +242,7 @@ static void *generate_lvds_data_ptrs(const struct context *context)
table_size = sizeof(struct lvds_dvo_timing);
size = make_lvds_data_ptr(&ptrs->ptr[0].dvo_timing, table_size, size);
- table_size = t0 - block + 2;
+ table_size = fp_timing_size;
size = make_lvds_data_ptr(&ptrs->ptr[0].fp_timing, table_size, size);
if (ptrs->ptr[0].fp_timing.table_size)
@@ -264,14 +255,14 @@ static void *generate_lvds_data_ptrs(const struct context *context)
if (size != 0 || ptrs->lvds_entries != 3)
return NULL;
- size = t1 - t0;
+ size = fp_timing_size + sizeof(struct lvds_dvo_timing) +
+ sizeof(struct lvds_pnp_id);
for (int i = 1; i < 16; i++) {
next_lvds_data_ptr(&ptrs->ptr[i].fp_timing, &ptrs->ptr[i-1].fp_timing, size);
next_lvds_data_ptr(&ptrs->ptr[i].dvo_timing, &ptrs->ptr[i-1].dvo_timing, size);
next_lvds_data_ptr(&ptrs->ptr[i].panel_pnp_id, &ptrs->ptr[i-1].panel_pnp_id, size);
}
- size = t1 - t0;
table_size = sizeof(struct lvds_lfp_panel_name);
if (16 * (size + table_size) <= block_size) {
--
2.35.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [igt-dev] [PATCH i-g-t v2 04/17] tools/intel_vbt_decode: update vbt defs from kernel
2022-09-06 12:29 [igt-dev] [PATCH i-g-t v2 00/17] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
` (2 preceding siblings ...)
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 03/17] tools/intel_vbt_decode: Use hardcoded fp_timing size for generating LFP data pointers Ville Syrjala
@ 2022-09-06 12:29 ` Ville Syrjala
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 05/17] tools/intel_vbt_decode: Introduce panel_bits()/panel_bool() Ville Syrjala
` (16 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: Ville Syrjala @ 2022-09-06 12:29 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Sync up the the VBT definitions from kernel commit
ac7af83ae08b ("drm/i915: Rename some VBT bits")
and adjust the actual code to match.
Note that 'slave_port' is gone now, so we'll just throw it out,
and the DP redriver stuff is now defined as bitfields which need
to be properly decoded.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
tools/intel_bios.h | 8 -
tools/intel_vbt_decode.c | 27 ++-
tools/intel_vbt_defs.h | 348 ++++++++++++++++++++++-----------------
3 files changed, 218 insertions(+), 165 deletions(-)
diff --git a/tools/intel_bios.h b/tools/intel_bios.h
index 78a96d977536..fdc3308f3d38 100644
--- a/tools/intel_bios.h
+++ b/tools/intel_bios.h
@@ -30,14 +30,6 @@
#include <stdint.h>
-#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
-
#define DEVICE_TYPE_DP_DVI 0x68d6
#define DEVICE_TYPE_DVI 0x68d2
#define DEVICE_TYPE_MIPI 0x7cc2
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index 1ef565b93565..a150438ad041 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -721,7 +721,7 @@ static const struct {
{ 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_LFP1, "LFP 1 (eDP)" },
{ DEVICE_HANDLE_LFP2, "LFP 2 (eDP)" },
};
static const int num_child_device_handles =
@@ -895,8 +895,24 @@ static void dump_child_device(struct context *context,
printf("\t\tSignature: %.*s\n", (int)sizeof(child->device_id), child->device_id);
} else {
printf("\t\tI2C speed: 0x%02x\n", child->i2c_speed);
- printf("\t\tDP onboard redriver: 0x%02x\n", child->dp_onboard_redriver);
- printf("\t\tDP ondock redriver: 0x%02x\n", child->dp_ondock_redriver);
+ printf("\t\tDP onboard redriver:\n");
+ printf("\t\t\tpresent: %s\n",
+ YESNO((child->dp_onboard_redriver_present)));
+ printf("\t\t\tvswing: %s (0x%x)\n",
+ dp_vswing(child->dp_onboard_redriver_vswing),
+ child->dp_onboard_redriver_vswing);
+ printf("\t\t\tpre-emphasis: %s (0x%x)\n",
+ dp_preemph(child->dp_onboard_redriver_preemph),
+ child->dp_onboard_redriver_preemph);
+ printf("\t\tDP ondock redriver:\n");
+ printf("\t\t\tpresent: %s\n",
+ YESNO((child->dp_ondock_redriver_present)));
+ printf("\t\t\tvswing: %s (0x%x)\n",
+ dp_vswing(child->dp_ondock_redriver_vswing),
+ child->dp_ondock_redriver_vswing);
+ printf("\t\t\tpre-emphasis: %s (0x%x)\n",
+ dp_preemph(child->dp_ondock_redriver_preemph),
+ child->dp_ondock_redriver_preemph);
printf("\t\tHDMI level shifter value: 0x%02x\n", child->hdmi_level_shifter_value);
dump_hmdi_max_data_rate(child->hdmi_max_data_rate);
printf("\t\tOffset to DTD buffer for edidless CHILD: 0x%02x\n", child->dtd_buf_ptr);
@@ -905,7 +921,6 @@ static void dump_child_device(struct context *context,
printf("\t\tCompression method CPS: %s\n", YESNO(child->compression_method_cps));
printf("\t\tDual pipe ganged eDP: %s\n", YESNO(child->ganged_edp));
printf("\t\tCompression structure index: 0x%02x)\n", child->compression_structure_index);
- printf("\t\tSlave DDI port: 0x%02x (%s)\n", child->slave_port, dvo_port(child->slave_port));
}
printf("\t\tAIM offset: %d\n", child->addin_offset);
@@ -1324,9 +1339,9 @@ static void dump_driver_feature(struct context *context,
printf("\tBoot Device Algorithm: %s\n", feature->boot_dev_algorithm ?
"driver default" : "os default");
printf("\tBlock display switching when DVD active: %s\n",
- YESNO(feature->block_display_switch));
+ YESNO(feature->allow_display_switch_dvd));
printf("\tAllow display switching when in Full Screen DOS: %s\n",
- YESNO(feature->allow_display_switch));
+ YESNO(feature->allow_display_switch_dos));
printf("\tHot Plug DVO: %s\n", YESNO(feature->hotplug_dvo));
printf("\tDual View Zoom: %s\n", YESNO(feature->dual_view_zoom));
printf("\tDriver INT 15h hook: %s\n", YESNO(feature->int15h_hook));
diff --git a/tools/intel_vbt_defs.h b/tools/intel_vbt_defs.h
index f8e5097222f2..d06b35f17c6a 100644
--- a/tools/intel_vbt_defs.h
+++ b/tools/intel_vbt_defs.h
@@ -75,6 +75,20 @@ struct bdb_header {
u16 bdb_size;
} __packed;
+/*
+ * BDB version number dependencies are documented as:
+ *
+ * <start>+
+ * indicates the field was introduced in version <start>
+ * and is still valid
+ *
+ * <start>-<end>
+ * indicates the field was introduced in version <start>
+ * and obsoleted in version <end>+1.
+ *
+ * ??? indicates the specific version number is unknown
+ */
+
/*
* There are several types of BIOS data blocks (BDBs), each block has
* an ID and size in the first 3 bytes (ID in first, size in next 2).
@@ -144,12 +158,12 @@ struct bdb_general_features {
/* bits 3 */
u8 disable_smooth_vision:1;
u8 single_dvi:1;
- u8 rotate_180:1; /* 181 */
+ u8 rotate_180:1; /* 181+ */
u8 fdi_rx_polarity_inverted:1;
- u8 vbios_extended_mode:1; /* 160 */
- u8 copy_ilfp_dtd_to_sdvo_lvds_dtd:1; /* 160 */
- u8 panel_best_fit_timing:1; /* 160 */
- u8 ignore_strap_state:1; /* 160 */
+ u8 vbios_extended_mode:1; /* 160+ */
+ u8 copy_ilfp_dtd_to_sdvo_lvds_dtd:1; /* 160+ */
+ u8 panel_best_fit_timing:1; /* 160+ */
+ u8 ignore_strap_state:1; /* 160+ */
/* bits 4 */
u8 legacy_monitor_detect;
@@ -164,11 +178,11 @@ struct bdb_general_features {
u8 rsvd11:2; /* finish byte */
/* bits 6 */
- u8 tc_hpd_retry_timeout:7; /* 242 */
+ u8 tc_hpd_retry_timeout:7; /* 242+ */
u8 rsvd12:1;
/* bits 7 */
- u8 afc_startup_config:2;/* 249 */
+ u8 afc_startup_config:2; /* 249+ */
u8 rsvd13:6;
} __packed;
@@ -182,6 +196,19 @@ 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" */
+/* Device handle */
+#define DEVICE_HANDLE_CRT 0x0001
+#define DEVICE_HANDLE_EFP1 0x0004
+#define DEVICE_HANDLE_EFP2 0x0040
+#define DEVICE_HANDLE_EFP3 0x0020
+#define DEVICE_HANDLE_EFP4 0x0010 /* 194+ */
+#define DEVICE_HANDLE_EFP5 0x0002 /* 215+ */
+#define DEVICE_HANDLE_EFP6 0x0001 /* 217+ */
+#define DEVICE_HANDLE_EFP7 0x0100 /* 217+ */
+#define DEVICE_HANDLE_EFP8 0x0200 /* 217+ */
+#define DEVICE_HANDLE_LFP1 0x0008
+#define DEVICE_HANDLE_LFP2 0x0080
+
/* Pre 915 */
#define DEVICE_TYPE_NONE 0x00
#define DEVICE_TYPE_CRT 0x01
@@ -271,27 +298,27 @@ struct bdb_general_features {
#define DVO_PORT_DPC 8
#define DVO_PORT_DPD 9
#define DVO_PORT_DPA 10
-#define DVO_PORT_DPE 11 /* 193 */
-#define DVO_PORT_HDMIE 12 /* 193 */
+#define DVO_PORT_DPE 11 /* 193+ */
+#define DVO_PORT_HDMIE 12 /* 193+ */
#define DVO_PORT_DPF 13 /* N/A */
#define DVO_PORT_HDMIF 14 /* N/A */
-#define DVO_PORT_DPG 15 /* 217 */
-#define DVO_PORT_HDMIG 16 /* 217 */
-#define DVO_PORT_DPH 17 /* 217 */
-#define DVO_PORT_HDMIH 18 /* 217 */
-#define DVO_PORT_DPI 19 /* 217 */
-#define DVO_PORT_HDMII 20 /* 217 */
-#define DVO_PORT_MIPIA 21 /* 171 */
-#define DVO_PORT_MIPIB 22 /* 171 */
-#define DVO_PORT_MIPIC 23 /* 171 */
-#define DVO_PORT_MIPID 24 /* 171 */
+#define DVO_PORT_DPG 15 /* 217+ */
+#define DVO_PORT_HDMIG 16 /* 217+ */
+#define DVO_PORT_DPH 17 /* 217+ */
+#define DVO_PORT_HDMIH 18 /* 217+ */
+#define DVO_PORT_DPI 19 /* 217+ */
+#define DVO_PORT_HDMII 20 /* 217+ */
+#define DVO_PORT_MIPIA 21 /* 171+ */
+#define DVO_PORT_MIPIB 22 /* 171+ */
+#define DVO_PORT_MIPIC 23 /* 171+ */
+#define DVO_PORT_MIPID 24 /* 171+ */
-#define HDMI_MAX_DATA_RATE_PLATFORM 0 /* 204 */
-#define HDMI_MAX_DATA_RATE_297 1 /* 204 */
-#define HDMI_MAX_DATA_RATE_165 2 /* 204 */
-#define HDMI_MAX_DATA_RATE_594 3 /* 249 */
-#define HDMI_MAX_DATA_RATE_340 4 /* 249 */
-#define HDMI_MAX_DATA_RATE_300 5 /* 249 */
+#define HDMI_MAX_DATA_RATE_PLATFORM 0 /* 204+ */
+#define HDMI_MAX_DATA_RATE_297 1 /* 204+ */
+#define HDMI_MAX_DATA_RATE_165 2 /* 204+ */
+#define HDMI_MAX_DATA_RATE_594 3 /* 249+ */
+#define HDMI_MAX_DATA_RATE_340 4 /* 249+ */
+#define HDMI_MAX_DATA_RATE_300 5 /* 249+ */
#define LEGACY_CHILD_DEVICE_CONFIG_SIZE 33
@@ -358,10 +385,10 @@ enum vbt_gmbus_ddi {
* basically any of the fields to ensure the correct interpretation for the BDB
* version in question.
*
- * When we copy the child device configs to dev_priv->vbt.child_dev, we reserve
- * space for the full structure below, and initialize the tail not actually
- * present in VBT to zeros. Accessing those fields is fine, as long as the
- * default zero is taken into account, again according to the BDB version.
+ * When we copy the child device configs to dev_priv->display.vbt.child_dev, we
+ * reserve space for the full structure below, and initialize the tail not
+ * actually present in VBT to zeros. Accessing those fields is fine, as long as
+ * the default zero is taken into account, again according to the BDB version.
*
* BDB versions 155 and below are considered legacy, and version 155 seems to be
* a baseline for some of the VBT documentation. When adding new fields, please
@@ -375,20 +402,29 @@ struct child_device_config {
u8 device_id[10]; /* ascii string */
struct {
u8 i2c_speed;
- u8 dp_onboard_redriver; /* 158 */
- u8 dp_ondock_redriver; /* 158 */
- u8 hdmi_level_shifter_value:5; /* 169 */
- u8 hdmi_max_data_rate:3; /* 204 */
- u16 dtd_buf_ptr; /* 161 */
- u8 edidless_efp:1; /* 161 */
- u8 compression_enable:1; /* 198 */
- u8 compression_method_cps:1; /* 198 */
- u8 ganged_edp:1; /* 202 */
- u8 reserved0:4;
- u8 compression_structure_index:4; /* 198 */
- u8 reserved1:4;
- u8 slave_port; /* 202 */
- u8 reserved2;
+ u8 dp_onboard_redriver_preemph:3; /* 158+ */
+ u8 dp_onboard_redriver_vswing:3; /* 158+ */
+ u8 dp_onboard_redriver_present:1; /* 158+ */
+ u8 reserved0:1;
+ u8 dp_ondock_redriver_preemph:3; /* 158+ */
+ u8 dp_ondock_redriver_vswing:3; /* 158+ */
+ u8 dp_ondock_redriver_present:1; /* 158+ */
+ u8 reserved1:1;
+ u8 hdmi_level_shifter_value:5; /* 158+ */
+ u8 hdmi_max_data_rate:3; /* 204+ */
+ u16 dtd_buf_ptr; /* 161+ */
+ u8 edidless_efp:1; /* 161+ */
+ u8 compression_enable:1; /* 198+ */
+ u8 compression_method_cps:1; /* 198+ */
+ u8 ganged_edp:1; /* 202+ */
+ u8 lttpr_non_transparent:1; /* 235+ */
+ u8 reserved2:3;
+ u8 compression_structure_index:4; /* 198+ */
+ u8 reserved3:4;
+ u8 hdmi_max_frl_rate:4; /* 237+ */
+ u8 hdmi_max_frl_rate_valid:1; /* 237+ */
+ u8 reserved4:3; /* 237+ */
+ u8 reserved5;
} __packed;
} __packed;
@@ -408,16 +444,16 @@ struct child_device_config {
u8 ddc2_pin;
} __packed;
struct {
- u8 efp_routed:1; /* 158 */
- u8 lane_reversal:1; /* 184 */
- u8 lspcon:1; /* 192 */
- u8 iboost:1; /* 196 */
- u8 hpd_invert:1; /* 196 */
- u8 use_vbt_vswing:1; /* 218 */
- u8 flag_reserved:2;
- u8 hdmi_support:1; /* 158 */
- u8 dp_support:1; /* 158 */
- u8 tmds_support:1; /* 158 */
+ u8 efp_routed:1; /* 158+ */
+ u8 lane_reversal:1; /* 184+ */
+ u8 lspcon:1; /* 192+ */
+ u8 iboost:1; /* 196+ */
+ u8 hpd_invert:1; /* 196+ */
+ u8 use_vbt_vswing:1; /* 218+ */
+ u8 dp_max_lane_count:2; /* 244+ */
+ u8 hdmi_support:1; /* 158+ */
+ u8 dp_support:1; /* 158+ */
+ u8 tmds_support:1; /* 158+ */
u8 support_reserved:5;
u8 aux_channel;
u8 dongle_detect;
@@ -425,7 +461,7 @@ struct child_device_config {
} __packed;
u8 pipe_cap:2;
- u8 sdvo_stall:1; /* 158 */
+ u8 sdvo_stall:1; /* 158+ */
u8 hpd_status:2;
u8 integrated_encoder:1;
u8 capabilities_reserved:2;
@@ -433,21 +469,21 @@ struct child_device_config {
union {
u8 dvo2_wiring;
- u8 mipi_bridge_type; /* 171 */
+ u8 mipi_bridge_type; /* 171+ */
} __packed;
u16 extended_type;
u8 dvo_function;
- u8 dp_usb_type_c:1; /* 195 */
- u8 tbt:1; /* 209 */
- u8 flags2_reserved:2; /* 195 */
- u8 dp_port_trace_length:4; /* 209 */
- u8 dp_gpio_index; /* 195 */
- u16 dp_gpio_pin_num; /* 195 */
- u8 dp_iboost_level:4; /* 196 */
- u8 hdmi_iboost_level:4; /* 196 */
- u8 dp_max_link_rate:3; /* 216/230 GLK+ */
- u8 dp_max_link_rate_reserved:5; /* 216/230 */
+ u8 dp_usb_type_c:1; /* 195+ */
+ u8 tbt:1; /* 209+ */
+ u8 flags2_reserved:2; /* 195+ */
+ u8 dp_port_trace_length:4; /* 209+ */
+ u8 dp_gpio_index; /* 195+ */
+ u16 dp_gpio_pin_num; /* 195+ */
+ u8 dp_iboost_level:4; /* 196+ */
+ u8 hdmi_iboost_level:4; /* 196+ */
+ u8 dp_max_link_rate:3; /* 216+ */
+ u8 dp_max_link_rate_reserved:5; /* 216+ */
} __packed;
struct bdb_general_definitions {
@@ -484,25 +520,25 @@ struct bdb_general_definitions {
struct psr_table {
/* Feature bits */
- u8 full_link:1;
- u8 require_aux_to_wakeup:1;
+ u8 full_link:1; /* 165+ */
+ u8 require_aux_to_wakeup:1; /* 165+ */
u8 feature_bits_rsvd:6;
/* Wait times */
- u8 idle_frames:4;
- u8 lines_to_wait:3;
+ u8 idle_frames:4; /* 165+ */
+ u8 lines_to_wait:3; /* 165+ */
u8 wait_times_rsvd:1;
/* TP wake up time in multiple of 100 */
- u16 tp1_wakeup_time;
- u16 tp2_tp3_wakeup_time;
+ u16 tp1_wakeup_time; /* 165+ */
+ u16 tp2_tp3_wakeup_time; /* 165+ */
} __packed;
struct bdb_psr {
struct psr_table psr_table[16];
/* PSR2 TP2/TP3 wakeup time for 16 panels */
- u32 psr2_tp2_tp3_wakeup_time;
+ u32 psr2_tp2_tp3_wakeup_time; /* 226+ */
} __packed;
/*
@@ -515,9 +551,10 @@ struct bdb_psr {
#define BDB_DRIVER_FEATURE_INT_SDVO_LVDS 3
struct bdb_driver_features {
+ /* Driver bits */
u8 boot_dev_algorithm:1;
- u8 block_display_switch:1;
- u8 allow_display_switch:1;
+ u8 allow_display_switch_dvd:1;
+ u8 allow_display_switch_dos:1;
u8 hotplug_dvo:1;
u8 dual_view_zoom:1;
u8 int15h_hook:1;
@@ -529,6 +566,7 @@ struct bdb_driver_features {
u8 boot_mode_bpp;
u8 boot_mode_refresh;
+ /* Extended Driver Bits 1 */
u16 enable_lfp_primary:1;
u16 selective_mode_pruning:1;
u16 dual_frequency:1;
@@ -544,29 +582,40 @@ struct bdb_driver_features {
u16 tv_hotplug:1;
u16 hdmi_config:2;
- u8 static_display:1;
- u8 reserved2:7;
+ /* Driver Flags 1 */
+ u8 static_display:1; /* 163+ */
+ u8 embedded_platform:1; /* 163+ */
+ u8 display_subsystem_enable:1; /* 163+ */
+ u8 reserved0:5;
+
u16 legacy_crt_max_x;
u16 legacy_crt_max_y;
u8 legacy_crt_max_refresh;
- u8 hdmi_termination;
- u8 custom_vbt_version;
- /* Driver features data block */
- u16 rmpm_enabled:1;
- u16 s2ddt_enabled:1;
- u16 dpst_enabled:1;
- u16 bltclt_enabled:1;
- u16 adb_enabled:1;
- u16 drrs_enabled:1;
- u16 grs_enabled:1;
- u16 gpmt_enabled:1;
- u16 tbt_enabled:1;
- u16 psr_enabled:1;
- u16 ips_enabled:1;
- u16 reserved3:1;
- u16 dmrrs_enabled:1;
- u16 reserved4:2;
+ /* Extended Driver Bits 2 */
+ u8 hdmi_termination:1;
+ u8 cea861d_hdmi_support:1;
+ u8 self_refresh_enable:1;
+ u8 reserved1:5;
+
+ u8 custom_vbt_version; /* 155+ */
+
+ /* Driver Feature Flags */
+ u16 rmpm_enabled:1; /* 165+ */
+ u16 s2ddt_enabled:1; /* 165+ */
+ u16 dpst_enabled:1; /* 165-227 */
+ u16 bltclt_enabled:1; /* 165+ */
+ u16 adb_enabled:1; /* 165-227 */
+ u16 drrs_enabled:1; /* 165-227 */
+ u16 grs_enabled:1; /* 165+ */
+ u16 gpmt_enabled:1; /* 165+ */
+ u16 tbt_enabled:1; /* 165+ */
+ u16 psr_enabled:1; /* 165-227 */
+ u16 ips_enabled:1; /* 165+ */
+ u16 dpfs_enabled:1; /* 165+ */
+ u16 dmrrs_enabled:1; /* 174-227 */
+ u16 adt_enabled:1; /* ???-228 */
+ u16 hpd_wake:1; /* 201-240 */
u16 pc_feature_valid:1;
} __packed;
@@ -653,7 +702,7 @@ struct bdb_sdvo_panel_dtds {
struct edp_fast_link_params {
- u8 rate:4;
+ u8 rate:4; /* ???-223 */
u8 lanes:4;
u8 preemphasis:4;
u8 vswing:4;
@@ -686,37 +735,34 @@ struct bdb_edp {
u32 sdrrs_msa_timing_delay;
/* ith bit indicates enabled/disabled for (i+1)th panel */
- u16 edp_s3d_feature; /* 162 */
- u16 edp_t3_optimization; /* 165 */
- u64 edp_vswing_preemph; /* 173 */
- u16 fast_link_training; /* 182 */
- u16 dpcd_600h_write_required; /* 185 */
- struct edp_pwm_delays pwm_delays[16]; /* 186 */
- u16 full_link_params_provided; /* 199 */
- struct edp_full_link_params full_link_params[16]; /* 199 */
- u16 apical_enable; /* 203 */
- struct edp_apical_params apical_params[16]; /* 203 */
- u16 edp_fast_link_training_rate[16]; /* 224 */
- u16 edp_max_port_link_rate[16]; /* 244 */
+ u16 edp_s3d_feature; /* 162+ */
+ u16 edp_t3_optimization; /* 165+ */
+ u64 edp_vswing_preemph; /* 173+ */
+ u16 fast_link_training; /* 182+ */
+ u16 dpcd_600h_write_required; /* 185+ */
+ struct edp_pwm_delays pwm_delays[16]; /* 186+ */
+ u16 full_link_params_provided; /* 199+ */
+ struct edp_full_link_params full_link_params[16]; /* 199+ */
+ u16 apical_enable; /* 203+ */
+ struct edp_apical_params apical_params[16]; /* 203+ */
+ u16 edp_fast_link_training_rate[16]; /* 224+ */
+ u16 edp_max_port_link_rate[16]; /* 244+ */
} __packed;
/*
* Block 40 - LFP Data Block
*/
-/* Mask for DRRS / Panel Channel / SSC / BLT control bits extraction */
-#define MODE_MASK 0x3
-
struct bdb_lvds_options {
u8 panel_type;
- u8 panel_type2; /* 212 */
+ u8 panel_type2; /* 212+ */
/* LVDS capabilities, stored in a dword */
u8 pfit_mode:2;
u8 pfit_text_mode_enhanced:1;
u8 pfit_gfx_mode_enhanced:1;
u8 pfit_ratio_auto:1;
u8 pixel_dither:1;
- u8 lvds_edid:1;
+ u8 lvds_edid:1; /* ???-240 */
u8 rsvd2:1;
u8 rsvd4;
/* LVDS Panel channel bits stored here */
@@ -730,11 +776,11 @@ struct bdb_lvds_options {
/* LVDS panel type bits stored here */
u32 dps_panel_type_bits;
/* LVDS backlight control type bits stored here */
- u32 blt_control_type_bits;
+ u32 blt_control_type_bits; /* ???-240 */
- u16 lcdvcc_s0_enable; /* 200 */
- u32 rotation; /* 228 */
- u32 position; /* 240 */
+ u16 lcdvcc_s0_enable; /* 200+ */
+ u32 rotation; /* 228+ */
+ u32 position; /* 240+ */
} __packed;
/*
@@ -755,7 +801,7 @@ struct lvds_lfp_data_ptr {
struct bdb_lvds_lfp_data_ptrs {
u8 lvds_entries;
struct lvds_lfp_data_ptr ptr[16];
- struct lvds_lfp_data_ptr_table panel_name; /* 156-163? */
+ struct lvds_lfp_data_ptr_table panel_name; /* (156-163?)+ */
} __packed;
/*
@@ -807,20 +853,20 @@ struct lvds_lfp_panel_name {
} __packed;
struct lvds_lfp_black_border {
- u8 top; /* 227 */
- u8 bottom; /* 227 */
- u8 left; /* 238 */
- u8 right; /* 238 */
+ u8 top; /* 227+ */
+ u8 bottom; /* 227+ */
+ u8 left; /* 238+ */
+ u8 right; /* 238+ */
} __packed;
struct bdb_lvds_lfp_data_tail {
- struct lvds_lfp_panel_name panel_name[16]; /* 156-163? */
- u16 scaling_enable; /* 187 */
- u8 seamless_drrs_min_refresh_rate[16]; /* 188 */
- u8 pixel_overlap_count[16]; /* 208 */
- struct lvds_lfp_black_border black_border[16]; /* 227 */
- u16 dual_lfp_port_sync_enable; /* 231 */
- u16 gpu_dithering_for_banding_artifacts; /* 245 */
+ struct lvds_lfp_panel_name panel_name[16]; /* (156-163?)+ */
+ u16 scaling_enable; /* 187+ */
+ u8 seamless_drrs_min_refresh_rate[16]; /* 188+ */
+ u8 pixel_overlap_count[16]; /* 208+ */
+ struct lvds_lfp_black_border black_border[16]; /* 227+ */
+ u16 dual_lfp_port_sync_enable; /* 231+ */
+ u16 gpu_dithering_for_banding_artifacts; /* 245+ */
} __packed;
/*
@@ -835,7 +881,7 @@ struct lfp_backlight_data_entry {
u8 active_low_pwm:1;
u8 obsolete1:5;
u16 pwm_freq_hz;
- u8 min_brightness; /* Obsolete from 234+ */
+ u8 min_brightness; /* ???-233 */
u8 obsolete2;
u8 obsolete3;
} __packed;
@@ -858,7 +904,7 @@ struct lfp_brightness_level {
struct bdb_lfp_backlight_data {
u8 entry_size;
struct lfp_backlight_data_entry data[16];
- u8 level[16]; /* Obsolete from 234+ */
+ u8 level[16]; /* ???-233 */
struct lfp_backlight_control_method backlight_control[16];
struct lfp_brightness_level brightness_level[16]; /* 234+ */
struct lfp_brightness_level brightness_min_level[16]; /* 234+ */
@@ -873,8 +919,8 @@ struct lfp_power_features {
u8 reserved1:1;
u8 power_conservation_pref:3;
u8 reserved2:1;
- u8 lace_enabled_status:1;
- u8 lace_support:1;
+ u8 lace_enabled_status:1; /* 210+ */
+ u8 lace_support:1; /* 210+ */
u8 als_enable:1;
} __packed;
@@ -894,24 +940,24 @@ struct aggressiveness_profile2_entry {
} __packed;
struct bdb_lfp_power {
- struct lfp_power_features features;
+ struct lfp_power_features features; /* ???-227 */
struct als_data_entry als[5];
- u8 lace_aggressiveness_profile:3;
+ u8 lace_aggressiveness_profile:3; /* 210-227 */
u8 reserved1:5;
- u16 dpst;
- u16 psr;
- u16 drrs;
- u16 lace_support;
- u16 adt;
- u16 dmrrs;
- u16 adb;
- u16 lace_enabled_status;
- struct aggressiveness_profile_entry aggressiveness[16];
- u16 hobl; /* 232+ */
- u16 vrr_feature_enabled; /* 233+ */
- u16 elp; /* 247+ */
- u16 opst; /* 247+ */
- struct aggressiveness_profile2_entry aggressiveness2[16]; /* 247+ */
+ u16 dpst; /* 228+ */
+ u16 psr; /* 228+ */
+ u16 drrs; /* 228+ */
+ u16 lace_support; /* 228+ */
+ u16 adt; /* 228+ */
+ u16 dmrrs; /* 228+ */
+ u16 adb; /* 228+ */
+ u16 lace_enabled_status; /* 228+ */
+ struct aggressiveness_profile_entry aggressiveness[16]; /* 228+ */
+ u16 hobl; /* 232+ */
+ u16 vrr_feature_enabled; /* 233+ */
+ u16 elp; /* 247+ */
+ u16 opst; /* 247+ */
+ struct aggressiveness_profile2_entry aggressiveness2[16]; /* 247+ */
} __packed;
/*
@@ -921,10 +967,10 @@ struct bdb_lfp_power {
#define MAX_MIPI_CONFIGURATIONS 6
struct bdb_mipi_config {
- struct mipi_config config[MAX_MIPI_CONFIGURATIONS]; /* 175 */
- struct mipi_pps_data pps[MAX_MIPI_CONFIGURATIONS]; /* 177 */
- struct edp_pwm_delays pwm_delays[MAX_MIPI_CONFIGURATIONS]; /* 186 */
- u8 pmic_i2c_bus_number[MAX_MIPI_CONFIGURATIONS]; /* 190 */
+ struct mipi_config config[MAX_MIPI_CONFIGURATIONS]; /* 175+ */
+ struct mipi_pps_data pps[MAX_MIPI_CONFIGURATIONS]; /* 177+ */
+ struct edp_pwm_delays pwm_delays[MAX_MIPI_CONFIGURATIONS]; /* 186+ */
+ u8 pmic_i2c_bus_number[MAX_MIPI_CONFIGURATIONS]; /* 190+ */
} __packed;
/*
--
2.35.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [igt-dev] [PATCH i-g-t v2 05/17] tools/intel_vbt_decode: Introduce panel_bits()/panel_bool()
2022-09-06 12:29 [igt-dev] [PATCH i-g-t v2 00/17] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
` (3 preceding siblings ...)
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 04/17] tools/intel_vbt_decode: update vbt defs from kernel Ville Syrjala
@ 2022-09-06 12:29 ` Ville Syrjala
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 06/17] tools/intel_vbt_decode: Remove pointless variables Ville Syrjala
` (15 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: Ville Syrjala @ 2022-09-06 12:29 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Add a few helpers for extracting panel specific bits from
the bitfields.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
tools/intel_vbt_decode.c | 78 +++++++++++++++++++++++-----------------
1 file changed, 45 insertions(+), 33 deletions(-)
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index a150438ad041..28894fb263d8 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -508,6 +508,16 @@ static struct bdb_block *find_section(const struct context *context, int section
return block;
}
+static unsigned int panel_bits(unsigned int value, int panel_type, int num_bits)
+{
+ return (value >> (panel_type * num_bits)) & (BIT(num_bits) - 1);
+}
+
+static bool panel_bool(unsigned int value, int panel_type)
+{
+ return panel_bits(value, panel_type, 1);
+}
+
static int decode_ssc_freq(struct context *context, bool alternate)
{
switch (intel_gen(context->devid)) {
@@ -1102,58 +1112,58 @@ static void dump_lvds_options(struct context *context,
printf("\tPanel %d%s\n", i, context->panel_type == i ? " *" : "");
- val = (options->lvds_panel_channel_bits >> (i * 2)) & 3;
+ val = panel_bits(options->lvds_panel_channel_bits, i, 2);
printf("\t\tChannel type: %s (0x%x)\n",
channel_type[val], val);
- val = (options->ssc_bits >> i) & 1;
+ val = panel_bool(options->ssc_bits, i);
printf("\t\tSSC: %s (0x%x)\n",
YESNO(val), val);
- val = (options->ssc_freq >> i) & 1;
+ val = panel_bool(options->ssc_freq, i);
printf("\t\tSSC frequency: %d MHz (0x%x)\n",
decode_ssc_freq(context, val), val);
- val = (options->ssc_ddt >> i) & 1;
+ val = panel_bool(options->ssc_ddt, i);
printf("\t\tDisable SSC in dual display twin: %s (0x%x)\n",
YESNO(val), val);
if (block->size < 16)
continue;
- val = (options->panel_color_depth >> i) & 1;
+ val = panel_bool(options->panel_color_depth, i);
printf("\t\tPanel color depth: %d (0x%x)\n",
val ? 24 : 18, val);
if (block->size < 24)
continue;
- val = (options->dps_panel_type_bits >> (i * 2)) & 3;
+ val = panel_bits(options->dps_panel_type_bits, i, 2);
printf("\t\tDPS type: %s (0x%x)\n",
dps_type[val], val);
- val = (options->blt_control_type_bits >> (i * 2)) & 3;
+ val = panel_bits(options->blt_control_type_bits, i, 2);
printf("\t\tBacklight type: %s (0x%x)\n",
blt_type[val], val);
if (context->bdb->version < 200)
continue;
- val = (options->lcdvcc_s0_enable >> i) & 1;
+ val = panel_bool(options->lcdvcc_s0_enable, i);
printf("\t\tLCDVCC on during S0 state: %s (0x%x)\n",
YESNO(val), val);
if (context->bdb->version < 228)
continue;
- val = ((options->rotation) >> (i * 2)) & 3;
+ val = panel_bits((options->rotation), i, 2);
printf("\t\tPanel rotation: %d degrees (0x%x)\n",
val * 90, val);
if (context->bdb->version < 240)
continue;
- val = ((options->position) >> (i * 2)) & 3;
+ val = panel_bits((options->position), i, 2);
printf("\t\tPanel position: %s (0x%x)\n",
pos_type[val], val);
}
@@ -1292,7 +1302,7 @@ static void dump_lvds_data(struct context *context,
continue;
printf("\t\tScaling enable: %s\n",
- YESNO((tail->scaling_enable >> i) & 1));
+ YESNO(panel_bool(tail->scaling_enable, i)));
if (context->bdb->version < 188)
continue;
@@ -1319,13 +1329,13 @@ static void dump_lvds_data(struct context *context,
continue;
printf("\t\tDual LFP port sync enable: %s\n",
- YESNO((tail->dual_lfp_port_sync_enable >> i) & 1));
+ YESNO(panel_bool(tail->dual_lfp_port_sync_enable, i)));
if (context->bdb->version < 245)
continue;
printf("\t\tGPU dithering for banding artifacts: %s\n",
- YESNO((tail->gpu_dithering_for_banding_artifacts >> i) & 1));
+ YESNO(panel_bool(tail->gpu_dithering_for_banding_artifacts, i)));
}
free(ptrs_block);
@@ -1420,7 +1430,7 @@ static void dump_edp(struct context *context,
edp->power_seqs[i].t10,
edp->power_seqs[i].t12);
- bpp = (edp->color_depth >> (i * 2)) & 3;
+ bpp = panel_bits(edp->color_depth, i, 2);
printf("\t\tPanel color depth: ");
switch (bpp) {
@@ -1438,7 +1448,7 @@ static void dump_edp(struct context *context,
break;
}
- msa = (edp->sdrrs_msa_timing_delay >> (i * 2)) & 3;
+ msa = panel_bits(edp->sdrrs_msa_timing_delay, i, 2);
printf("\t\teDP sDRRS MSA Delay: Lane %d\n", msa + 1);
printf("\t\tFast link params:\n");
@@ -1468,12 +1478,12 @@ static void dump_edp(struct context *context,
edp->fast_link_params[i].vswing);
if (context->bdb->version >= 162) {
- bool val = (edp->edp_s3d_feature >> i) & 1;
+ bool val = panel_bool(edp->edp_s3d_feature, i);
printf("\t\tStereo 3D feature: %s\n", YESNO(val));
}
if (context->bdb->version >= 165) {
- bool val = (edp->edp_t3_optimization >> i) & 1;
+ bool val = panel_bool(edp->edp_t3_optimization, i);
printf("\t\tT3 optimization: %s\n", YESNO(val));
}
@@ -1495,12 +1505,12 @@ static void dump_edp(struct context *context,
}
if (context->bdb->version >= 182) {
- bool val = (edp->fast_link_training >> i) & 1;
+ bool val = panel_bool(edp->fast_link_training, i);
printf("\t\tFast link training: %s\n", YESNO(val));
}
if (context->bdb->version >= 185) {
- bool val = (edp->dpcd_600h_write_required >> i) & 1;
+ bool val = panel_bool(edp->dpcd_600h_write_required, i);
printf("\t\tDPCD 600h write required: %s\n", YESNO(val));
}
@@ -1513,7 +1523,7 @@ static void dump_edp(struct context *context,
}
if (context->bdb->version >= 199) {
- bool val = (edp->full_link_params_provided >> i) & 1;
+ bool val = panel_bool(edp->full_link_params_provided, i);
printf("\t\tFull link params provided: %s\n", YESNO(val));
printf("\t\tFull link params:\n");
@@ -1596,7 +1606,8 @@ static void dump_psr(struct context *context,
int index;
static const uint16_t psr2_tp_times[] = {500, 100, 2500, 5};
- index = (psr2_tp_time >> (i * 2)) & 0x3;
+ index = panel_bits(psr2_tp_time, i, 2);
+
printf("\t\tPSR2 TP2/TP3 wakeup time: %d usec (0x%x)\n",
psr2_tp_times[index], index);
}
@@ -1638,20 +1649,21 @@ static void dump_lfp_power(struct context *context,
printf("\tPanel %d%s\n", i, context->panel_type == i ? " *" : "");
printf("\t\tDPST: %s\n",
- YESNO((lfp_block->dpst >> i) & 1));
+ YESNO(panel_bool(lfp_block->dpst, i)));
printf("\t\tPSR: %s\n",
- YESNO((lfp_block->psr >> i) & 1));
+ YESNO(panel_bool(lfp_block->psr, i)));
printf("\t\tDRRS: %s\n",
- YESNO((lfp_block->drrs >> i) & 1));
+ YESNO(panel_bool(lfp_block->drrs, i)));
printf("\t\tDisplay LACE support: %s\n",
- YESNO((lfp_block->lace_support >> i) & 1));
+ YESNO(panel_bool(lfp_block->lace_support, i)));
printf("\t\tADT: %s\n",
- YESNO((lfp_block->adt >> i) & 1));
+ YESNO(panel_bool(lfp_block->adt, i)));
printf("\t\tDMRRS: %s\n",
- YESNO((lfp_block->dmrrs >> i) & 1));
- printf("\t\tADB: %s\n", YESNO((lfp_block->adb >> i) & 1));
+ YESNO(panel_bool(lfp_block->dmrrs, i)));
+ printf("\t\tADB: %s\n",
+ YESNO(panel_bool(lfp_block->adb, i)));
printf("\t\tDefault Display LACE enabled: %s\n",
- YESNO((lfp_block->lace_enabled_status >> i) & 1));
+ YESNO(panel_bool(lfp_block->lace_enabled_status, i)));
printf("\t\tLACE Aggressiveness: %d\n",
lfp_block->aggressiveness[i].lace_aggressiveness);
printf("\t\tDPST Aggressiveness: %d\n",
@@ -1661,21 +1673,21 @@ static void dump_lfp_power(struct context *context,
continue;
printf("\t\tEDP 4k/2k HOBL feature: %s\n",
- YESNO((lfp_block->hobl >> i) & 1));
+ YESNO(panel_bool(lfp_block->hobl, i)));
if (context->bdb->version < 233)
continue;
printf("\t\tVRR feature: %s\n",
- YESNO((lfp_block->vrr_feature_enabled >> i) & 1));
+ YESNO(panel_bool(lfp_block->vrr_feature_enabled, i)));
if (context->bdb->version < 247)
continue;
printf("\t\tELP: %s\n",
- YESNO((lfp_block->elp >> i) & 1));
+ YESNO(panel_bool(lfp_block->elp, i)));
printf("\t\tOPST: %s\n",
- YESNO((lfp_block->opst >> i) & 1));
+ YESNO(panel_bool(lfp_block->opst, i)));
printf("\t\tELP Aggressiveness: %d\n",
lfp_block->aggressiveness2[i].elp_aggressiveness);
printf("\t\tOPST Aggrgessiveness: %d\n",
--
2.35.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [igt-dev] [PATCH i-g-t v2 06/17] tools/intel_vbt_decode: Remove pointless variables
2022-09-06 12:29 [igt-dev] [PATCH i-g-t v2 00/17] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
` (4 preceding siblings ...)
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 05/17] tools/intel_vbt_decode: Introduce panel_bits()/panel_bool() Ville Syrjala
@ 2022-09-06 12:29 ` Ville Syrjala
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 07/17] tools/intel_vbt_decode: Extract lvds_config[] Ville Syrjala
` (14 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: Ville Syrjala @ 2022-09-06 12:29 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
A bunch of places assign some random variable just to
print out its value with YESNO(). Skip the pointless
intermediate step.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
tools/intel_vbt_decode.c | 50 +++++++++++++++++-----------------------
1 file changed, 21 insertions(+), 29 deletions(-)
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index 28894fb263d8..35a56011199b 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -1116,17 +1116,15 @@ static void dump_lvds_options(struct context *context,
printf("\t\tChannel type: %s (0x%x)\n",
channel_type[val], val);
- val = panel_bool(options->ssc_bits, i);
- printf("\t\tSSC: %s (0x%x)\n",
- YESNO(val), val);
+ printf("\t\tSSC: %s\n",
+ YESNO(panel_bool(options->ssc_bits, i)));
val = panel_bool(options->ssc_freq, i);
printf("\t\tSSC frequency: %d MHz (0x%x)\n",
decode_ssc_freq(context, val), val);
- val = panel_bool(options->ssc_ddt, i);
- printf("\t\tDisable SSC in dual display twin: %s (0x%x)\n",
- YESNO(val), val);
+ printf("\t\tDisable SSC in dual display twin: %s\n",
+ YESNO(panel_bool(options->ssc_ddt, i)));
if (block->size < 16)
continue;
@@ -1149,9 +1147,8 @@ static void dump_lvds_options(struct context *context,
if (context->bdb->version < 200)
continue;
- val = panel_bool(options->lcdvcc_s0_enable, i);
- printf("\t\tLCDVCC on during S0 state: %s (0x%x)\n",
- YESNO(val), val);
+ printf("\t\tLCDVCC on during S0 state: %s\n",
+ YESNO(panel_bool(options->lcdvcc_s0_enable, i)));
if (context->bdb->version < 228)
continue;
@@ -1477,15 +1474,13 @@ static void dump_edp(struct context *context,
dp_vswing(edp->fast_link_params[i].vswing),
edp->fast_link_params[i].vswing);
- if (context->bdb->version >= 162) {
- bool val = panel_bool(edp->edp_s3d_feature, i);
- printf("\t\tStereo 3D feature: %s\n", YESNO(val));
- }
+ if (context->bdb->version >= 162)
+ printf("\t\tStereo 3D feature: %s\n",
+ YESNO(panel_bool(edp->edp_s3d_feature, i)));
- if (context->bdb->version >= 165) {
- bool val = panel_bool(edp->edp_t3_optimization, i);
- printf("\t\tT3 optimization: %s\n", YESNO(val));
- }
+ if (context->bdb->version >= 165)
+ printf("\t\tT3 optimization: %s\n",
+ YESNO(panel_bool(edp->edp_t3_optimization, i)));
if (context->bdb->version >= 173) {
int val = (edp->edp_vswing_preemph >> (i * 4)) & 0xf;
@@ -1504,28 +1499,25 @@ static void dump_edp(struct context *context,
}
}
- if (context->bdb->version >= 182) {
- bool val = panel_bool(edp->fast_link_training, i);
- printf("\t\tFast link training: %s\n", YESNO(val));
- }
+ if (context->bdb->version >= 182)
+ printf("\t\tFast link training: %s\n",
+ YESNO(panel_bool(edp->fast_link_training, i)));
- if (context->bdb->version >= 185) {
- bool val = panel_bool(edp->dpcd_600h_write_required, i);
- printf("\t\tDPCD 600h write required: %s\n", YESNO(val));
- }
+ if (context->bdb->version >= 185)
+ printf("\t\tDPCD 600h write required: %s\n",
+ YESNO(panel_bool(edp->dpcd_600h_write_required, i)));
- if (context->bdb->version >= 186) {
+ if (context->bdb->version >= 186)
printf("\t\tPWM delays:\n"
"\t\t\tPWM on to backlight enable: %d\n"
"\t\t\tBacklight disable to PWM off: %d\n",
edp->pwm_delays[i].pwm_on_to_backlight_enable,
edp->pwm_delays[i].backlight_disable_to_pwm_off);
- }
if (context->bdb->version >= 199) {
- bool val = panel_bool(edp->full_link_params_provided, i);
+ printf("\t\tFull link params provided: %s\n",
+ YESNO(panel_bool(edp->full_link_params_provided, i)));
- printf("\t\tFull link params provided: %s\n", YESNO(val));
printf("\t\tFull link params:\n");
printf("\t\t\tpre-emphasis: %s (0x%x)\n",
dp_preemph(edp->full_link_params[i].preemphasis),
--
2.35.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [igt-dev] [PATCH i-g-t v2 07/17] tools/intel_vbt_decode: Extract lvds_config[]
2022-09-06 12:29 [igt-dev] [PATCH i-g-t v2 00/17] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
` (5 preceding siblings ...)
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 06/17] tools/intel_vbt_decode: Remove pointless variables Ville Syrjala
@ 2022-09-06 12:29 ` Ville Syrjala
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 08/17] tools/intel_vbt_decode: Extract panel_fitting[] Ville Syrjala
` (13 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: Ville Syrjala @ 2022-09-06 12:29 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Extract the lvds_config string representation into an array.
Less clutter in the code this way.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
tools/intel_vbt_decode.c | 24 +++++++++---------------
1 file changed, 9 insertions(+), 15 deletions(-)
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index 35a56011199b..7babd8b6a1a0 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -1338,6 +1338,13 @@ static void dump_lvds_data(struct context *context,
free(ptrs_block);
}
+static const char * const lvds_config[] = {
+ [BDB_DRIVER_NO_LVDS] = "No LVDS",
+ [BDB_DRIVER_INT_LVDS] = "Integrated LVDS",
+ [BDB_DRIVER_SDVO_LVDS] = "SDVO LVDS",
+ [BDB_DRIVER_EDP] = "Embedded DisplayPort",
+};
+
static void dump_driver_feature(struct context *context,
const struct bdb_block *block)
{
@@ -1382,21 +1389,8 @@ static void dump_driver_feature(struct context *context,
printf("\tEnable SDVO device power down: %s\n",
YESNO(feature->sdvo_device_power_down));
printf("\tCRT hotplug: %s\n", YESNO(feature->crt_hotplug));
- printf("\tLVDS config: ");
- switch (feature->lvds_config) {
- case BDB_DRIVER_NO_LVDS:
- printf("No LVDS\n");
- break;
- case BDB_DRIVER_INT_LVDS:
- printf("Integrated LVDS\n");
- break;
- case BDB_DRIVER_SDVO_LVDS:
- printf("SDVO LVDS\n");
- break;
- case BDB_DRIVER_EDP:
- printf("Embedded DisplayPort\n");
- break;
- }
+ printf("\tLVDS config: %s (0x%x)\n",
+ lvds_config[feature->lvds_config], feature->lvds_config);
printf("\tDefine Display statically: %s\n",
YESNO(feature->static_display));
printf("\tLegacy CRT max X: %d\n", feature->legacy_crt_max_x);
--
2.35.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [igt-dev] [PATCH i-g-t v2 08/17] tools/intel_vbt_decode: Extract panel_fitting[]
2022-09-06 12:29 [igt-dev] [PATCH i-g-t v2 00/17] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
` (6 preceding siblings ...)
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 07/17] tools/intel_vbt_decode: Extract lvds_config[] Ville Syrjala
@ 2022-09-06 12:29 ` Ville Syrjala
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 09/17] tools/intel_vbt_decode: Parse HDMI FRL rate Ville Syrjala
` (12 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: Ville Syrjala @ 2022-09-06 12:29 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Extract the panel_fitting string representation into an array.
Less clutter in the code this way.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
tools/intel_vbt_decode.c | 24 +++++++++---------------
1 file changed, 9 insertions(+), 15 deletions(-)
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index 7babd8b6a1a0..74e6fcd6b833 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -531,26 +531,20 @@ static int decode_ssc_freq(struct context *context, bool alternate)
}
}
+static const char * const panel_fitting[] = {
+ [0] = "disabled",
+ [1] = "text only",
+ [2] = "graphics only",
+ [3] = "text & graphics",
+};
+
static void dump_general_features(struct context *context,
const struct bdb_block *block)
{
const struct bdb_general_features *features = block_data(block);
- printf("\tPanel fitting: ");
- switch (features->panel_fitting) {
- case 0:
- printf("disabled\n");
- break;
- case 1:
- printf("text only\n");
- break;
- case 2:
- printf("graphics only\n");
- break;
- case 3:
- printf("text & graphics\n");
- break;
- }
+ printf("\tPanel fitting: %s (0x%x)\n",
+ panel_fitting[features->panel_fitting], features->panel_fitting);
printf("\tFlexaim: %s\n", YESNO(features->flexaim));
printf("\tMessage: %s\n", YESNO(features->msg_enable));
printf("\tClear screen: %d\n", features->clear_screen);
--
2.35.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [igt-dev] [PATCH i-g-t v2 09/17] tools/intel_vbt_decode: Parse HDMI FRL rate
2022-09-06 12:29 [igt-dev] [PATCH i-g-t v2 00/17] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
` (7 preceding siblings ...)
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 08/17] tools/intel_vbt_decode: Extract panel_fitting[] Ville Syrjala
@ 2022-09-06 12:29 ` Ville Syrjala
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 10/17] tools/intel_vbt_decode: Decode the "use VBT vswing tables" flag Ville Syrjala
` (11 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: Ville Syrjala @ 2022-09-06 12:29 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Parse the max HDMI FRL rate stuff.
Signed-off-by: Ville Syrjälä <ville.syrjala@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 74e6fcd6b833..dc8d0c4fc57a 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -882,6 +882,19 @@ static const char *dp_preemph(u8 preemph)
}
}
+static const char *hdmi_frl_rate(u8 frl_rate)
+{
+ switch (frl_rate) {
+ case 0: return "FRL not supported";
+ case 1: return "3 GT/s";
+ case 2: return "6 GT/s";
+ case 3: return "8 GT/s";
+ case 4: return "10 GT/s";
+ case 5: return "12 GT/s";
+ default: return "<unknown>";
+ }
+}
+
static void dump_child_device(struct context *context,
const struct child_device_config *child)
{
@@ -925,6 +938,14 @@ static void dump_child_device(struct context *context,
printf("\t\tCompression method CPS: %s\n", YESNO(child->compression_method_cps));
printf("\t\tDual pipe ganged eDP: %s\n", YESNO(child->ganged_edp));
printf("\t\tCompression structure index: 0x%02x)\n", child->compression_structure_index);
+
+ if (context->bdb->version >= 237) {
+ printf("\t\tHDMI Max FRL rate valid: %s\n",
+ YESNO(child->hdmi_max_frl_rate_valid));
+ printf("\t\tHDMI Max FRL rate: %s (0x%x)\n",
+ hdmi_frl_rate(child->hdmi_max_frl_rate),
+ child->hdmi_max_frl_rate);
+ }
}
printf("\t\tAIM offset: %d\n", child->addin_offset);
--
2.35.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [igt-dev] [PATCH i-g-t v2 10/17] tools/intel_vbt_decode: Decode the "use VBT vswing tables" flag
2022-09-06 12:29 [igt-dev] [PATCH i-g-t v2 00/17] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
` (8 preceding siblings ...)
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 09/17] tools/intel_vbt_decode: Parse HDMI FRL rate Ville Syrjala
@ 2022-09-06 12:29 ` Ville Syrjala
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 11/17] tools/intel_vbt_decode: Decode eDP/DP max lane count Ville Syrjala
` (10 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: Ville Syrjala @ 2022-09-06 12:29 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Decode the "Use VBT swging tables" bit. Note that we don't decode
the actual tables so far.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
tools/intel_vbt_decode.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index dc8d0c4fc57a..d01d89f9aa27 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -968,6 +968,7 @@ static void dump_child_device(struct context *context,
printf("\t\tOnboard LSPCON: %s\n", YESNO(child->lspcon));
printf("\t\tIboost enable: %s\n", YESNO(child->iboost));
printf("\t\tHPD sense invert: %s\n", YESNO(child->hpd_invert));
+ printf("\t\tUse VBT vswing/premph table: %s\n", YESNO(child->use_vbt_vswing));
printf("\t\tHDMI compatible? %s\n", YESNO(child->hdmi_support));
printf("\t\tDP compatible? %s\n", YESNO(child->dp_support));
printf("\t\tTMDS compatible? %s\n", YESNO(child->tmds_support));
--
2.35.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [igt-dev] [PATCH i-g-t v2 11/17] tools/intel_vbt_decode: Decode eDP/DP max lane count
2022-09-06 12:29 [igt-dev] [PATCH i-g-t v2 00/17] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
` (9 preceding siblings ...)
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 10/17] tools/intel_vbt_decode: Decode the "use VBT vswing tables" flag Ville Syrjala
@ 2022-09-06 12:29 ` Ville Syrjala
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 12/17] tools/intel_vbt_decode: Clean up driver features block decoding Ville Syrjala
` (9 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: Ville Syrjala @ 2022-09-06 12:29 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
We have a new field for eDP/DP max lane count. Decode it.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
tools/intel_vbt_decode.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index d01d89f9aa27..f82be17b17f5 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -969,6 +969,8 @@ static void dump_child_device(struct context *context,
printf("\t\tIboost enable: %s\n", YESNO(child->iboost));
printf("\t\tHPD sense invert: %s\n", YESNO(child->hpd_invert));
printf("\t\tUse VBT vswing/premph table: %s\n", YESNO(child->use_vbt_vswing));
+ if (context->bdb->version >= 244)
+ printf("\t\teDP/DP max lane count: X%d\n", child->dp_max_lane_count + 1);
printf("\t\tHDMI compatible? %s\n", YESNO(child->hdmi_support));
printf("\t\tDP compatible? %s\n", YESNO(child->dp_support));
printf("\t\tTMDS compatible? %s\n", YESNO(child->tmds_support));
--
2.35.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [igt-dev] [PATCH i-g-t v2 12/17] tools/intel_vbt_decode: Clean up driver features block decoding
2022-09-06 12:29 [igt-dev] [PATCH i-g-t v2 00/17] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
` (10 preceding siblings ...)
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 11/17] tools/intel_vbt_decode: Decode eDP/DP max lane count Ville Syrjala
@ 2022-09-06 12:29 ` Ville Syrjala
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 13/17] tools/intel_vbt_decode: Decode AUX CH Ville Syrjala
` (8 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: Ville Syrjala @ 2022-09-06 12:29 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Print all the stuff from the driver features block, and print
it in the same order as the spec lists it to make it a bit
easier to compare the two.
Also use consistent naming for a bunch of the fields that
exist in both the driver features block and the power conservation
block.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
tools/intel_vbt_decode.c | 93 ++++++++++++++++++++++++++++++----------
1 file changed, 70 insertions(+), 23 deletions(-)
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index f82be17b17f5..ecdccd2b9166 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -1368,23 +1368,28 @@ static void dump_driver_feature(struct context *context,
{
const struct bdb_driver_features *feature = block_data(block);
- printf("\tBoot Device Algorithm: %s\n", feature->boot_dev_algorithm ?
- "driver default" : "os default");
- printf("\tBlock display switching when DVD active: %s\n",
- YESNO(feature->allow_display_switch_dvd));
- printf("\tAllow display switching when in Full Screen DOS: %s\n",
- YESNO(feature->allow_display_switch_dos));
- printf("\tHot Plug DVO: %s\n", YESNO(feature->hotplug_dvo));
- printf("\tDual View Zoom: %s\n", YESNO(feature->dual_view_zoom));
- printf("\tDriver INT 15h hook: %s\n", YESNO(feature->int15h_hook));
- printf("\tEnable Sprite in Clone Mode: %s\n",
- YESNO(feature->sprite_in_clone));
printf("\tUse 00000110h ID for Primary LFP: %s\n",
YESNO(feature->primary_lfp_id));
+ printf("\tEnable Sprite in Clone Mode: %s\n",
+ YESNO(feature->sprite_in_clone));
+ printf("\tDriver INT 15h hook: %s\n",
+ YESNO(feature->int15h_hook));
+ printf("\tDual View Zoom: %s\n",
+ YESNO(feature->dual_view_zoom));
+ printf("\tHot Plug DVO: %s\n",
+ YESNO(feature->hotplug_dvo));
+ printf("\tAllow display switching when in Full Screen DOS: %s\n",
+ YESNO(feature->allow_display_switch_dos));
+ printf("\tAllow display switching when DVD active: %s\n",
+ YESNO(feature->allow_display_switch_dvd));
+ printf("\tBoot Device Algorithm: %s\n",
+ feature->boot_dev_algorithm ? "driver default" : "os default");
+
printf("\tBoot Mode X: %u\n", feature->boot_mode_x);
printf("\tBoot Mode Y: %u\n", feature->boot_mode_y);
printf("\tBoot Mode Bpp: %u\n", feature->boot_mode_bpp);
printf("\tBoot Mode Refresh: %u\n", feature->boot_mode_refresh);
+
printf("\tEnable LFP as primary: %s\n",
YESNO(feature->enable_lfp_primary));
printf("\tSelective Mode Pruning: %s\n",
@@ -1397,9 +1402,8 @@ static void dump_driver_feature(struct context *context,
YESNO(feature->nt_clone_support));
printf("\tDefault Power Scheme user interface: %s\n",
feature->power_scheme_ui ? "3rd party" : "CUI");
- printf
- ("\tSprite Display Assignment when Overlay is Active in Clone Mode: %s\n",
- feature->sprite_display_assign ? "primary" : "secondary");
+ printf("\tSprite Display Assignment when Overlay is Active in Clone Mode: %s\n",
+ feature->sprite_display_assign ? "primary" : "secondary");
printf("\tDisplay Maintain Aspect Scaling via CUI: %s\n",
YESNO(feature->cui_aspect_scaling));
printf("\tPreserve Aspect Ratio: %s\n",
@@ -1407,16 +1411,59 @@ static void dump_driver_feature(struct context *context,
printf("\tEnable SDVO device power down: %s\n",
YESNO(feature->sdvo_device_power_down));
printf("\tCRT hotplug: %s\n", YESNO(feature->crt_hotplug));
+
printf("\tLVDS config: %s (0x%x)\n",
lvds_config[feature->lvds_config], feature->lvds_config);
+ printf("\tTV hotplug: %s\n",
+ YESNO(feature->tv_hotplug));
+
+ printf("\tDisplay subsystem enable: %s\n",
+ YESNO(feature->display_subsystem_enable));
+ printf("\tEmbedded platform: %s\n",
+ YESNO(feature->embedded_platform));
printf("\tDefine Display statically: %s\n",
YESNO(feature->static_display));
+
printf("\tLegacy CRT max X: %d\n", feature->legacy_crt_max_x);
printf("\tLegacy CRT max Y: %d\n", feature->legacy_crt_max_y);
printf("\tLegacy CRT max refresh: %d\n",
feature->legacy_crt_max_refresh);
- printf("\tEnable DRRS: %s\n", YESNO(feature->drrs_enabled));
- printf("\tEnable PSR: %s\n", YESNO(feature->psr_enabled));
+
+ printf("\tInternal source termination for HDMI: %s\n",
+ YESNO(feature->hdmi_termination));
+ printf("\tCEA 861-D HDMI support: %s\n",
+ YESNO(feature->cea861d_hdmi_support));
+ printf("\tSelf refresh enable: %s\n",
+ YESNO(feature->self_refresh_enable));
+
+ printf("\tCustom VBT number: 0x%x\n", feature->custom_vbt_version);
+
+ printf("\tPC Features field validity: %s\n",
+ YESNO(feature->pc_feature_valid));
+ printf("\tDynamic Media Refresh Rate Switching (DMRRS): %s\n",
+ YESNO(feature->dmrrs_enabled));
+ printf("\tIntermediate Pixel Storage (IPS): %s\n",
+ YESNO(feature->ips_enabled));
+ printf("\tPanel Self Refresh (PSR): %s\n",
+ YESNO(feature->psr_enabled));
+ printf("\tTurbo Boost Technology: %s\n",
+ YESNO(feature->tbt_enabled));
+ printf("\tGraphics Power Management (GPMT): %s\n",
+ YESNO(feature->gpmt_enabled));
+ printf("\tGraphics Render Standby (RS): %s\n",
+ YESNO(feature->grs_enabled));
+ printf("\tDynamic Refresh Rate Switching (DRRS): %s\n",
+ YESNO(feature->drrs_enabled));
+ printf("\tAutomatic Display Brightness (ADB): %s\n",
+ YESNO(feature->adb_enabled));
+ printf("\tDxgkDDI Backlight Control (DxgkDdiBLC): %s\n",
+ YESNO(feature->bltclt_enabled));
+ printf("\tDisplay Power Saving Technology (DPST): %s\n",
+ YESNO(feature->dpst_enabled));
+ printf("\tSmart 2D Display Technology (S2DDT): %s\n",
+ YESNO(feature->s2ddt_enabled));
+ printf("\tRapid Memory Power Management (RMPM): %s\n",
+ YESNO(feature->rmpm_enabled));
}
static void dump_edp(struct context *context,
@@ -1652,19 +1699,19 @@ static void dump_lfp_power(struct context *context,
printf("\tPanel %d%s\n", i, context->panel_type == i ? " *" : "");
- printf("\t\tDPST: %s\n",
+ printf("\t\tDisplay Power Saving Technology (DPST): %s\n",
YESNO(panel_bool(lfp_block->dpst, i)));
- printf("\t\tPSR: %s\n",
+ printf("\t\tPanel Self Refresh (PSR): %s\n",
YESNO(panel_bool(lfp_block->psr, i)));
- printf("\t\tDRRS: %s\n",
+ printf("\t\tDynamic Refresh Rate Switching (DRRS): %s\n",
YESNO(panel_bool(lfp_block->drrs, i)));
printf("\t\tDisplay LACE support: %s\n",
YESNO(panel_bool(lfp_block->lace_support, i)));
- printf("\t\tADT: %s\n",
+ printf("\t\tAssertive Display Technology (ADT): %s\n",
YESNO(panel_bool(lfp_block->adt, i)));
- printf("\t\tDMRRS: %s\n",
+ printf("\t\tDynamic Media Refresh Rate Switching (DMRRS): %s\n",
YESNO(panel_bool(lfp_block->dmrrs, i)));
- printf("\t\tADB: %s\n",
+ printf("\t\tAutomatic Display Brightness (ADB): %s\n",
YESNO(panel_bool(lfp_block->adb, i)));
printf("\t\tDefault Display LACE enabled: %s\n",
YESNO(panel_bool(lfp_block->lace_enabled_status, i)));
@@ -1682,7 +1729,7 @@ static void dump_lfp_power(struct context *context,
if (context->bdb->version < 233)
continue;
- printf("\t\tVRR feature: %s\n",
+ printf("\t\tVariable Refresh Rate (VRR): %s\n",
YESNO(panel_bool(lfp_block->vrr_feature_enabled, i)));
if (context->bdb->version < 247)
--
2.35.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [igt-dev] [PATCH i-g-t v2 13/17] tools/intel_vbt_decode: Decode AUX CH
2022-09-06 12:29 [igt-dev] [PATCH i-g-t v2 00/17] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
` (11 preceding siblings ...)
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 12/17] tools/intel_vbt_decode: Clean up driver features block decoding Ville Syrjala
@ 2022-09-06 12:29 ` Ville Syrjala
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 14/17] tools/intel_vbt_decode: Adjust DVO port printing Ville Syrjala
` (7 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: Ville Syrjala @ 2022-09-06 12:29 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Decode the AUX CH to a human readable name.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
tools/intel_vbt_decode.c | 26 +++++++++++++++++++++++++-
1 file changed, 25 insertions(+), 1 deletion(-)
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index ecdccd2b9166..f9b2bf0af272 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -778,6 +778,29 @@ static const char *dvo_port(uint8_t type)
return "unknown";
}
+static const char *aux_ch_names[] = {
+ [0] = "none",
+ [DP_AUX_A >> 4] = "AUX-A",
+ [DP_AUX_B >> 4] = "AUX-B",
+ [DP_AUX_C >> 4] = "AUX-C",
+ [DP_AUX_D >> 4] = "AUX-D",
+ [DP_AUX_E >> 4] = "AUX-E",
+ [DP_AUX_F >> 4] = "AUX-F",
+ [DP_AUX_G >> 4] = "AUX-G",
+ [DP_AUX_H >> 4] = "AUX-H",
+ [DP_AUX_I >> 4] = "AUX-I",
+};
+
+static const char *aux_ch(uint8_t aux_ch)
+{
+ aux_ch >>= 4;
+
+ if (aux_ch < ARRAY_SIZE(aux_ch_names) && aux_ch_names[aux_ch])
+ return aux_ch_names[aux_ch];
+ else
+ return "unknown";
+}
+
static const char *mipi_bridge_type(uint8_t type)
{
switch (type) {
@@ -974,7 +997,8 @@ static void dump_child_device(struct context *context,
printf("\t\tHDMI compatible? %s\n", YESNO(child->hdmi_support));
printf("\t\tDP compatible? %s\n", YESNO(child->dp_support));
printf("\t\tTMDS compatible? %s\n", YESNO(child->tmds_support));
- printf("\t\tAux channel: 0x%02x\n", child->aux_channel);
+ printf("\t\tAux channel: %s (0x%02x)\n",
+ aux_ch(child->aux_channel), child->aux_channel);
printf("\t\tDongle detect: 0x%02x\n", child->dongle_detect);
}
--
2.35.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [igt-dev] [PATCH i-g-t v2 14/17] tools/intel_vbt_decode: Adjust DVO port printing
2022-09-06 12:29 [igt-dev] [PATCH i-g-t v2 00/17] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
` (12 preceding siblings ...)
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 13/17] tools/intel_vbt_decode: Decode AUX CH Ville Syrjala
@ 2022-09-06 12:29 ` Ville Syrjala
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 15/17] tools/intel_vbt_decode: Dump the compression structure index as decimal Ville Syrjala
` (6 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: Ville Syrjala @ 2022-09-06 12:29 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Dump the DVO port using the more standard form:
"DVO Port: <decoded name> (<raw value>)".
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
tools/intel_vbt_decode.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index f9b2bf0af272..9e14d5a570a7 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -972,7 +972,8 @@ static void dump_child_device(struct context *context,
}
printf("\t\tAIM offset: %d\n", child->addin_offset);
- printf("\t\tDVO Port: 0x%02x (%s)\n", child->dvo_port, dvo_port(child->dvo_port));
+ printf("\t\tDVO Port: %s (0x%02x)\n",
+ dvo_port(child->dvo_port), child->dvo_port);
printf("\t\tAIM I2C pin: 0x%02x\n", child->i2c_pin);
printf("\t\tAIM Slave address: 0x%02x\n", child->slave_addr);
--
2.35.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [igt-dev] [PATCH i-g-t v2 15/17] tools/intel_vbt_decode: Dump the compression structure index as decimal
2022-09-06 12:29 [igt-dev] [PATCH i-g-t v2 00/17] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
` (13 preceding siblings ...)
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 14/17] tools/intel_vbt_decode: Adjust DVO port printing Ville Syrjala
@ 2022-09-06 12:29 ` Ville Syrjala
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 16/17] tools/intel_vbt_decode: Dump all panels from MIPI blocks Ville Syrjala
` (5 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: Ville Syrjala @ 2022-09-06 12:29 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
The compression structure index is just that, and index. So just
dump it as a decimal number (and drop the mispaced parenthesis).
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
tools/intel_vbt_decode.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index 9e14d5a570a7..d34f017cad73 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -960,7 +960,7 @@ static void dump_child_device(struct context *context,
printf("\t\tCompression enable: %s\n", YESNO(child->compression_enable));
printf("\t\tCompression method CPS: %s\n", YESNO(child->compression_method_cps));
printf("\t\tDual pipe ganged eDP: %s\n", YESNO(child->ganged_edp));
- printf("\t\tCompression structure index: 0x%02x)\n", child->compression_structure_index);
+ printf("\t\tCompression structure index: %d\n", child->compression_structure_index);
if (context->bdb->version >= 237) {
printf("\t\tHDMI Max FRL rate valid: %s\n",
--
2.35.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [igt-dev] [PATCH i-g-t v2 16/17] tools/intel_vbt_decode: Dump all panels from MIPI blocks
2022-09-06 12:29 [igt-dev] [PATCH i-g-t v2 00/17] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
` (14 preceding siblings ...)
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 15/17] tools/intel_vbt_decode: Dump the compression structure index as decimal Ville Syrjala
@ 2022-09-06 12:29 ` Ville Syrjala
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 17/17] tools/intel_vbt_decode: Print panel_type2 Ville Syrjala
` (4 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: Ville Syrjala @ 2022-09-06 12:29 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Respect the --all-panels in the MIPI blocks dumping
and dump all six possible panels.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
tools/intel_vbt_decode.c | 264 ++++++++++++++++++++++-----------------
1 file changed, 150 insertions(+), 114 deletions(-)
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index d34f017cad73..8f48d43abe58 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -1842,94 +1842,121 @@ static void dump_mipi_config(struct context *context,
const struct bdb_block *block)
{
const struct bdb_mipi_config *start = block_data(block);
- const struct mipi_config *config;
- const struct mipi_pps_data *pps;
- config = &start->config[context->panel_type];
- pps = &start->pps[context->panel_type];
+ for (int i = 0; i < ARRAY_SIZE(start->config); i++) {
+ const struct mipi_config *config =
+ &start->config[context->panel_type];
+ const struct mipi_pps_data *pps =
+ &start->pps[context->panel_type];
+ const struct edp_pwm_delays *pwm_delays =
+ &start->pwm_delays[context->panel_type];
- printf("\tGeneral Param\n");
- printf("\t\t BTA disable: %s\n", config->bta ? "Disabled" : "Enabled");
- printf("\t\t Panel Rotation: %d degrees\n", config->rotation * 90);
+ if (i != context->panel_type && !context->dump_all_panel_types)
+ continue;
- printf("\t\t Video Mode Color Format: ");
- if (config->videomode_color_format == 0)
- printf("Not supported\n");
- else if (config->videomode_color_format == 1)
- printf("RGB565\n");
- else if (config->videomode_color_format == 2)
- printf("RGB666\n");
- else if (config->videomode_color_format == 3)
- printf("RGB666 Loosely Packed\n");
- else if (config->videomode_color_format == 4)
- printf("RGB888\n");
- printf("\t\t PPS GPIO Pins: %s \n", config->pwm_blc ? "Using SOC" : "Using PMIC");
- printf("\t\t CABC Support: %s\n", config->cabc ? "supported" : "not supported");
- printf("\t\t Mode: %s\n", config->cmd_mode ? "COMMAND" : "VIDEO");
- printf("\t\t Video transfer mode: %s (0x%x)\n",
- config->vtm == 1 ? "non-burst with sync pulse" :
- config->vtm == 2 ? "non-burst with sync events" :
- config->vtm == 3 ? "burst" : "<unknown>",
- config->vtm);
- printf("\t\t Dithering: %s\n", config->dithering ? "done in Display Controller" : "done in Panel Controller");
+ printf("\tPanel %d%s\n", i,
+ context->panel_type == i ? " *" : "");
- printf("\tPort Desc\n");
- printf("\t\t Pixel overlap: %d\n", config->pixel_overlap);
- printf("\t\t Lane Count: %d\n", config->lane_cnt + 1);
- printf("\t\t Dual Link Support: ");
- if (config->dual_link == 0)
- printf("not supported\n");
- else if (config->dual_link == 1)
- printf("Front Back mode\n");
- else
- printf("Pixel Alternative Mode\n");
+ printf("\t\tGeneral Param\n");
+ printf("\t\t\t BTA disable: %s\n", config->bta ? "Disabled" : "Enabled");
+ printf("\t\t\t Panel Rotation: %d degrees\n", config->rotation * 90);
- printf("\tDphy Flags\n");
- printf("\t\t Clock Stop: %s\n", config->clk_stop ? "ENABLED" : "DISABLED");
- printf("\t\t EOT disabled: %s\n\n", config->eot_disabled ? "EOT not to be sent" : "EOT to be sent");
+ printf("\t\t\t Video Mode Color Format: ");
+ if (config->videomode_color_format == 0)
+ printf("Not supported\n");
+ else if (config->videomode_color_format == 1)
+ printf("RGB565\n");
+ else if (config->videomode_color_format == 2)
+ printf("RGB666\n");
+ else if (config->videomode_color_format == 3)
+ printf("RGB666 Loosely Packed\n");
+ else if (config->videomode_color_format == 4)
+ printf("RGB888\n");
+ printf("\t\t\t PPS GPIO Pins: %s \n",
+ config->pwm_blc ? "Using SOC" : "Using PMIC");
+ printf("\t\t\t CABC Support: %s\n",
+ config->cabc ? "supported" : "not supported");
+ printf("\t\t\t Mode: %s\n",
+ config->cmd_mode ? "COMMAND" : "VIDEO");
+ printf("\t\t\t Video transfer mode: %s (0x%x)\n",
+ config->vtm == 1 ? "non-burst with sync pulse" :
+ config->vtm == 2 ? "non-burst with sync events" :
+ config->vtm == 3 ? "burst" : "<unknown>",
+ config->vtm);
+ printf("\t\t\t Dithering: %s\n",
+ config->dithering ? "done in Display Controller" : "done in Panel Controller");
- printf("\tHSTxTimeOut: 0x%x\n", config->hs_tx_timeout);
- printf("\tLPRXTimeOut: 0x%x\n", config->lp_rx_timeout);
- printf("\tTurnAroundTimeOut: 0x%x\n", config->turn_around_timeout);
- printf("\tDeviceResetTimer: 0x%x\n", config->device_reset_timer);
- printf("\tMasterinitTimer: 0x%x\n", config->master_init_timer);
- printf("\tDBIBandwidthTimer: 0x%x\n", config->dbi_bw_timer);
- printf("\tLpByteClkValue: 0x%x\n\n", config->lp_byte_clk_val);
+ printf("\t\tPort Desc\n");
+ printf("\t\t\t Pixel overlap: %d\n", config->pixel_overlap);
+ printf("\t\t\t Lane Count: %d\n", config->lane_cnt + 1);
+ printf("\t\t\t Dual Link Support: ");
+ if (config->dual_link == 0)
+ printf("not supported\n");
+ else if (config->dual_link == 1)
+ printf("Front Back mode\n");
+ else
+ printf("Pixel Alternative Mode\n");
- printf("\tDphy Params\n");
- printf("\t\tExit to zero Count: 0x%x\n", config->exit_zero_cnt);
- printf("\t\tTrail Count: 0x%X\n", config->trail_cnt);
- printf("\t\tClk zero count: 0x%x\n", config->clk_zero_cnt);
- printf("\t\tPrepare count:0x%x\n\n", config->prepare_cnt);
+ printf("\t\tDphy Flags\n");
+ printf("\t\t\t Clock Stop: %s\n",
+ config->clk_stop ? "ENABLED" : "DISABLED");
+ printf("\t\t\t EOT disabled: %s\n\n",
+ config->eot_disabled ? "EOT not to be sent" : "EOT to be sent");
- printf("\tClockLaneSwitchingCount: 0x%x\n", config->clk_lane_switch_cnt);
- printf("\tHighToLowSwitchingCount: 0x%x\n\n", config->hl_switch_cnt);
+ printf("\t\tHSTxTimeOut: 0x%x\n", config->hs_tx_timeout);
+ printf("\t\tLPRXTimeOut: 0x%x\n", config->lp_rx_timeout);
+ printf("\t\tTurnAroundTimeOut: 0x%x\n", config->turn_around_timeout);
+ printf("\t\tDeviceResetTimer: 0x%x\n", config->device_reset_timer);
+ printf("\t\tMasterinitTimer: 0x%x\n", config->master_init_timer);
+ printf("\t\tDBIBandwidthTimer: 0x%x\n", config->dbi_bw_timer);
+ printf("\t\tLpByteClkValue: 0x%x\n\n", config->lp_byte_clk_val);
- printf("\tTimings based on Dphy spec\n");
- printf("\t\tTClkMiss: 0x%x\n", config->tclk_miss);
- printf("\t\tTClkPost: 0x%x\n", config->tclk_post);
- printf("\t\tTClkPre: 0x%x\n", config->tclk_pre);
- printf("\t\tTClkPrepare: 0x%x\n", config->tclk_prepare);
- printf("\t\tTClkSettle: 0x%x\n", config->tclk_settle);
- printf("\t\tTClkTermEnable: 0x%x\n\n", config->tclk_term_enable);
+ printf("\t\tDphy Params\n");
+ printf("\t\t\tExit to zero Count: 0x%x\n", config->exit_zero_cnt);
+ printf("\t\t\tTrail Count: 0x%X\n", config->trail_cnt);
+ printf("\t\t\tClk zero count: 0x%x\n", config->clk_zero_cnt);
+ printf("\t\t\tPrepare count:0x%x\n\n", config->prepare_cnt);
- printf("\tTClkTrail: 0x%x\n", config->tclk_trail);
- printf("\tTClkPrepareTClkZero: 0x%x\n", config->tclk_prepare_clkzero);
- printf("\tTHSExit: 0x%x\n", config->ths_exit);
- printf("\tTHsPrepare: 0x%x\n", config->ths_prepare);
- printf("\tTHsPrepareTHsZero: 0x%x\n", config->ths_prepare_hszero);
- printf("\tTHSSettle: 0x%x\n", config->ths_settle);
- printf("\tTHSSkip: 0x%x\n", config->ths_skip);
- printf("\tTHsTrail: 0x%x\n", config->ths_trail);
- printf("\tTInit: 0x%x\n", config->tinit);
- printf("\tTLPX: 0x%x\n", config->tlpx);
+ printf("\t\tClockLaneSwitchingCount: 0x%x\n", config->clk_lane_switch_cnt);
+ printf("\t\tHighToLowSwitchingCount: 0x%x\n\n", config->hl_switch_cnt);
- printf("\tMIPI PPS\n");
- printf("\t\tPanel power ON delay: %d\n", pps->panel_on_delay);
- printf("\t\tPanel power on to Backlight enable delay: %d\n", pps->bl_enable_delay);
- printf("\t\tBacklight disable to Panel power OFF delay: %d\n", pps->bl_disable_delay);
- printf("\t\tPanel power OFF delay: %d\n", pps->panel_off_delay);
- printf("\t\tPanel power cycle delay: %d\n", pps->panel_power_cycle_delay);
+ printf("\t\tTimings based on Dphy spec\n");
+ printf("\t\t\tTClkMiss: 0x%x\n", config->tclk_miss);
+ printf("\t\t\tTClkPost: 0x%x\n", config->tclk_post);
+ printf("\t\t\tTClkPre: 0x%x\n", config->tclk_pre);
+ printf("\t\t\tTClkPrepare: 0x%x\n", config->tclk_prepare);
+ printf("\t\t\tTClkSettle: 0x%x\n", config->tclk_settle);
+ printf("\t\t\tTClkTermEnable: 0x%x\n\n", config->tclk_term_enable);
+
+ printf("\t\tTClkTrail: 0x%x\n", config->tclk_trail);
+ printf("\t\tTClkPrepareTClkZero: 0x%x\n", config->tclk_prepare_clkzero);
+ printf("\t\tTHSExit: 0x%x\n", config->ths_exit);
+ printf("\t\tTHsPrepare: 0x%x\n", config->ths_prepare);
+ printf("\t\tTHsPrepareTHsZero: 0x%x\n", config->ths_prepare_hszero);
+ printf("\t\tTHSSettle: 0x%x\n", config->ths_settle);
+ printf("\t\tTHSSkip: 0x%x\n", config->ths_skip);
+ printf("\t\tTHsTrail: 0x%x\n", config->ths_trail);
+ printf("\t\tTInit: 0x%x\n", config->tinit);
+ printf("\t\tTLPX: 0x%x\n", config->tlpx);
+
+ printf("\t\tMIPI PPS\n");
+ printf("\t\t\tPanel power ON delay: %d\n", pps->panel_on_delay);
+ printf("\t\t\tPanel power on to Backlight enable delay: %d\n", pps->bl_enable_delay);
+ printf("\t\t\tBacklight disable to Panel power OFF delay: %d\n", pps->bl_disable_delay);
+ printf("\t\t\tPanel power OFF delay: %d\n", pps->panel_off_delay);
+ printf("\t\t\tPanel power cycle delay: %d\n", pps->panel_power_cycle_delay);
+
+ if (context->bdb->version >= 186)
+ printf("\t\tMIPI PWM delays:\n"
+ "\t\t\tPWM on to backlight enable: %d\n"
+ "\t\t\tBacklight disable to PWM off: %d\n",
+ pwm_delays->pwm_on_to_backlight_enable,
+ pwm_delays->backlight_disable_to_pwm_off);
+
+ if (context->bdb->version >= 190)
+ printf("\t\tMIPI PMIC I2C Bus Number: %d\n",
+ start->pmic_i2c_bus_number[i]);
+ }
}
static const uint8_t *mipi_dump_send_packet(const uint8_t *data, uint8_t seq_version)
@@ -1942,7 +1969,7 @@ static const uint8_t *mipi_dump_send_packet(const uint8_t *data, uint8_t seq_ver
len = *((const uint16_t *) data);
data += 2;
- printf("\t\tSend DCS: Port %s, VC %d, %s, Type %02x, Length %u, Data",
+ printf("\t\t\tSend DCS: Port %s, VC %d, %s, Type %02x, Length %u, Data",
(flags >> 3) & 1 ? "C" : "A",
(flags >> 1) & 3,
flags & 1 ? "HS" : "LP",
@@ -1957,7 +1984,7 @@ static const uint8_t *mipi_dump_send_packet(const uint8_t *data, uint8_t seq_ver
static const uint8_t *mipi_dump_delay(const uint8_t *data, uint8_t seq_version)
{
- printf("\t\tDelay: %u us\n", *((const uint32_t *)data));
+ printf("\t\t\tDelay: %u us\n", *((const uint32_t *)data));
return data + 4;
}
@@ -1971,13 +1998,13 @@ static const uint8_t *mipi_dump_gpio(const uint8_t *data, uint8_t seq_version)
number = *data++;
flags = *data++;
- printf("\t\tGPIO index %u, number %u, set %d (0x%02x)\n",
+ printf("\t\t\tGPIO index %u, number %u, set %d (0x%02x)\n",
index, number, flags & 1, flags);
} else {
index = *data++;
flags = *data++;
- printf("\t\tGPIO index %u, source %d, set %d (0x%02x)\n",
+ printf("\t\t\tGPIO index %u, source %d, set %d (0x%02x)\n",
index, (flags >> 1) & 3, flags & 1, flags);
}
@@ -1997,7 +2024,7 @@ static const uint8_t *mipi_dump_i2c(const uint8_t *data, uint8_t seq_version)
offset = *data++;
len = *data++;
- printf("\t\tSend I2C: Flags %02x, Index %02x, Bus %02x, Address %04x, Offset %02x, Length %u, Data",
+ printf("\t\t\tSend I2C: Flags %02x, Index %02x, Bus %02x, Address %04x, Offset %02x, Length %u, Data",
flags, index, bus, address, offset, len);
for (i = 0; i < len; i++)
printf(" %02x", *data++);
@@ -2041,7 +2068,7 @@ static const uint8_t *dump_sequence(const uint8_t *data, uint8_t seq_version)
{
fn_mipi_elem_dump mipi_elem_dump;
- printf("\tSequence %u - %s\n", *data, sequence_name(*data));
+ printf("\t\tSequence %u - %s\n", *data, sequence_name(*data));
/* Skip Sequence Byte. */
data++;
@@ -2247,10 +2274,6 @@ static void dump_mipi_sequence(struct context *context,
const struct bdb_block *block)
{
const struct bdb_mipi_sequence *sequence = block_data(block);
- const uint8_t *data;
- uint32_t seq_size;
- int index = 0, i;
- const uint8_t *sequence_ptrs[MIPI_SEQ_MAX] = {};
/* Check if we have sequence block as well */
if (!sequence) {
@@ -2267,38 +2290,51 @@ static void dump_mipi_sequence(struct context *context,
return;
}
- data = find_panel_sequence_block(sequence, context->panel_type,
- block->size, &seq_size);
- if (!data)
- return;
-
- /* Parse the sequences. Corresponds to VBT parsing in the kernel. */
- for (;;) {
- uint8_t seq_id = *(data + index);
- if (seq_id == MIPI_SEQ_END)
- break;
-
- if (seq_id >= MIPI_SEQ_MAX) {
- fprintf(stderr, "Unknown sequence %u\n", seq_id);
- return;
- }
+ for (int i = 0; i < MAX_MIPI_CONFIGURATIONS; i++) {
+ const uint8_t *sequence_ptrs[MIPI_SEQ_MAX] = {};
+ const uint8_t *data;
+ uint32_t seq_size;
+ int index = 0;
- sequence_ptrs[seq_id] = data + index;
+ if (i != context->panel_type && !context->dump_all_panel_types)
+ continue;
- if (sequence->version >= 3)
- index = goto_next_sequence_v3(data, index, seq_size);
- else
- index = goto_next_sequence(data, index, seq_size);
- if (!index) {
- fprintf(stderr, "Invalid sequence %u\n", seq_id);
+ data = find_panel_sequence_block(sequence, i,
+ block->size, &seq_size);
+ if (!data)
return;
+
+ printf("\tPanel %d%s\n", i,
+ context->panel_type == i ? " *" : "");
+
+ /* Parse the sequences. Corresponds to VBT parsing in the kernel. */
+ for (;;) {
+ uint8_t seq_id = *(data + index);
+ if (seq_id == MIPI_SEQ_END)
+ break;
+
+ if (seq_id >= MIPI_SEQ_MAX) {
+ fprintf(stderr, "Unknown sequence %u\n", seq_id);
+ return;
+ }
+
+ sequence_ptrs[seq_id] = data + index;
+
+ if (sequence->version >= 3)
+ index = goto_next_sequence_v3(data, index, seq_size);
+ else
+ index = goto_next_sequence(data, index, seq_size);
+ if (!index) {
+ fprintf(stderr, "Invalid sequence %u\n", seq_id);
+ return;
+ }
}
+
+ /* Dump the sequences. Corresponds to sequence execution in kernel. */
+ for (int j = 0; j < ARRAY_SIZE(sequence_ptrs); j++)
+ if (sequence_ptrs[j])
+ dump_sequence(sequence_ptrs[j], sequence->version);
}
-
- /* Dump the sequences. Corresponds to sequence execution in kernel. */
- for (i = 0; i < ARRAY_SIZE(sequence_ptrs); i++)
- if (sequence_ptrs[i])
- dump_sequence(sequence_ptrs[i], sequence->version);
}
#define KB(x) ((x) * 1024)
--
2.35.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [igt-dev] [PATCH i-g-t v2 17/17] tools/intel_vbt_decode: Print panel_type2
2022-09-06 12:29 [igt-dev] [PATCH i-g-t v2 00/17] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
` (15 preceding siblings ...)
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 16/17] tools/intel_vbt_decode: Dump all panels from MIPI blocks Ville Syrjala
@ 2022-09-06 12:29 ` Ville Syrjala
2022-09-06 12:47 ` [igt-dev] ✗ GitLab.Pipeline: warning for tools/intel_vbt_decode: Improve VBT decoder (rev2) Patchwork
` (3 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: Ville Syrjala @ 2022-09-06 12:29 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Print out the second panel type as well.
I decided to just get rid of the "(override %d)" stuff
as it doesn't really get us anything and doesn't really
make sense anyway when we have two possible panel types
to consider. The command line override may or may not match
either of those.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
tools/intel_vbt_decode.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index 8f48d43abe58..767853b64b3d 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -1130,11 +1130,9 @@ static void dump_lvds_options(struct context *context,
{
const struct bdb_lvds_options *options = block_data(block);
- if (context->panel_type == options->panel_type)
- printf("\tPanel type: %d\n", options->panel_type);
- else
- printf("\tPanel type: %d (override %d)\n",
- options->panel_type, context->panel_type);
+ printf("\tPanel type: %d\n", options->panel_type);
+ if (context->bdb->version >= 212)
+ printf("\tPanel type 2: %d\n", options->panel_type2);
printf("\tLVDS EDID available: %s\n", YESNO(options->lvds_edid));
printf("\tPixel dither: %s\n", YESNO(options->pixel_dither));
printf("\tPFIT auto ratio: %s\n", YESNO(options->pfit_ratio_auto));
--
2.35.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [igt-dev] ✗ GitLab.Pipeline: warning for tools/intel_vbt_decode: Improve VBT decoder (rev2)
2022-09-06 12:29 [igt-dev] [PATCH i-g-t v2 00/17] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
` (16 preceding siblings ...)
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 17/17] tools/intel_vbt_decode: Print panel_type2 Ville Syrjala
@ 2022-09-06 12:47 ` Patchwork
2022-09-06 12:59 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
` (2 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: Patchwork @ 2022-09-06 12:47 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: igt-dev
== Series Details ==
Series: tools/intel_vbt_decode: Improve VBT decoder (rev2)
URL : https://patchwork.freedesktop.org/series/106398/
State : warning
== Summary ==
Pipeline status: FAILED.
see https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/pipelines/681946 for the overview.
test:ninja-test-mips has failed (https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/jobs/27943052):
Ok: 22
Expected Fail: 3
Fail: 292
Unexpected Pass: 0
Skipped: 0
Timeout: 0
Full log written to /builds/gfx-ci/igt-ci-tags/build/meson-logs/testlog.txt
section_end:1662468216:step_script
section_start:1662468216:upload_artifacts_on_failure
Uploading artifacts for failed job
Uploading artifacts...
build: found 1773 matching files and directories
Uploading artifacts as "archive" to coordinator... 201 Created id=27943052 responseStatus=201 Created token=th5NsgJJ
section_end:1662468227:upload_artifacts_on_failure
section_start:1662468227:cleanup_file_variables
Cleaning up project directory and file based variables
section_end:1662468228:cleanup_file_variables
ERROR: Job failed: exit code 1
== Logs ==
For more details see: https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/pipelines/681946
^ permalink raw reply [flat|nested] 22+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for tools/intel_vbt_decode: Improve VBT decoder (rev2)
2022-09-06 12:29 [igt-dev] [PATCH i-g-t v2 00/17] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
` (17 preceding siblings ...)
2022-09-06 12:47 ` [igt-dev] ✗ GitLab.Pipeline: warning for tools/intel_vbt_decode: Improve VBT decoder (rev2) Patchwork
@ 2022-09-06 12:59 ` Patchwork
2022-09-06 14:03 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2022-09-07 8:17 ` [igt-dev] [PATCH i-g-t v2 00/17] tools/intel_vbt_decode: Improve VBT decoder Jani Nikula
20 siblings, 0 replies; 22+ messages in thread
From: Patchwork @ 2022-09-06 12:59 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 6045 bytes --]
== Series Details ==
Series: tools/intel_vbt_decode: Improve VBT decoder (rev2)
URL : https://patchwork.freedesktop.org/series/106398/
State : success
== Summary ==
CI Bug Log - changes from IGT_6646 -> IGTPW_7742
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/index.html
Participating hosts (42 -> 41)
------------------------------
Additional (1): bat-rpls-2
Missing (2): bat-dg2-8 fi-bdw-samus
Known issues
------------
Here are the changes found in IGTPW_7742 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_exec_suspend@basic-s3@smem:
- fi-rkl-11600: NOTRUN -> [INCOMPLETE][1] ([i915#6179])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/fi-rkl-11600/igt@gem_exec_suspend@basic-s3@smem.html
* igt@i915_selftest@live@execlists:
- fi-bsw-nick: [PASS][2] -> [INCOMPLETE][3] ([i915#5847])
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/fi-bsw-nick/igt@i915_selftest@live@execlists.html
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/fi-bsw-nick/igt@i915_selftest@live@execlists.html
* igt@kms_chamelium@common-hpd-after-suspend:
- fi-pnv-d510: NOTRUN -> [SKIP][4] ([fdo#109271])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/fi-pnv-d510/igt@kms_chamelium@common-hpd-after-suspend.html
* igt@runner@aborted:
- fi-bsw-nick: NOTRUN -> [FAIL][5] ([fdo#109271] / [i915#4312])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/fi-bsw-nick/igt@runner@aborted.html
#### Possible fixes ####
* igt@gem_exec_suspend@basic-s0@smem:
- {bat-rplp-1}: [DMESG-WARN][6] ([i915#2867]) -> [PASS][7] +1 similar issue
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/bat-rplp-1/igt@gem_exec_suspend@basic-s0@smem.html
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/bat-rplp-1/igt@gem_exec_suspend@basic-s0@smem.html
* igt@i915_module_load@load:
- {bat-adln-1}: [DMESG-WARN][8] ([i915#2867]) -> [PASS][9] +1 similar issue
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/bat-adln-1/igt@i915_module_load@load.html
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/bat-adln-1/igt@i915_module_load@load.html
* igt@i915_selftest@live@gem:
- fi-pnv-d510: [DMESG-FAIL][10] ([i915#4528]) -> [PASS][11]
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/fi-pnv-d510/igt@i915_selftest@live@gem.html
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/fi-pnv-d510/igt@i915_selftest@live@gem.html
* igt@i915_selftest@live@hangcheck:
- bat-dg1-5: [DMESG-FAIL][12] ([i915#4494] / [i915#4957]) -> [PASS][13]
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/bat-dg1-5/igt@i915_selftest@live@hangcheck.html
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/bat-dg1-5/igt@i915_selftest@live@hangcheck.html
* igt@i915_selftest@live@reset:
- {bat-rpls-1}: [DMESG-FAIL][14] ([i915#4983] / [i915#5828]) -> [PASS][15]
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/bat-rpls-1/igt@i915_selftest@live@reset.html
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/bat-rpls-1/igt@i915_selftest@live@reset.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions:
- fi-bsw-kefka: [FAIL][16] ([i915#6298]) -> [PASS][17]
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions.html
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions.html
#### Warnings ####
* igt@i915_suspend@basic-s3-without-i915:
- fi-rkl-11600: [INCOMPLETE][18] ([i915#5982]) -> [FAIL][19] ([fdo#103375])
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/fi-rkl-11600/igt@i915_suspend@basic-s3-without-i915.html
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/fi-rkl-11600/igt@i915_suspend@basic-s3-without-i915.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[i915#2867]: https://gitlab.freedesktop.org/drm/intel/issues/2867
[i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
[i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
[i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
[i915#4494]: https://gitlab.freedesktop.org/drm/intel/issues/4494
[i915#4528]: https://gitlab.freedesktop.org/drm/intel/issues/4528
[i915#4957]: https://gitlab.freedesktop.org/drm/intel/issues/4957
[i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
[i915#5828]: https://gitlab.freedesktop.org/drm/intel/issues/5828
[i915#5847]: https://gitlab.freedesktop.org/drm/intel/issues/5847
[i915#5982]: https://gitlab.freedesktop.org/drm/intel/issues/5982
[i915#6179]: https://gitlab.freedesktop.org/drm/intel/issues/6179
[i915#6298]: https://gitlab.freedesktop.org/drm/intel/issues/6298
[i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367
[i915#6730]: https://gitlab.freedesktop.org/drm/intel/issues/6730
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_6646 -> IGTPW_7742
CI-20190529: 20190529
CI_DRM_12074: c16b937da799ddbebf0d940aff159b96ce9fec0f @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_7742: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/index.html
IGT_6646: c1f420ae84b76079cd32ac014cfdf95b5f2922f7 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/index.html
[-- Attachment #2: Type: text/html, Size: 6707 bytes --]
^ permalink raw reply [flat|nested] 22+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for tools/intel_vbt_decode: Improve VBT decoder (rev2)
2022-09-06 12:29 [igt-dev] [PATCH i-g-t v2 00/17] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
` (18 preceding siblings ...)
2022-09-06 12:59 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
@ 2022-09-06 14:03 ` Patchwork
2022-09-07 8:17 ` [igt-dev] [PATCH i-g-t v2 00/17] tools/intel_vbt_decode: Improve VBT decoder Jani Nikula
20 siblings, 0 replies; 22+ messages in thread
From: Patchwork @ 2022-09-06 14:03 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 48925 bytes --]
== Series Details ==
Series: tools/intel_vbt_decode: Improve VBT decoder (rev2)
URL : https://patchwork.freedesktop.org/series/106398/
State : success
== Summary ==
CI Bug Log - changes from IGT_6646_full -> IGTPW_7742_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/index.html
Participating hosts (10 -> 10)
------------------------------
No changes in participating hosts
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_7742_full:
### IGT changes ###
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses.
They do not affect the overall result.
* igt@kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling@pipe-a-valid-mode:
- {shard-dg1}: NOTRUN -> [FAIL][1]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-dg1-19/igt@kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling@pipe-a-valid-mode.html
New tests
---------
New tests have been introduced between IGT_6646_full and IGTPW_7742_full:
### New IGT tests (16) ###
* igt@kms_cursor_crc@cursor-offscreen-64x64@pipe-a-hdmi-a-4:
- Statuses : 1 pass(s)
- Exec time: [2.51] s
* igt@kms_cursor_crc@cursor-offscreen-64x64@pipe-b-hdmi-a-4:
- Statuses : 1 pass(s)
- Exec time: [2.42] s
* igt@kms_cursor_crc@cursor-offscreen-64x64@pipe-c-hdmi-a-4:
- Statuses : 1 pass(s)
- Exec time: [2.38] s
* igt@kms_cursor_crc@cursor-offscreen-64x64@pipe-d-hdmi-a-4:
- Statuses : 1 pass(s)
- Exec time: [2.40] s
* igt@kms_cursor_crc@cursor-sliding-64x21@pipe-a-hdmi-a-4:
- Statuses : 1 pass(s)
- Exec time: [5.71] s
* igt@kms_cursor_crc@cursor-sliding-64x21@pipe-b-hdmi-a-4:
- Statuses : 1 pass(s)
- Exec time: [5.62] s
* igt@kms_cursor_crc@cursor-sliding-64x21@pipe-c-hdmi-a-4:
- Statuses : 1 pass(s)
- Exec time: [5.48] s
* igt@kms_cursor_crc@cursor-sliding-64x21@pipe-d-hdmi-a-4:
- Statuses : 1 pass(s)
- Exec time: [5.53] s
* igt@kms_cursor_crc@cursor-sliding-64x64@pipe-a-hdmi-a-4:
- Statuses : 1 pass(s)
- Exec time: [5.76] s
* igt@kms_cursor_crc@cursor-sliding-64x64@pipe-b-hdmi-a-4:
- Statuses : 1 pass(s)
- Exec time: [5.38] s
* igt@kms_cursor_crc@cursor-sliding-64x64@pipe-c-hdmi-a-4:
- Statuses : 1 pass(s)
- Exec time: [5.60] s
* igt@kms_cursor_crc@cursor-sliding-64x64@pipe-d-hdmi-a-4:
- Statuses : 1 pass(s)
- Exec time: [5.43] s
* igt@kms_flip@basic-flip-vs-modeset@a-hdmi-a4:
- Statuses : 1 pass(s)
- Exec time: [0.73] s
* igt@kms_flip@basic-flip-vs-modeset@b-hdmi-a4:
- Statuses : 1 pass(s)
- Exec time: [0.65] s
* igt@kms_flip@basic-flip-vs-modeset@c-hdmi-a4:
- Statuses : 1 pass(s)
- Exec time: [0.64] s
* igt@kms_flip@basic-flip-vs-modeset@d-hdmi-a4:
- Statuses : 1 pass(s)
- Exec time: [0.62] s
Known issues
------------
Here are the changes found in IGTPW_7742_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_busy@close-race:
- shard-snb: [PASS][2] -> [TIMEOUT][3] ([i915#5748])
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-snb4/igt@gem_busy@close-race.html
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-snb2/igt@gem_busy@close-race.html
* igt@gem_eio@kms:
- shard-tglb: [PASS][4] -> [FAIL][5] ([i915#5784]) +1 similar issue
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-tglb6/igt@gem_eio@kms.html
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-tglb5/igt@gem_eio@kms.html
* igt@gem_eio@unwedge-stress:
- shard-iclb: [PASS][6] -> [TIMEOUT][7] ([i915#3070])
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-iclb5/igt@gem_eio@unwedge-stress.html
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-iclb7/igt@gem_eio@unwedge-stress.html
* igt@gem_exec_balancer@parallel-contexts:
- shard-iclb: [PASS][8] -> [SKIP][9] ([i915#4525]) +2 similar issues
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-iclb1/igt@gem_exec_balancer@parallel-contexts.html
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-iclb8/igt@gem_exec_balancer@parallel-contexts.html
* igt@gem_exec_fair@basic-deadline:
- shard-glk: [PASS][10] -> [FAIL][11] ([i915#2846])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-glk9/igt@gem_exec_fair@basic-deadline.html
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-glk3/igt@gem_exec_fair@basic-deadline.html
* igt@gem_exec_fair@basic-none@vecs0:
- shard-glk: [PASS][12] -> [FAIL][13] ([i915#2842])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-glk1/igt@gem_exec_fair@basic-none@vecs0.html
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-glk9/igt@gem_exec_fair@basic-none@vecs0.html
* igt@gem_exec_fair@basic-pace@vcs1:
- shard-iclb: NOTRUN -> [FAIL][14] ([i915#2842])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-iclb1/igt@gem_exec_fair@basic-pace@vcs1.html
* igt@gem_huc_copy@huc-copy:
- shard-tglb: [PASS][15] -> [SKIP][16] ([i915#2190])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-tglb1/igt@gem_huc_copy@huc-copy.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-tglb7/igt@gem_huc_copy@huc-copy.html
* igt@gem_lmem_swapping@verify:
- shard-apl: NOTRUN -> [SKIP][17] ([fdo#109271] / [i915#4613])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-apl4/igt@gem_lmem_swapping@verify.html
- shard-glk: NOTRUN -> [SKIP][18] ([fdo#109271] / [i915#4613])
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-glk3/igt@gem_lmem_swapping@verify.html
* igt@gem_render_copy@y-tiled-to-vebox-y-tiled:
- shard-iclb: NOTRUN -> [SKIP][19] ([i915#768])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-iclb2/igt@gem_render_copy@y-tiled-to-vebox-y-tiled.html
* igt@gen9_exec_parse@allowed-all:
- shard-glk: [PASS][20] -> [DMESG-WARN][21] ([i915#5566] / [i915#716])
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-glk2/igt@gen9_exec_parse@allowed-all.html
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-glk9/igt@gen9_exec_parse@allowed-all.html
* igt@i915_pm_dc@dc5-psr:
- shard-tglb: [PASS][22] -> [FAIL][23] ([i915#3989])
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-tglb6/igt@i915_pm_dc@dc5-psr.html
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-tglb7/igt@i915_pm_dc@dc5-psr.html
* igt@i915_pm_dc@dc6-dpms:
- shard-iclb: [PASS][24] -> [FAIL][25] ([i915#454]) +1 similar issue
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-iclb5/igt@i915_pm_dc@dc6-dpms.html
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-iclb3/igt@i915_pm_dc@dc6-dpms.html
* igt@i915_pm_dc@dc9-dpms:
- shard-iclb: [PASS][26] -> [SKIP][27] ([i915#4281])
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-iclb7/igt@i915_pm_dc@dc9-dpms.html
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-iclb3/igt@i915_pm_dc@dc9-dpms.html
* igt@i915_suspend@debugfs-reader:
- shard-apl: [PASS][28] -> [DMESG-WARN][29] ([i915#180]) +3 similar issues
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-apl4/igt@i915_suspend@debugfs-reader.html
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-apl7/igt@i915_suspend@debugfs-reader.html
* igt@kms_big_fb@4-tiled-32bpp-rotate-90:
- shard-apl: NOTRUN -> [SKIP][30] ([fdo#109271]) +46 similar issues
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-apl7/igt@kms_big_fb@4-tiled-32bpp-rotate-90.html
* igt@kms_big_fb@4-tiled-64bpp-rotate-90:
- shard-tglb: NOTRUN -> [SKIP][31] ([i915#5286]) +1 similar issue
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-tglb1/igt@kms_big_fb@4-tiled-64bpp-rotate-90.html
- shard-iclb: NOTRUN -> [SKIP][32] ([i915#5286]) +1 similar issue
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-iclb2/igt@kms_big_fb@4-tiled-64bpp-rotate-90.html
* igt@kms_ccs@pipe-b-bad-aux-stride-y_tiled_gen12_mc_ccs:
- shard-apl: NOTRUN -> [SKIP][33] ([fdo#109271] / [i915#3886]) +1 similar issue
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-apl4/igt@kms_ccs@pipe-b-bad-aux-stride-y_tiled_gen12_mc_ccs.html
- shard-tglb: NOTRUN -> [SKIP][34] ([i915#3689] / [i915#3886])
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-tglb6/igt@kms_ccs@pipe-b-bad-aux-stride-y_tiled_gen12_mc_ccs.html
- shard-iclb: NOTRUN -> [SKIP][35] ([fdo#109278] / [i915#3886])
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-iclb8/igt@kms_ccs@pipe-b-bad-aux-stride-y_tiled_gen12_mc_ccs.html
* igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_gen12_rc_ccs_cc:
- shard-glk: NOTRUN -> [SKIP][36] ([fdo#109271] / [i915#3886]) +2 similar issues
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-glk2/igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_gen12_rc_ccs_cc.html
* igt@kms_ccs@pipe-b-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs:
- shard-tglb: NOTRUN -> [SKIP][37] ([i915#6095])
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-tglb6/igt@kms_ccs@pipe-b-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs.html
* igt@kms_ccs@pipe-c-crc-primary-rotation-180-y_tiled_gen12_rc_ccs:
- shard-iclb: NOTRUN -> [SKIP][38] ([fdo#109278]) +1 similar issue
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-iclb1/igt@kms_ccs@pipe-c-crc-primary-rotation-180-y_tiled_gen12_rc_ccs.html
* igt@kms_chamelium@dp-hpd-after-suspend:
- shard-apl: NOTRUN -> [SKIP][39] ([fdo#109271] / [fdo#111827]) +1 similar issue
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-apl6/igt@kms_chamelium@dp-hpd-after-suspend.html
- shard-tglb: NOTRUN -> [SKIP][40] ([fdo#109284] / [fdo#111827])
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-tglb7/igt@kms_chamelium@dp-hpd-after-suspend.html
- shard-glk: NOTRUN -> [SKIP][41] ([fdo#109271] / [fdo#111827]) +1 similar issue
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-glk6/igt@kms_chamelium@dp-hpd-after-suspend.html
- shard-iclb: NOTRUN -> [SKIP][42] ([fdo#109284] / [fdo#111827])
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-iclb2/igt@kms_chamelium@dp-hpd-after-suspend.html
- shard-snb: NOTRUN -> [SKIP][43] ([fdo#109271] / [fdo#111827])
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-snb4/igt@kms_chamelium@dp-hpd-after-suspend.html
* igt@kms_content_protection@legacy:
- shard-apl: NOTRUN -> [TIMEOUT][44] ([i915#1319])
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-apl8/igt@kms_content_protection@legacy.html
* igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic:
- shard-glk: [PASS][45] -> [FAIL][46] ([i915#72])
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-glk2/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-glk7/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html
* igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy:
- shard-tglb: NOTRUN -> [SKIP][47] ([fdo#109274] / [fdo#111825])
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-tglb5/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy.html
- shard-iclb: NOTRUN -> [SKIP][48] ([fdo#109274])
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-iclb1/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy.html
* igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size:
- shard-glk: [PASS][49] -> [FAIL][50] ([i915#2346])
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-glk3/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-glk8/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-default-mode:
- shard-iclb: NOTRUN -> [SKIP][51] ([i915#2672]) +10 similar issues
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-iclb3/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling@pipe-a-default-mode:
- shard-iclb: NOTRUN -> [SKIP][52] ([i915#3555]) +2 similar issues
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-iclb2/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling@pipe-a-default-mode:
- shard-iclb: NOTRUN -> [SKIP][53] ([i915#2672] / [i915#3555])
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-iclb2/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling@pipe-a-default-mode.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-render:
- shard-iclb: NOTRUN -> [SKIP][54] ([fdo#109280]) +1 similar issue
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-iclb5/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-mmap-cpu:
- shard-tglb: NOTRUN -> [SKIP][55] ([fdo#109280] / [fdo#111825]) +1 similar issue
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-tglb3/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-mmap-cpu.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-mmap-cpu:
- shard-glk: NOTRUN -> [SKIP][56] ([fdo#109271]) +43 similar issues
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-glk9/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-mmap-cpu.html
* igt@kms_hdmi_inject@inject-audio:
- shard-tglb: [PASS][57] -> [SKIP][58] ([i915#433])
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-tglb2/igt@kms_hdmi_inject@inject-audio.html
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-tglb6/igt@kms_hdmi_inject@inject-audio.html
* igt@kms_hdr@bpc-switch-suspend:
- shard-tglb: NOTRUN -> [SKIP][59] ([i915#3555])
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-tglb2/igt@kms_hdr@bpc-switch-suspend.html
* igt@kms_psr2_su@frontbuffer-xrgb8888:
- shard-glk: NOTRUN -> [SKIP][60] ([fdo#109271] / [i915#658])
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-glk9/igt@kms_psr2_su@frontbuffer-xrgb8888.html
- shard-apl: NOTRUN -> [SKIP][61] ([fdo#109271] / [i915#658])
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-apl6/igt@kms_psr2_su@frontbuffer-xrgb8888.html
* igt@kms_psr@psr2_cursor_plane_move:
- shard-tglb: NOTRUN -> [FAIL][62] ([i915#132] / [i915#3467])
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-tglb2/igt@kms_psr@psr2_cursor_plane_move.html
- shard-iclb: NOTRUN -> [SKIP][63] ([fdo#109441])
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-iclb4/igt@kms_psr@psr2_cursor_plane_move.html
* igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
- shard-iclb: [PASS][64] -> [SKIP][65] ([i915#5519])
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-iclb3/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-iclb5/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
* igt@kms_psr_stress_test@invalidate-primary-flip-overlay:
- shard-tglb: [PASS][66] -> [SKIP][67] ([i915#5519])
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-tglb5/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-tglb5/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html
* igt@kms_vblank@pipe-c-wait-forked-hang:
- shard-apl: [PASS][68] -> [SKIP][69] ([fdo#109271])
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-apl2/igt@kms_vblank@pipe-c-wait-forked-hang.html
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-apl6/igt@kms_vblank@pipe-c-wait-forked-hang.html
- shard-glk: [PASS][70] -> [SKIP][71] ([fdo#109271])
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-glk1/igt@kms_vblank@pipe-c-wait-forked-hang.html
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-glk6/igt@kms_vblank@pipe-c-wait-forked-hang.html
* igt@perf@stress-open-close:
- shard-glk: [PASS][72] -> [INCOMPLETE][73] ([i915#5213])
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-glk7/igt@perf@stress-open-close.html
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-glk9/igt@perf@stress-open-close.html
* igt@sysfs_clients@sema-50:
- shard-snb: NOTRUN -> [SKIP][74] ([fdo#109271]) +54 similar issues
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-snb2/igt@sysfs_clients@sema-50.html
- shard-apl: NOTRUN -> [SKIP][75] ([fdo#109271] / [i915#2994])
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-apl2/igt@sysfs_clients@sema-50.html
- shard-tglb: NOTRUN -> [SKIP][76] ([i915#2994])
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-tglb3/igt@sysfs_clients@sema-50.html
- shard-glk: NOTRUN -> [SKIP][77] ([fdo#109271] / [i915#2994])
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-glk5/igt@sysfs_clients@sema-50.html
- shard-iclb: NOTRUN -> [SKIP][78] ([i915#2994])
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-iclb3/igt@sysfs_clients@sema-50.html
#### Possible fixes ####
* igt@fbdev@unaligned-write:
- {shard-rkl}: [SKIP][79] ([i915#2582]) -> [PASS][80]
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-rkl-4/igt@fbdev@unaligned-write.html
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-rkl-6/igt@fbdev@unaligned-write.html
* igt@gem_ctx_persistence@hang:
- {shard-rkl}: [SKIP][81] ([i915#6252]) -> [PASS][82]
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-rkl-5/igt@gem_ctx_persistence@hang.html
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-rkl-1/igt@gem_ctx_persistence@hang.html
* igt@gem_ctx_persistence@many-contexts:
- {shard-rkl}: [FAIL][83] ([i915#2410]) -> [PASS][84]
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-rkl-1/igt@gem_ctx_persistence@many-contexts.html
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-rkl-5/igt@gem_ctx_persistence@many-contexts.html
* igt@gem_eio@in-flight-contexts-1us:
- shard-glk: [TIMEOUT][85] ([i915#3063]) -> [PASS][86]
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-glk5/igt@gem_eio@in-flight-contexts-1us.html
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-glk2/igt@gem_eio@in-flight-contexts-1us.html
* igt@gem_eio@in-flight-contexts-immediate:
- {shard-rkl}: [TIMEOUT][87] ([i915#3063] / [i915#6637]) -> [PASS][88]
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-rkl-6/igt@gem_eio@in-flight-contexts-immediate.html
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-rkl-1/igt@gem_eio@in-flight-contexts-immediate.html
* igt@gem_eio@reset-stress:
- shard-tglb: [FAIL][89] ([i915#5784]) -> [PASS][90]
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-tglb1/igt@gem_eio@reset-stress.html
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-tglb1/igt@gem_eio@reset-stress.html
* igt@gem_eio@unwedge-stress:
- {shard-tglu}: [TIMEOUT][91] ([i915#3063]) -> [PASS][92]
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-tglu-5/igt@gem_eio@unwedge-stress.html
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-tglu-2/igt@gem_eio@unwedge-stress.html
* igt@gem_exec_balancer@parallel-keep-submit-fence:
- shard-iclb: [SKIP][93] ([i915#4525]) -> [PASS][94] +1 similar issue
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-iclb7/igt@gem_exec_balancer@parallel-keep-submit-fence.html
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-iclb2/igt@gem_exec_balancer@parallel-keep-submit-fence.html
* igt@gem_exec_fair@basic-pace-share@rcs0:
- shard-glk: [FAIL][95] ([i915#2842]) -> [PASS][96] +1 similar issue
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-glk9/igt@gem_exec_fair@basic-pace-share@rcs0.html
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-glk1/igt@gem_exec_fair@basic-pace-share@rcs0.html
* igt@gem_exec_fair@basic-pace-solo@rcs0:
- shard-apl: [FAIL][97] ([i915#2842]) -> [PASS][98]
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-apl6/igt@gem_exec_fair@basic-pace-solo@rcs0.html
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-apl8/igt@gem_exec_fair@basic-pace-solo@rcs0.html
* igt@gem_exec_fair@basic-pace@vecs0:
- {shard-rkl}: [FAIL][99] ([i915#2842]) -> [PASS][100]
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-rkl-2/igt@gem_exec_fair@basic-pace@vecs0.html
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-rkl-5/igt@gem_exec_fair@basic-pace@vecs0.html
* igt@gem_exec_fair@basic-throttle@rcs0:
- shard-iclb: [FAIL][101] ([i915#2842]) -> [PASS][102]
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-iclb2/igt@gem_exec_fair@basic-throttle@rcs0.html
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-iclb2/igt@gem_exec_fair@basic-throttle@rcs0.html
* igt@gem_exec_reloc@basic-write-read:
- {shard-rkl}: [SKIP][103] ([i915#3281]) -> [PASS][104] +9 similar issues
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-rkl-2/igt@gem_exec_reloc@basic-write-read.html
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-rkl-5/igt@gem_exec_reloc@basic-write-read.html
* igt@gem_exec_schedule@semaphore-power:
- {shard-rkl}: [SKIP][105] ([fdo#110254]) -> [PASS][106]
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-rkl-4/igt@gem_exec_schedule@semaphore-power.html
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-rkl-5/igt@gem_exec_schedule@semaphore-power.html
* igt@gem_mmap_wc@set-cache-level:
- {shard-rkl}: [SKIP][107] ([i915#1850]) -> [PASS][108]
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-rkl-1/igt@gem_mmap_wc@set-cache-level.html
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-rkl-6/igt@gem_mmap_wc@set-cache-level.html
* igt@gem_pread@snoop:
- {shard-rkl}: [SKIP][109] ([i915#3282]) -> [PASS][110] +2 similar issues
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-rkl-1/igt@gem_pread@snoop.html
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-rkl-5/igt@gem_pread@snoop.html
* igt@gem_softpin@evict-single-offset:
- shard-tglb: [FAIL][111] ([i915#4171]) -> [PASS][112]
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-tglb1/igt@gem_softpin@evict-single-offset.html
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-tglb2/igt@gem_softpin@evict-single-offset.html
- shard-iclb: [FAIL][113] ([i915#4171]) -> [PASS][114]
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-iclb4/igt@gem_softpin@evict-single-offset.html
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-iclb6/igt@gem_softpin@evict-single-offset.html
* igt@gen9_exec_parse@allowed-single:
- shard-apl: [DMESG-WARN][115] ([i915#5566] / [i915#716]) -> [PASS][116]
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-apl8/igt@gen9_exec_parse@allowed-single.html
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-apl1/igt@gen9_exec_parse@allowed-single.html
- shard-glk: [DMESG-WARN][117] ([i915#5566] / [i915#716]) -> [PASS][118]
[117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-glk9/igt@gen9_exec_parse@allowed-single.html
[118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-glk1/igt@gen9_exec_parse@allowed-single.html
* igt@gen9_exec_parse@basic-rejected:
- {shard-rkl}: [SKIP][119] ([i915#2527]) -> [PASS][120]
[119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-rkl-1/igt@gen9_exec_parse@basic-rejected.html
[120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-rkl-5/igt@gen9_exec_parse@basic-rejected.html
* igt@i915_hangman@engine-engine-error@bcs0:
- {shard-rkl}: [SKIP][121] ([i915#6258]) -> [PASS][122]
[121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-rkl-5/igt@i915_hangman@engine-engine-error@bcs0.html
[122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-rkl-4/igt@i915_hangman@engine-engine-error@bcs0.html
* igt@i915_pm_dc@dc6-psr:
- {shard-rkl}: [SKIP][123] ([i915#658]) -> [PASS][124]
[123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-rkl-1/igt@i915_pm_dc@dc6-psr.html
[124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-rkl-6/igt@i915_pm_dc@dc6-psr.html
* igt@i915_pm_rpm@dpms-mode-unset-non-lpsp:
- {shard-dg1}: [SKIP][125] ([i915#1397]) -> [PASS][126]
[125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-dg1-19/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html
[126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-dg1-15/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html
* igt@i915_selftest@live@hangcheck:
- shard-snb: [INCOMPLETE][127] ([i915#3921]) -> [PASS][128]
[127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-snb5/igt@i915_selftest@live@hangcheck.html
[128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-snb6/igt@i915_selftest@live@hangcheck.html
* igt@i915_selftest@perf@engine_cs:
- shard-tglb: [DMESG-WARN][129] ([i915#2867]) -> [PASS][130] +3 similar issues
[129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-tglb3/igt@i915_selftest@perf@engine_cs.html
[130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-tglb1/igt@i915_selftest@perf@engine_cs.html
* igt@kms_big_fb@x-tiled-64bpp-rotate-0:
- shard-iclb: [FAIL][131] ([i915#1888]) -> [PASS][132]
[131]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-iclb6/igt@kms_big_fb@x-tiled-64bpp-rotate-0.html
[132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-iclb8/igt@kms_big_fb@x-tiled-64bpp-rotate-0.html
* igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip:
- {shard-rkl}: [SKIP][133] ([i915#1845] / [i915#4098]) -> [PASS][134] +17 similar issues
[133]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-rkl-2/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
[134]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-rkl-6/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
* igt@kms_fbcon_fbt@fbc-suspend:
- {shard-rkl}: [SKIP][135] ([i915#4098]) -> [PASS][136]
[135]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-rkl-4/igt@kms_fbcon_fbt@fbc-suspend.html
[136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-rkl-6/igt@kms_fbcon_fbt@fbc-suspend.html
* igt@kms_flip@flip-vs-suspend-interruptible@c-edp1:
- shard-iclb: [DMESG-WARN][137] ([i915#2867]) -> [PASS][138]
[137]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-iclb1/igt@kms_flip@flip-vs-suspend-interruptible@c-edp1.html
[138]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-iclb4/igt@kms_flip@flip-vs-suspend-interruptible@c-edp1.html
* igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-mmap-cpu:
- shard-glk: [FAIL][139] ([i915#1888] / [i915#2546]) -> [PASS][140]
[139]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-glk2/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-mmap-cpu.html
[140]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-glk3/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-mmap-cpu.html
* igt@kms_frontbuffer_tracking@fbc-rgb565-draw-render:
- {shard-rkl}: [SKIP][141] ([i915#1849] / [i915#4098]) -> [PASS][142] +10 similar issues
[141]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-rkl-4/igt@kms_frontbuffer_tracking@fbc-rgb565-draw-render.html
[142]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-rgb565-draw-render.html
* igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-b-hdmi-a-2:
- shard-glk: [FAIL][143] -> [PASS][144]
[143]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-glk2/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-b-hdmi-a-2.html
[144]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-glk1/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-b-hdmi-a-2.html
* igt@kms_plane_alpha_blend@pipe-b-coverage-vs-premult-vs-constant:
- {shard-rkl}: [SKIP][145] ([i915#3546] / [i915#4098]) -> [PASS][146]
[145]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-rkl-4/igt@kms_plane_alpha_blend@pipe-b-coverage-vs-premult-vs-constant.html
[146]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-rkl-6/igt@kms_plane_alpha_blend@pipe-b-coverage-vs-premult-vs-constant.html
* igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5@pipe-b-edp-1:
- shard-iclb: [SKIP][147] ([i915#5235]) -> [PASS][148] +2 similar issues
[147]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-iclb2/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5@pipe-b-edp-1.html
[148]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-iclb7/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5@pipe-b-edp-1.html
* igt@kms_psr2_su@frontbuffer-xrgb8888:
- shard-iclb: [SKIP][149] ([fdo#109642] / [fdo#111068] / [i915#658]) -> [PASS][150]
[149]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-iclb7/igt@kms_psr2_su@frontbuffer-xrgb8888.html
[150]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-iclb2/igt@kms_psr2_su@frontbuffer-xrgb8888.html
* igt@kms_psr@cursor_render:
- {shard-rkl}: [SKIP][151] ([i915#1072]) -> [PASS][152] +2 similar issues
[151]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-rkl-4/igt@kms_psr@cursor_render.html
[152]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-rkl-6/igt@kms_psr@cursor_render.html
* igt@kms_universal_plane@disable-primary-vs-flip-pipe-b:
- {shard-rkl}: [SKIP][153] ([i915#1845] / [i915#4070] / [i915#4098]) -> [PASS][154]
[153]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-rkl-1/igt@kms_universal_plane@disable-primary-vs-flip-pipe-b.html
[154]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-rkl-6/igt@kms_universal_plane@disable-primary-vs-flip-pipe-b.html
* igt@perf@gen12-oa-tlb-invalidate:
- {shard-rkl}: [SKIP][155] ([fdo#109289]) -> [PASS][156]
[155]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-rkl-5/igt@perf@gen12-oa-tlb-invalidate.html
[156]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-rkl-6/igt@perf@gen12-oa-tlb-invalidate.html
* igt@perf@polling-small-buf:
- {shard-rkl}: [FAIL][157] ([i915#1722]) -> [PASS][158]
[157]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-rkl-4/igt@perf@polling-small-buf.html
[158]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-rkl-5/igt@perf@polling-small-buf.html
* igt@prime_vgem@basic-read:
- {shard-rkl}: [SKIP][159] ([fdo#109295] / [i915#3291] / [i915#3708]) -> [PASS][160]
[159]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-rkl-4/igt@prime_vgem@basic-read.html
[160]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-rkl-5/igt@prime_vgem@basic-read.html
* igt@sysfs_heartbeat_interval@precise@vcs0:
- {shard-rkl}: [FAIL][161] ([i915#1755]) -> [PASS][162]
[161]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-rkl-5/igt@sysfs_heartbeat_interval@precise@vcs0.html
[162]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-rkl-4/igt@sysfs_heartbeat_interval@precise@vcs0.html
* igt@testdisplay:
- {shard-tglu}: [DMESG-WARN][163] ([i915#4941]) -> [PASS][164]
[163]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-tglu-4/igt@testdisplay.html
[164]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-tglu-1/igt@testdisplay.html
#### Warnings ####
* igt@gem_exec_balancer@parallel-ordering:
- shard-iclb: [FAIL][165] ([i915#6117]) -> [SKIP][166] ([i915#4525])
[165]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-iclb1/igt@gem_exec_balancer@parallel-ordering.html
[166]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-iclb5/igt@gem_exec_balancer@parallel-ordering.html
* igt@kms_psr2_sf@cursor-plane-move-continuous-exceed-sf:
- shard-iclb: [SKIP][167] ([i915#658]) -> [SKIP][168] ([i915#2920])
[167]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-iclb3/igt@kms_psr2_sf@cursor-plane-move-continuous-exceed-sf.html
[168]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-iclb2/igt@kms_psr2_sf@cursor-plane-move-continuous-exceed-sf.html
* igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area:
- shard-iclb: [SKIP][169] ([fdo#111068] / [i915#658]) -> [SKIP][170] ([i915#2920])
[169]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-iclb6/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area.html
[170]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-iclb2/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area.html
* igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb:
- shard-iclb: [SKIP][171] ([i915#2920]) -> [SKIP][172] ([i915#658])
[171]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-iclb2/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb.html
[172]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-iclb1/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb.html
* igt@kms_psr2_su@page_flip-p010:
- shard-iclb: [FAIL][173] ([i915#5939]) -> [SKIP][174] ([fdo#109642] / [fdo#111068] / [i915#658])
[173]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-iclb2/igt@kms_psr2_su@page_flip-p010.html
[174]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-iclb6/igt@kms_psr2_su@page_flip-p010.html
* igt@runner@aborted:
- shard-apl: ([FAIL][175], [FAIL][176], [FAIL][177]) ([fdo#109271] / [i915#3002] / [i915#4312] / [i915#5257] / [i915#6599]) -> ([FAIL][178], [FAIL][179], [FAIL][180], [FAIL][181], [FAIL][182]) ([i915#180] / [i915#3002] / [i915#4312] / [i915#5257] / [i915#6599])
[175]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-apl8/igt@runner@aborted.html
[176]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-apl3/igt@runner@aborted.html
[177]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6646/shard-apl1/igt@runner@aborted.html
[178]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-apl8/igt@runner@aborted.html
[179]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-apl4/igt@runner@aborted.html
[180]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-apl7/igt@runner@aborted.html
[181]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-apl3/igt@runner@aborted.html
[182]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/shard-apl2/igt@runner@aborted.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
[fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
[fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
[fdo#109283]: https://bugs.freedesktop.org/show_bug.cgi?id=109283
[fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284
[fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
[fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291
[fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
[fdo#109300]: https://bugs.freedesktop.org/show_bug.cgi?id=109300
[fdo#109308]: https://bugs.freedesktop.org/show_bug.cgi?id=109308
[fdo#109309]: https://bugs.freedesktop.org/show_bug.cgi?id=109309
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506
[fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
[fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
[fdo#110254]: https://bugs.freedesktop.org/show_bug.cgi?id=110254
[fdo#110542]: https://bugs.freedesktop.org/show_bug.cgi?id=110542
[fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723
[fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
[fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
[fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
[fdo#111644]: https://bugs.freedesktop.org/show_bug.cgi?id=111644
[fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[fdo#112054]: https://bugs.freedesktop.org/show_bug.cgi?id=112054
[fdo#112283]: https://bugs.freedesktop.org/show_bug.cgi?id=112283
[i915#1063]: https://gitlab.freedesktop.org/drm/intel/issues/1063
[i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
[i915#1155]: https://gitlab.freedesktop.org/drm/intel/issues/1155
[i915#1319]: https://gitlab.freedesktop.org/drm/intel/issues/1319
[i915#132]: https://gitlab.freedesktop.org/drm/intel/issues/132
[i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
[i915#1722]: https://gitlab.freedesktop.org/drm/intel/issues/1722
[i915#1755]: https://gitlab.freedesktop.org/drm/intel/issues/1755
[i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
[i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
[i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
[i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849
[i915#1850]: https://gitlab.freedesktop.org/drm/intel/issues/1850
[i915#1888]: https://gitlab.freedesktop.org/drm/intel/issues/1888
[i915#1911]: https://gitlab.freedesktop.org/drm/intel/issues/1911
[i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
[i915#2232]: https://gitlab.freedesktop.org/drm/intel/issues/2232
[i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
[i915#2410]: https://gitlab.freedesktop.org/drm/intel/issues/2410
[i915#2433]: https://gitlab.freedesktop.org/drm/intel/issues/2433
[i915#2434]: https://gitlab.freedesktop.org/drm/intel/issues/2434
[i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
[i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
[i915#2530]: https://gitlab.freedesktop.org/drm/intel/issues/2530
[i915#2546]: https://gitlab.freedesktop.org/drm/intel/issues/2546
[i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
[i915#2658]: https://gitlab.freedesktop.org/drm/intel/issues/2658
[i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
[i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681
[i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705
[i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280
[i915#284]: https://gitlab.freedesktop.org/drm/intel/issues/284
[i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
[i915#2846]: https://gitlab.freedesktop.org/drm/intel/issues/2846
[i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
[i915#2867]: https://gitlab.freedesktop.org/drm/intel/issues/2867
[i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920
[i915#2994]: https://gitlab.freedesktop.org/drm/intel/issues/2994
[i915#3002]: https://gitlab.freedesktop.org/drm/intel/issues/3002
[i915#3012]: https://gitlab.freedesktop.org/drm/intel/issues/3012
[i915#3063]: https://gitlab.freedesktop.org/drm/intel/issues/3063
[i915#3070]: https://gitlab.freedesktop.org/drm/intel/issues/3070
[i915#3116]: https://gitlab.freedesktop.org/drm/intel/issues/3116
[i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
[i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
[i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291
[i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
[i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299
[i915#3318]: https://gitlab.freedesktop.org/drm/intel/issues/3318
[i915#3323]: https://gitlab.freedesktop.org/drm/intel/issues/3323
[i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
[i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
[i915#3467]: https://gitlab.freedesktop.org/drm/intel/issues/3467
[i915#3536]: https://gitlab.freedesktop.org/drm/intel/issues/3536
[i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
[i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
[i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
[i915#3558]: https://gitlab.freedesktop.org/drm/intel/issues/3558
[i915#3591]: https://gitlab.freedesktop.org/drm/intel/issues/3591
[i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
[i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
[i915#3639]: https://gitlab.freedesktop.org/drm/intel/issues/3639
[i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
[i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
[i915#3734]: https://gitlab.freedesktop.org/drm/intel/issues/3734
[i915#3742]: https://gitlab.freedesktop.org/drm/intel/issues/3742
[i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
[i915#3921]: https://gitlab.freedesktop.org/drm/intel/issues/3921
[i915#3936]: https://gitlab.freedesktop.org/drm/intel/issues/3936
[i915#3952]: https://gitlab.freedesktop.org/drm/intel/issues/3952
[i915#3989]: https://gitlab.freedesktop.org/drm/intel/issues/3989
[i915#4036]: https://gitlab.freedesktop.org/drm/intel/issues/4036
[i915#404]: https://gitlab.freedesktop.org/drm/intel/issues/404
[i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
[i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
[i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078
[i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
[i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
[i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
[i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
[i915#4171]: https://gitlab.freedesktop.org/drm/intel/issues/4171
[i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
[i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
[i915#4281]: https://gitlab.freedesktop.org/drm/intel/issues/4281
[i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
[i915#433]: https://gitlab.freedesktop.org/drm/intel/issues/433
[i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525
[i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
[i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
[i915#4565]: https://gitlab.freedesktop.org/drm/intel/issues/4565
[i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
[i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
[i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833
[i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
[i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
[i915#4880]: https://gitlab.freedesktop.org/drm/intel/issues/4880
[i915#4881]: https://gitlab.freedesktop.org/drm/intel/issues/4881
[i915#4883]: https://gitlab.freedesktop.org/drm/intel/issues/4883
[i915#4941]: https://gitlab.freedesktop.org/drm/intel/issues/4941
[i915#4991]: https://gitlab.freedesktop.org/drm/intel/issues/4991
[i915#5030]: https://gitlab.freedesktop.org/drm/intel/issues/5030
[i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
[i915#5213]: https://gitlab.freedesktop.org/drm/intel/issues/5213
[i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
[i915#5257]: https://gitlab.freedesktop.org/drm/intel/issues/5257
[i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
[i915#5288]: https://gitlab.freedesktop.org/drm/intel/issues/5288
[i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
[i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325
[i915#5327]: https://gitlab.freedesktop.org/drm/intel/issues/5327
[i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
[i915#5439]: https://gitlab.freedesktop.org/drm/intel/issues/5439
[i915#5461]: https://gitlab.freedesktop.org/drm/intel/issues/5461
[i915#5519]: https://gitlab.freedesktop.org/drm/intel/issues/5519
[i915#5563]: https://gitlab.freedesktop.org/drm/intel/issues/5563
[i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566
[i915#5748]: https://gitlab.freedesktop.org/drm/intel/issues/5748
[i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
[i915#5939]: https://gitlab.freedesktop.org/drm/intel/issues/5939
[i915#6011]: https://gitlab.freedesktop.org/drm/intel/issues/6011
[i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
[i915#6117]: https://gitlab.freedesktop.org/drm/intel/issues/6117
[i915#6247]: https://gitlab.freedesktop.org/drm/intel/issues/6247
[i915#6248]: https://gitlab.freedesktop.org/drm/intel/issues/6248
[i915#6252]: https://gitlab.freedesktop.org/drm/intel/issues/6252
[i915#6258]: https://gitlab.freedesktop.org/drm/intel/issues/6258
[i915#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268
[i915#6301]: https://gitlab.freedesktop.org/drm/intel/issues/6301
[i915#6331]: https://gitlab.freedesktop.org/drm/intel/issues/6331
[i915#6334]: https://gitlab.freedesktop.org/drm/intel/issues/6334
[i915#6355]: https://gitlab.freedesktop.org/drm/intel/issues/6355
[i915#6412]: https://gitlab.freedesktop.org/drm/intel/issues/6412
[i915#6433]: https://gitlab.freedesktop.org/drm/intel/issues/6433
[i915#6458]: https://gitlab.freedesktop.org/drm/intel/issues/6458
[i915#6497]: https://gitlab.freedesktop.org/drm/intel/issues/6497
[i915#6524]: https://gitlab.freedesktop.org/drm/intel/issues/6524
[i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
[i915#6599]: https://gitlab.freedesktop.org/drm/intel/issues/6599
[i915#6637]: https://gitlab.freedesktop.org/drm/intel/issues/6637
[i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716
[i915#72]: https://gitlab.freedesktop.org/drm/intel/issues/72
[i915#768]: https://gitlab.freedesktop.org/drm/intel/issues/768
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_6646 -> IGTPW_7742
CI-20190529: 20190529
CI_DRM_12074: c16b937da799ddbebf0d940aff159b96ce9fec0f @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_7742: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/index.html
IGT_6646: c1f420ae84b76079cd32ac014cfdf95b5f2922f7 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7742/index.html
[-- Attachment #2: Type: text/html, Size: 51981 bytes --]
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [igt-dev] [PATCH i-g-t v2 00/17] tools/intel_vbt_decode: Improve VBT decoder
2022-09-06 12:29 [igt-dev] [PATCH i-g-t v2 00/17] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
` (19 preceding siblings ...)
2022-09-06 14:03 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
@ 2022-09-07 8:17 ` Jani Nikula
20 siblings, 0 replies; 22+ messages in thread
From: Jani Nikula @ 2022-09-07 8:17 UTC (permalink / raw)
To: Ville Syrjala, igt-dev
On Tue, 06 Sep 2022, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Sync uo the VBT decoder with the kernel code and
> improve/add the decoding of various things.
On the series,
Acked-by: Jani Nikula <jani.nikula@intel.com>
I didn't read it in detail, glanced through it, it all looked sensible,
and for this tool I think that should be enough.
>
> Ville Syrjälä (17):
> tools/intel_vbt_decode: Fix mipi sequence block size
> tools/intel_vbt_decode: Validate fp_timing terminator presence
> tools/intel_vbt_decode: Use hardcoded fp_timing size for generating
> LFP data pointers
> tools/intel_vbt_decode: update vbt defs from kernel
> tools/intel_vbt_decode: Introduce panel_bits()/panel_bool()
> tools/intel_vbt_decode: Remove pointless variables
> tools/intel_vbt_decode: Extract lvds_config[]
> tools/intel_vbt_decode: Extract panel_fitting[]
> tools/intel_vbt_decode: Parse HDMI FRL rate
> tools/intel_vbt_decode: Decode the "use VBT vswing tables" flag
> tools/intel_vbt_decode: Decode eDP/DP max lane count
> tools/intel_vbt_decode: Clean up driver features block decoding
> tools/intel_vbt_decode: Decode AUX CH
> tools/intel_vbt_decode: Adjust DVO port printing
> tools/intel_vbt_decode: Dump the compression structure index as
> decimal
> tools/intel_vbt_decode: Dump all panels from MIPI blocks
> tools/intel_vbt_decode: Print panel_type2
>
> tools/intel_bios.h | 8 -
> tools/intel_vbt_decode.c | 712 +++++++++++++++++++++++----------------
> tools/intel_vbt_defs.h | 348 ++++++++++---------
> 3 files changed, 622 insertions(+), 446 deletions(-)
--
Jani Nikula, Intel Open Source Graphics Center
^ permalink raw reply [flat|nested] 22+ messages in thread
end of thread, other threads:[~2022-09-07 8:17 UTC | newest]
Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-09-06 12:29 [igt-dev] [PATCH i-g-t v2 00/17] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 01/17] tools/intel_vbt_decode: Fix mipi sequence block size Ville Syrjala
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 02/17] tools/intel_vbt_decode: Validate fp_timing terminator presence Ville Syrjala
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 03/17] tools/intel_vbt_decode: Use hardcoded fp_timing size for generating LFP data pointers Ville Syrjala
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 04/17] tools/intel_vbt_decode: update vbt defs from kernel Ville Syrjala
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 05/17] tools/intel_vbt_decode: Introduce panel_bits()/panel_bool() Ville Syrjala
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 06/17] tools/intel_vbt_decode: Remove pointless variables Ville Syrjala
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 07/17] tools/intel_vbt_decode: Extract lvds_config[] Ville Syrjala
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 08/17] tools/intel_vbt_decode: Extract panel_fitting[] Ville Syrjala
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 09/17] tools/intel_vbt_decode: Parse HDMI FRL rate Ville Syrjala
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 10/17] tools/intel_vbt_decode: Decode the "use VBT vswing tables" flag Ville Syrjala
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 11/17] tools/intel_vbt_decode: Decode eDP/DP max lane count Ville Syrjala
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 12/17] tools/intel_vbt_decode: Clean up driver features block decoding Ville Syrjala
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 13/17] tools/intel_vbt_decode: Decode AUX CH Ville Syrjala
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 14/17] tools/intel_vbt_decode: Adjust DVO port printing Ville Syrjala
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 15/17] tools/intel_vbt_decode: Dump the compression structure index as decimal Ville Syrjala
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 16/17] tools/intel_vbt_decode: Dump all panels from MIPI blocks Ville Syrjala
2022-09-06 12:29 ` [igt-dev] [PATCH i-g-t v2 17/17] tools/intel_vbt_decode: Print panel_type2 Ville Syrjala
2022-09-06 12:47 ` [igt-dev] ✗ GitLab.Pipeline: warning for tools/intel_vbt_decode: Improve VBT decoder (rev2) Patchwork
2022-09-06 12:59 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
2022-09-06 14:03 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2022-09-07 8:17 ` [igt-dev] [PATCH i-g-t v2 00/17] tools/intel_vbt_decode: Improve VBT decoder Jani Nikula
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox