* [PATCH i-g-t 00/20] tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks
@ 2024-05-31 14:23 Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 01/20] tools/intel_vbt_decode: Finish the s/lvds/lfp/ rename Ville Syrjala
` (24 more replies)
0 siblings, 25 replies; 30+ messages in thread
From: Ville Syrjala @ 2024-05-31 14:23 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
A bunch of refactoring/cleanups/etc. to intel_vbt_decode. I have
a followup also lined up that implementes decoding of nearly all
known blocks, but figured I'll get all the other stuff out of the
way first.
Ville Syrjälä (20):
tools/intel_vbt_decode: Finish the s/lvds/lfp/ rename
tools/intel_vbt_decode: s/dump_sdvo_panel_dtd()/dump_sdvo_lvds_dtd()/
lib: Define DIV_ROUND_CLOSEST()
tools/intel_vbt_decode: Fix some tabs
tools/intel_vbt_decode: Add missing newline
tools/intel_vbt_decode: Indent ALS dump
tools/intel_vbt_decode: Use "(LFP<n>)" to indicate LFP panel type
tools/intel_vbt_decode: Decode the "not HDMI" bit right way up
tools/intel_vbt_decode: Extract dump_pnp_id()
tools/intel_vbt_decode: Reuse print_detail_timing_data()
tools/intel_vbt_decode: Dump the new eDP DSC disable bit
tools/intel_vbt_decode: Allow dumpers to delcate min version for the
block
tools/intel_vbt_decode: Use .min_bdb_version to filter out PSR block
on pre-165 VBTs
tools/intel_vbt_decode: Sort dumper table
tools/intel_vbt_decode: Use struct bdb_sdvo_lvds_dtd
tools/intel_vbt_decode: Track the SDVO panel type
tools/intel_vbt_decode: Use find_raw_section() to determine block
presence
tools/intel_vbt_decode: Make device handle names more compact
tools/intel_vbt_decode: Declare min/max version for child dev handles
tools/intel_vbt_decode: Decode device handle as a bitmask
lib/igt_aux.h | 1 +
tools/intel_vbt_decode.c | 395 ++++++++++++++++++++++-----------------
2 files changed, 224 insertions(+), 172 deletions(-)
--
2.44.1
^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH i-g-t 01/20] tools/intel_vbt_decode: Finish the s/lvds/lfp/ rename
2024-05-31 14:23 [PATCH i-g-t 00/20] tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks Ville Syrjala
@ 2024-05-31 14:23 ` Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 02/20] tools/intel_vbt_decode: s/dump_sdvo_panel_dtd()/dump_sdvo_lvds_dtd()/ Ville Syrjala
` (23 subsequent siblings)
24 siblings, 0 replies; 30+ messages in thread
From: Ville Syrjala @ 2024-05-31 14:23 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
The structs were renamed from lvds to lfp, but a bunch of other
stuff is still using the old inaccuarate name. Finish the move
to the new naming scheme.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
tools/intel_vbt_decode.c | 54 ++++++++++++++++++++--------------------
1 file changed, 27 insertions(+), 27 deletions(-)
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index 6b63bcf0bc7c..9d05de3f9975 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -205,8 +205,8 @@ static size_t lfp_data_min_size(const struct context *context)
return size;
}
-static int make_lvds_data_ptr(struct lfp_data_ptr_table *table,
- int table_size, int total_size)
+static int make_lfp_data_ptr(struct lfp_data_ptr_table *table,
+ int table_size, int total_size)
{
if (total_size < table_size)
return total_size;
@@ -217,15 +217,15 @@ static int make_lvds_data_ptr(struct lfp_data_ptr_table *table,
return total_size - table_size;
}
-static void next_lvds_data_ptr(struct lfp_data_ptr_table *next,
- const struct lfp_data_ptr_table *prev,
- int size)
+static void next_lfp_data_ptr(struct lfp_data_ptr_table *next,
+ const struct lfp_data_ptr_table *prev,
+ int size)
{
next->table_size = prev->table_size;
next->offset = prev->offset + size;
}
-static void *generate_lvds_data_ptrs(const struct context *context)
+static void *generate_lfp_data_ptrs(const struct context *context)
{
int size, table_size, block_size, offset, fp_timing_size;
const void *block;
@@ -265,13 +265,13 @@ static void *generate_lvds_data_ptrs(const struct context *context)
ptrs = ptrs_block + 3;
table_size = sizeof(struct bdb_edid_pnp_id);
- size = make_lvds_data_ptr(&ptrs->ptr[0].panel_pnp_id, table_size, size);
+ size = make_lfp_data_ptr(&ptrs->ptr[0].panel_pnp_id, table_size, size);
table_size = sizeof(struct bdb_edid_dtd);
- size = make_lvds_data_ptr(&ptrs->ptr[0].dvo_timing, table_size, size);
+ size = make_lfp_data_ptr(&ptrs->ptr[0].dvo_timing, table_size, size);
table_size = fp_timing_size;
- size = make_lvds_data_ptr(&ptrs->ptr[0].fp_timing, table_size, size);
+ size = make_lfp_data_ptr(&ptrs->ptr[0].fp_timing, table_size, size);
if (ptrs->ptr[0].fp_timing.table_size)
ptrs->num_entries++;
@@ -286,9 +286,9 @@ static void *generate_lvds_data_ptrs(const struct context *context)
size = fp_timing_size + sizeof(struct bdb_edid_dtd) +
sizeof(struct bdb_edid_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);
+ next_lfp_data_ptr(&ptrs->ptr[i].fp_timing, &ptrs->ptr[i-1].fp_timing, size);
+ next_lfp_data_ptr(&ptrs->ptr[i].dvo_timing, &ptrs->ptr[i-1].dvo_timing, size);
+ next_lfp_data_ptr(&ptrs->ptr[i].panel_pnp_id, &ptrs->ptr[i-1].panel_pnp_id, size);
}
table_size = sizeof(struct bdb_edid_product_name);
@@ -488,8 +488,8 @@ static struct bdb_block *find_section(const struct context *context, int section
data = find_raw_section(context, section_id);
if (!data && section_id == BDB_LFP_DATA_PTRS) {
- fprintf(stderr, "Generating LVDS data table pointers\n");
- temp_block = generate_lvds_data_ptrs(context);
+ fprintf(stderr, "Generating LFP data table pointers\n");
+ temp_block = generate_lfp_data_ptrs(context);
if (temp_block)
data = temp_block + 3;
}
@@ -1261,8 +1261,8 @@ static const char * const pos_type[] = {
[3] = "reserved",
};
-static void dump_lvds_options(struct context *context,
- const struct bdb_block *block)
+static void dump_lfp_options(struct context *context,
+ const struct bdb_block *block)
{
const struct bdb_lfp_options *options = block_data(block);
@@ -1343,7 +1343,7 @@ static void dump_lvds_options(struct context *context,
}
}
-static void dump_lvds_ptr_data(struct context *context,
+static void dump_lfp_data_ptrs(struct context *context,
const struct bdb_block *block)
{
const struct bdb_lfp_data_ptrs *ptrs = block_data(block);
@@ -1396,8 +1396,8 @@ static char *decode_pnp_id(u16 mfg_name, char str[4])
return str;
}
-static void dump_lvds_data(struct context *context,
- const struct bdb_block *block)
+static void dump_lfp_data(struct context *context,
+ const struct bdb_block *block)
{
struct bdb_block *ptrs_block;
const struct bdb_lfp_data_ptrs *ptrs;
@@ -2627,7 +2627,7 @@ static int get_panel_type_pnpid(const struct context *context,
return best;
}
-/* get panel type from lvds options block, or -1 if block not found */
+/* get panel type from lfp options block, or -1 if block not found */
static int get_panel_type(struct context *context, bool is_panel_type2)
{
struct bdb_block *block;
@@ -2694,22 +2694,22 @@ struct dumper dumpers[] = {
},
{
.id = BDB_LFP_OPTIONS,
- .name = "LVDS options block",
- .dump = dump_lvds_options,
+ .name = "LFP options block",
+ .dump = dump_lfp_options,
},
{
.id = BDB_LFP_DATA_PTRS,
- .name = "LVDS timing pointer data",
- .dump = dump_lvds_ptr_data,
+ .name = "LFP data table pointers",
+ .dump = dump_lfp_data_ptrs,
},
{
.id = BDB_LFP_DATA,
- .name = "LVDS panel data block",
- .dump = dump_lvds_data,
+ .name = "LFP data table block",
+ .dump = dump_lfp_data,
},
{
.id = BDB_LFP_BACKLIGHT,
- .name = "Backlight info block",
+ .name = "LFP backlight info block",
.dump = dump_backlight_info,
},
{
--
2.44.1
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH i-g-t 02/20] tools/intel_vbt_decode: s/dump_sdvo_panel_dtd()/dump_sdvo_lvds_dtd()/
2024-05-31 14:23 [PATCH i-g-t 00/20] tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 01/20] tools/intel_vbt_decode: Finish the s/lvds/lfp/ rename Ville Syrjala
@ 2024-05-31 14:23 ` Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 03/20] lib: Define DIV_ROUND_CLOSEST() Ville Syrjala
` (22 subsequent siblings)
24 siblings, 0 replies; 30+ messages in thread
From: Ville Syrjala @ 2024-05-31 14:23 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Rename s/dump_sdvo_panel_dtd() to dump_sdvo_lvds_dtd() so that
it matches the struct naming scheme.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
tools/intel_vbt_decode.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index 9d05de3f9975..aeaee5713472 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -1953,8 +1953,8 @@ print_detail_timing_data(const struct bdb_edid_dtd *dvo_timing)
printf("\tclock: %d\n", dvo_timing->clock * 10);
}
-static void dump_sdvo_panel_dtds(struct context *context,
- const struct bdb_block *block)
+static void dump_sdvo_lvds_dtd(struct context *context,
+ const struct bdb_block *block)
{
const struct bdb_edid_dtd *dvo_timing = block_data(block);
int n, count;
@@ -2724,8 +2724,8 @@ struct dumper dumpers[] = {
},
{
.id = BDB_SDVO_LVDS_DTD,
- .name = "SDVO panel dtds",
- .dump = dump_sdvo_panel_dtds,
+ .name = "SDVO LVDS DTD",
+ .dump = dump_sdvo_lvds_dtd,
},
{
.id = BDB_DRIVER_FEATURES,
--
2.44.1
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH i-g-t 03/20] lib: Define DIV_ROUND_CLOSEST()
2024-05-31 14:23 [PATCH i-g-t 00/20] tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 01/20] tools/intel_vbt_decode: Finish the s/lvds/lfp/ rename Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 02/20] tools/intel_vbt_decode: s/dump_sdvo_panel_dtd()/dump_sdvo_lvds_dtd()/ Ville Syrjala
@ 2024-05-31 14:23 ` Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 04/20] tools/intel_vbt_decode: Fix some tabs Ville Syrjala
` (21 subsequent siblings)
24 siblings, 0 replies; 30+ messages in thread
From: Ville Syrjala @ 2024-05-31 14:23 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Add a helper for integer division with round to closest behaviour.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
lib/igt_aux.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/lib/igt_aux.h b/lib/igt_aux.h
index 4664559dca82..4b8116dc0998 100644
--- a/lib/igt_aux.h
+++ b/lib/igt_aux.h
@@ -335,6 +335,7 @@ void pipewire_pulse_stop_reserve(void);
#define roundup_power_of_two(x) ((x) != 0 ? 1ULL << igt_fls((x) - 1) : 0)
#define DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))
+#define DIV_ROUND_CLOSEST(n, d) (((n) + (d) / 2) / (d))
uint64_t vfs_file_max(void);
--
2.44.1
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH i-g-t 04/20] tools/intel_vbt_decode: Fix some tabs
2024-05-31 14:23 [PATCH i-g-t 00/20] tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks Ville Syrjala
` (2 preceding siblings ...)
2024-05-31 14:23 ` [PATCH i-g-t 03/20] lib: Define DIV_ROUND_CLOSEST() Ville Syrjala
@ 2024-05-31 14:23 ` Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 05/20] tools/intel_vbt_decode: Add missing newline Ville Syrjala
` (20 subsequent siblings)
24 siblings, 0 replies; 30+ messages in thread
From: Ville Syrjala @ 2024-05-31 14:23 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Remove stray tabs introduced by mistake in commit 5fd3291e45c2
("tools/intel_vbt_decode: Decode all the driver feature bits").
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
tools/intel_vbt_decode.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index aeaee5713472..16a034e6e487 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -1604,9 +1604,9 @@ static void dump_driver_feature(struct context *context,
printf("\tPC Features field validity: %s\n",
YESNO(feature->pc_feature_valid));
- printf("\t\tHpd Wake: %s\n",
+ printf("\tHpd Wake: %s\n",
YESNO(feature->hpd_wake));
- printf("\t\tAssertive Display Technology (ADT): %s\n",
+ printf("\tAssertive Display Technology (ADT): %s\n",
YESNO(feature->adt_enabled));
printf("\tDynamic Media Refresh Rate Switching (DMRRS): %s\n",
YESNO(feature->dmrrs_enabled));
--
2.44.1
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH i-g-t 05/20] tools/intel_vbt_decode: Add missing newline
2024-05-31 14:23 [PATCH i-g-t 00/20] tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks Ville Syrjala
` (3 preceding siblings ...)
2024-05-31 14:23 ` [PATCH i-g-t 04/20] tools/intel_vbt_decode: Fix some tabs Ville Syrjala
@ 2024-05-31 14:23 ` Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 06/20] tools/intel_vbt_decode: Indent ALS dump Ville Syrjala
` (19 subsequent siblings)
24 siblings, 0 replies; 30+ messages in thread
From: Ville Syrjala @ 2024-05-31 14:23 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Add the missing newline after the fast link training
lane count printout.
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 16a034e6e487..f9bc1deb906c 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -1694,7 +1694,7 @@ static void dump_edp(struct context *context,
edp->fast_link_params[i].rate);
break;
}
- printf("\t\t\tlanes: X%d",
+ printf("\t\t\tlanes: X%d\n",
edp->fast_link_params[i].lanes + 1);
printf("\t\t\tpre-emphasis: %s (0x%x)\n",
dp_preemph(edp->fast_link_params[i].preemphasis),
--
2.44.1
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH i-g-t 06/20] tools/intel_vbt_decode: Indent ALS dump
2024-05-31 14:23 [PATCH i-g-t 00/20] tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks Ville Syrjala
` (4 preceding siblings ...)
2024-05-31 14:23 ` [PATCH i-g-t 05/20] tools/intel_vbt_decode: Add missing newline Ville Syrjala
@ 2024-05-31 14:23 ` Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 07/20] tools/intel_vbt_decode: Use "(LFP<n>)" to indicate LFP panel type Ville Syrjala
` (18 subsequent siblings)
24 siblings, 0 replies; 30+ messages in thread
From: Ville Syrjala @ 2024-05-31 14:23 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Add an extra indent level to the ALS table dump to make it nicer
to look at.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
tools/intel_vbt_decode.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index f9bc1deb906c..318069ee948e 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -1853,9 +1853,10 @@ static void dump_lfp_power(struct context *context,
YESNO(lfp_block->features.dpst_support));
for (i = 0; i < 5; i++) {
- printf("\tALS backlight adjust: %d\n",
+ printf("\tALS entry #%d\n", i + 1);
+ printf("\t\tALS backlight adjust: %d\n",
lfp_block->als[i].backlight_adjust);
- printf("\tALS Lux: %d\n",
+ printf("\t\tALS Lux: %d\n",
lfp_block->als[i].lux);
}
--
2.44.1
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH i-g-t 07/20] tools/intel_vbt_decode: Use "(LFP<n>)" to indicate LFP panel type
2024-05-31 14:23 [PATCH i-g-t 00/20] tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks Ville Syrjala
` (5 preceding siblings ...)
2024-05-31 14:23 ` [PATCH i-g-t 06/20] tools/intel_vbt_decode: Indent ALS dump Ville Syrjala
@ 2024-05-31 14:23 ` Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 08/20] tools/intel_vbt_decode: Decode the "not HDMI" bit right way up Ville Syrjala
` (17 subsequent siblings)
24 siblings, 0 replies; 30+ messages in thread
From: Ville Syrjala @ 2024-05-31 14:23 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
The normal panel type is for "LFP" panels. It is also possible
that some of the LFP blocks (IIRC blocks 43 and 44) would
also apply to EFP panels (declared via the child devices' efp_index).
To make that somewhat possible in the future use the "(LFP<n>)" format
when indicating the LFP panel type match.
TODO: figure out how to dig out the index/indices and indicate
which LFP data applies to which EFP panels...
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
tools/intel_vbt_decode.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index 318069ee948e..f01f90b301f7 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -101,13 +101,13 @@ static const char *panel_str(const struct context *context, int panel_type)
{
if (panel_type == context->panel_type &&
panel_type == context->panel_type2)
- return " (1)(2)";
+ return " (LFP1)(LFP2)";
if (panel_type == context->panel_type)
- return " (1)";
+ return " (LFP1)";
if (panel_type == context->panel_type2)
- return " (2)";
+ return " (LFP2)";
return "";
}
--
2.44.1
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH i-g-t 08/20] tools/intel_vbt_decode: Decode the "not HDMI" bit right way up
2024-05-31 14:23 [PATCH i-g-t 00/20] tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks Ville Syrjala
` (6 preceding siblings ...)
2024-05-31 14:23 ` [PATCH i-g-t 07/20] tools/intel_vbt_decode: Use "(LFP<n>)" to indicate LFP panel type Ville Syrjala
@ 2024-05-31 14:23 ` Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 09/20] tools/intel_vbt_decode: Extract dump_pnp_id() Ville Syrjala
` (16 subsequent siblings)
24 siblings, 0 replies; 30+ messages in thread
From: Ville Syrjala @ 2024-05-31 14:23 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
The inverted decoding of the "not HDMI" bit is confusing me more
than it's helping as it typically gets flagged for all non-HDMI/DVI
encoders now. Just decode it the same way the VBT specifies
it.
The other option would be to only do the invert trick when TMDS
encoding is supported. But dunno how confusing that would be.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
tools/intel_vbt_decode.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index f01f90b301f7..6cf6d471b5e2 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -775,7 +775,7 @@ static const struct {
{ DEVICE_TYPE_POWER_MANAGEMENT, "Power management" },
{ DEVICE_TYPE_HOTPLUG_SIGNALING, "Hotplug signaling" },
{ DEVICE_TYPE_INTERNAL_CONNECTOR, "Internal connector" },
- { DEVICE_TYPE_NOT_HDMI_OUTPUT, "HDMI output" }, /* decoded as inverse */
+ { DEVICE_TYPE_NOT_HDMI_OUTPUT, "Not HDMI output" },
{ DEVICE_TYPE_MIPI_OUTPUT, "MIPI output" },
{ DEVICE_TYPE_COMPOSITE_OUTPUT, "Composite output" },
{ DEVICE_TYPE_DUAL_CHANNEL, "Dual channel" },
@@ -793,8 +793,6 @@ static void dump_child_device_type_bits(uint16_t type)
{
int i;
- type ^= DEVICE_TYPE_NOT_HDMI_OUTPUT;
-
for (i = 0; i < ARRAY_SIZE(child_device_type_bits); i++) {
if (child_device_type_bits[i].mask & type)
printf("\t\t\t%s\n", child_device_type_bits[i].name);
--
2.44.1
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH i-g-t 09/20] tools/intel_vbt_decode: Extract dump_pnp_id()
2024-05-31 14:23 [PATCH i-g-t 00/20] tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks Ville Syrjala
` (7 preceding siblings ...)
2024-05-31 14:23 ` [PATCH i-g-t 08/20] tools/intel_vbt_decode: Decode the "not HDMI" bit right way up Ville Syrjala
@ 2024-05-31 14:23 ` Ville Syrjala
2024-05-31 14:48 ` Jani Nikula
2024-05-31 14:23 ` [PATCH i-g-t 10/20] tools/intel_vbt_decode: Reuse print_detail_timing_data() Ville Syrjala
` (15 subsequent siblings)
24 siblings, 1 reply; 30+ messages in thread
From: Ville Syrjala @ 2024-05-31 14:23 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Several different VBT blocks contain PnP IDs. Extract the
helper to dump them out.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
tools/intel_vbt_decode.c | 20 +++++++++++++-------
1 file changed, 13 insertions(+), 7 deletions(-)
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index 6cf6d471b5e2..2a11490eed22 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -1394,6 +1394,18 @@ static char *decode_pnp_id(u16 mfg_name, char str[4])
return str;
}
+static void dump_pnp_id(const struct bdb_edid_pnp_id *pnp_id)
+{
+ char mfg[4];
+
+ printf("\t\t Mfg name: %s (0x%x)\n",
+ decode_pnp_id(pnp_id->mfg_name, mfg), pnp_id->mfg_name);
+ printf("\t\t Product code: %u\n", pnp_id->product_code);
+ printf("\t\t Serial: %u\n", pnp_id->serial);
+ printf("\t\t Mfg week: %d\n", pnp_id->mfg_week);
+ printf("\t\t Mfg year: %d\n", 1990 + pnp_id->mfg_year);
+}
+
static void dump_lfp_data(struct context *context,
const struct bdb_block *block)
{
@@ -1419,7 +1431,6 @@ static void dump_lfp_data(struct context *context,
block_data(block) + ptrs->ptr[i].panel_pnp_id.offset;
const struct bdb_lfp_data_tail *tail =
block_data(block) + ptrs->panel_name.offset;
- char mfg[4];
if (!dump_panel(context, i))
continue;
@@ -1457,12 +1468,7 @@ static void dump_lfp_data(struct context *context,
"BAD!" : "good");
printf("\t\tPnP ID:\n");
- printf("\t\t Mfg name: %s (0x%x)\n",
- decode_pnp_id(pnp_id->mfg_name, mfg), pnp_id->mfg_name);
- printf("\t\t Product code: %u\n", pnp_id->product_code);
- printf("\t\t Serial: %u\n", pnp_id->serial);
- printf("\t\t Mfg week: %d\n", pnp_id->mfg_week);
- printf("\t\t Mfg year: %d\n", 1990 + pnp_id->mfg_year);
+ dump_pnp_id(pnp_id);
if (!ptrs->panel_name.table_size)
continue;
--
2.44.1
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH i-g-t 10/20] tools/intel_vbt_decode: Reuse print_detail_timing_data()
2024-05-31 14:23 [PATCH i-g-t 00/20] tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks Ville Syrjala
` (8 preceding siblings ...)
2024-05-31 14:23 ` [PATCH i-g-t 09/20] tools/intel_vbt_decode: Extract dump_pnp_id() Ville Syrjala
@ 2024-05-31 14:23 ` Ville Syrjala
2024-05-31 14:50 ` Jani Nikula
2024-05-31 14:23 ` [PATCH i-g-t 11/20] tools/intel_vbt_decode: Dump the new eDP DSC disable bit Ville Syrjala
` (14 subsequent siblings)
24 siblings, 1 reply; 30+ messages in thread
From: Ville Syrjala @ 2024-05-31 14:23 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
We currently have two copies of code to decode the basic EDID
defined DTD. Get rid of the ad-hoc variant in dump_lfp_data()
and just reuse print_detail_timing_data() for it.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
tools/intel_vbt_decode.c | 106 ++++++++++++++-------------------------
1 file changed, 39 insertions(+), 67 deletions(-)
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index 2a11490eed22..ed18a156c1ee 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -53,17 +53,6 @@ typedef uint64_t u64;
#define _INTEL_BIOS_PRIVATE
#include "intel_vbt_defs.h"
-/* no bother to include "edid.h" */
-#define _H_ACTIVE(x) (x[2] + ((x[4] & 0xF0) << 4))
-#define _H_SYNC_OFF(x) (x[8] + ((x[11] & 0xC0) << 2))
-#define _H_SYNC_WIDTH(x) (x[9] + ((x[11] & 0x30) << 4))
-#define _H_BLANK(x) (x[3] + ((x[4] & 0x0F) << 8))
-#define _V_ACTIVE(x) (x[5] + ((x[7] & 0xF0) << 4))
-#define _V_SYNC_OFF(x) ((x[10] >> 4) + ((x[11] & 0x0C) << 2))
-#define _V_SYNC_WIDTH(x) ((x[10] & 0x0F) + ((x[11] & 0x03) << 4))
-#define _V_BLANK(x) (x[6] + ((x[7] & 0x0F) << 8))
-#define _PIXEL_CLOCK(x) (x[0] + (x[1] << 8)) * 10000
-
#define YESNO(val) ((val) ? "yes" : "no")
/* This is not for mapping to memory layout. */
@@ -1382,6 +1371,38 @@ static void dump_lfp_data_ptrs(struct context *context,
}
}
+static void
+print_detail_timing_data(const struct bdb_edid_dtd *dvo_timing)
+{
+ int display, sync_start, sync_end, total;
+
+ display = (dvo_timing->hactive_hi << 8) | dvo_timing->hactive_lo;
+ sync_start = display +
+ ((dvo_timing->hsync_off_hi << 8) | dvo_timing->hsync_off_lo);
+ sync_end = sync_start + ((dvo_timing->hsync_pulse_width_hi << 8) |
+ dvo_timing->hsync_pulse_width_lo);
+ total = display +
+ ((dvo_timing->hblank_hi << 8) | dvo_timing->hblank_lo);
+ printf("\t\t hdisplay: %d\n", display);
+ printf("\t\t hsync [%d, %d] %s\n", sync_start, sync_end,
+ dvo_timing->hsync_positive ? "+sync" : "-sync");
+ printf("\t\t htotal: %d\n", total);
+
+ display = (dvo_timing->vactive_hi << 8) | dvo_timing->vactive_lo;
+ sync_start = display + ((dvo_timing->vsync_off_hi << 8) |
+ dvo_timing->vsync_off_lo);
+ sync_end = sync_start + ((dvo_timing->vsync_pulse_width_hi << 8) |
+ dvo_timing->vsync_pulse_width_lo);
+ total = display +
+ ((dvo_timing->vblank_hi << 8) | dvo_timing->vblank_lo);
+ printf("\t\t vdisplay: %d\n", display);
+ printf("\t\t vsync [%d, %d] %s\n", sync_start, sync_end,
+ dvo_timing->vsync_positive ? "+sync" : "-sync");
+ printf("\t\t vtotal: %d\n", total);
+
+ printf("\t\t clock: %d\n", dvo_timing->clock * 10);
+}
+
static char *decode_pnp_id(u16 mfg_name, char str[4])
{
mfg_name = ntohs(mfg_name);
@@ -1412,9 +1433,6 @@ static void dump_lfp_data(struct context *context,
struct bdb_block *ptrs_block;
const struct bdb_lfp_data_ptrs *ptrs;
int i;
- int hdisplay, hsyncstart, hsyncend, htotal;
- int vdisplay, vsyncstart, vsyncend, vtotal;
- float clock;
ptrs_block = find_section(context, BDB_LFP_DATA_PTRS);
if (!ptrs_block)
@@ -1425,7 +1443,7 @@ static void dump_lfp_data(struct context *context,
for (i = 0; i < 16; i++) {
const struct fp_timing *fp_timing =
block_data(block) + ptrs->ptr[i].fp_timing.offset;
- const uint8_t *timing_data =
+ const struct bdb_edid_dtd *dvo_timing =
block_data(block) + ptrs->ptr[i].dvo_timing.offset;
const struct bdb_edid_pnp_id *pnp_id =
block_data(block) + ptrs->ptr[i].panel_pnp_id.offset;
@@ -1435,22 +1453,10 @@ static void dump_lfp_data(struct context *context,
if (!dump_panel(context, i))
continue;
- hdisplay = _H_ACTIVE(timing_data);
- hsyncstart = hdisplay + _H_SYNC_OFF(timing_data);
- hsyncend = hsyncstart + _H_SYNC_WIDTH(timing_data);
- htotal = hdisplay + _H_BLANK(timing_data);
-
- vdisplay = _V_ACTIVE(timing_data);
- vsyncstart = vdisplay + _V_SYNC_OFF(timing_data);
- vsyncend = vsyncstart + _V_SYNC_WIDTH(timing_data);
- vtotal = vdisplay + _V_BLANK(timing_data);
- clock = _PIXEL_CLOCK(timing_data) / 1000;
-
printf("\tPanel %d%s\n", i, panel_str(context, i));
- printf("\t\t%dx%d clock %d\n",
- fp_timing->x_res, fp_timing->y_res,
- _PIXEL_CLOCK(timing_data));
- printf("\t\tinfo:\n");
+ printf("\t\tResolution: %dx%d\n",
+ fp_timing->x_res, fp_timing->y_res);
+ printf("\t\tFP timing data:\n");
printf("\t\t LVDS: 0x%08lx\n",
(unsigned long)fp_timing->lvds_reg_val);
printf("\t\t PP_ON_DELAYS: 0x%08lx\n",
@@ -1461,11 +1467,9 @@ static void dump_lfp_data(struct context *context,
(unsigned long)fp_timing->pp_cycle_reg_val);
printf("\t\t PFIT: 0x%08lx\n",
(unsigned long)fp_timing->pfit_reg_val);
- printf("\t\ttimings: %d %d %d %d %d %d %d %d %.2f (%s)\n",
- hdisplay, hsyncstart, hsyncend, htotal,
- vdisplay, vsyncstart, vsyncend, vtotal, clock,
- (hsyncend > htotal || vsyncend > vtotal) ?
- "BAD!" : "good");
+
+ printf("\t\tDVO timing:\n");
+ print_detail_timing_data(dvo_timing);
printf("\t\tPnP ID:\n");
dump_pnp_id(pnp_id);
@@ -1926,38 +1930,6 @@ static void dump_lfp_power(struct context *context,
}
}
-static void
-print_detail_timing_data(const struct bdb_edid_dtd *dvo_timing)
-{
- int display, sync_start, sync_end, total;
-
- display = (dvo_timing->hactive_hi << 8) | dvo_timing->hactive_lo;
- sync_start = display +
- ((dvo_timing->hsync_off_hi << 8) | dvo_timing->hsync_off_lo);
- sync_end = sync_start + ((dvo_timing->hsync_pulse_width_hi << 8) |
- dvo_timing->hsync_pulse_width_lo);
- total = display +
- ((dvo_timing->hblank_hi << 8) | dvo_timing->hblank_lo);
- printf("\thdisplay: %d\n", display);
- printf("\thsync [%d, %d] %s\n", sync_start, sync_end,
- dvo_timing->hsync_positive ? "+sync" : "-sync");
- printf("\thtotal: %d\n", total);
-
- display = (dvo_timing->vactive_hi << 8) | dvo_timing->vactive_lo;
- sync_start = display + ((dvo_timing->vsync_off_hi << 8) |
- dvo_timing->vsync_off_lo);
- sync_end = sync_start + ((dvo_timing->vsync_pulse_width_hi << 8) |
- dvo_timing->vsync_pulse_width_lo);
- total = display +
- ((dvo_timing->vblank_hi << 8) | dvo_timing->vblank_lo);
- printf("\tvdisplay: %d\n", display);
- printf("\tvsync [%d, %d] %s\n", sync_start, sync_end,
- dvo_timing->vsync_positive ? "+sync" : "-sync");
- printf("\tvtotal: %d\n", total);
-
- printf("\tclock: %d\n", dvo_timing->clock * 10);
-}
-
static void dump_sdvo_lvds_dtd(struct context *context,
const struct bdb_block *block)
{
--
2.44.1
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH i-g-t 11/20] tools/intel_vbt_decode: Dump the new eDP DSC disable bit
2024-05-31 14:23 [PATCH i-g-t 00/20] tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks Ville Syrjala
` (9 preceding siblings ...)
2024-05-31 14:23 ` [PATCH i-g-t 10/20] tools/intel_vbt_decode: Reuse print_detail_timing_data() Ville Syrjala
@ 2024-05-31 14:23 ` Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 12/20] tools/intel_vbt_decode: Allow dumpers to delcate min version for the block Ville Syrjala
` (13 subsequent siblings)
24 siblings, 0 replies; 30+ messages in thread
From: Ville Syrjala @ 2024-05-31 14:23 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
The eDP block has a new bit to indicate DSC should be disabled.
Dump it out.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
tools/intel_vbt_decode.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index ed18a156c1ee..2d627c821978 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -1777,6 +1777,10 @@ static void dump_edp(struct context *context,
printf("\t\teDP max port link rate: %g Gbps (0x%02x)\n",
rate / 5000.0f, rate);
}
+
+ if (context->bdb->version >= 251)
+ printf("\t\teDP DSC disable: %s\n",
+ YESNO(panel_bool(edp->edp_dsc_disable, i)));
}
}
--
2.44.1
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH i-g-t 12/20] tools/intel_vbt_decode: Allow dumpers to delcate min version for the block
2024-05-31 14:23 [PATCH i-g-t 00/20] tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks Ville Syrjala
` (10 preceding siblings ...)
2024-05-31 14:23 ` [PATCH i-g-t 11/20] tools/intel_vbt_decode: Dump the new eDP DSC disable bit Ville Syrjala
@ 2024-05-31 14:23 ` Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 13/20] tools/intel_vbt_decode: Use .min_bdb_version to filter out PSR block on pre-165 VBTs Ville Syrjala
` (12 subsequent siblings)
24 siblings, 0 replies; 30+ messages in thread
From: Ville Syrjala @ 2024-05-31 14:23 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Deal with the case where the same block ID got reused for
two different purposes by having the dumper declare a min
and max BDB versions.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
tools/intel_vbt_decode.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index 2d627c821978..e414a1436a01 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -2652,6 +2652,8 @@ get_device_id(unsigned char *bios, int size)
struct dumper {
uint8_t id;
+ uint16_t min_bdb_version;
+ uint16_t max_bdb_version;
const char *name;
void (*dump)(struct context *context,
const struct bdb_block *block);
@@ -2777,6 +2779,14 @@ static bool dump_section(struct context *context, int section_id)
return false;
for (i = 0; i < ARRAY_SIZE(dumpers); i++) {
+ if (dumpers[i].min_bdb_version &&
+ context->bdb->version < dumpers[i].min_bdb_version)
+ continue;
+
+ if (dumpers[i].max_bdb_version &&
+ context->bdb->version > dumpers[i].max_bdb_version)
+ continue;
+
if (block->id == dumpers[i].id) {
dumper = &dumpers[i];
break;
--
2.44.1
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH i-g-t 13/20] tools/intel_vbt_decode: Use .min_bdb_version to filter out PSR block on pre-165 VBTs
2024-05-31 14:23 [PATCH i-g-t 00/20] tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks Ville Syrjala
` (11 preceding siblings ...)
2024-05-31 14:23 ` [PATCH i-g-t 12/20] tools/intel_vbt_decode: Allow dumpers to delcate min version for the block Ville Syrjala
@ 2024-05-31 14:23 ` Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 14/20] tools/intel_vbt_decode: Sort dumper table Ville Syrjala
` (11 subsequent siblings)
24 siblings, 0 replies; 30+ messages in thread
From: Ville Syrjala @ 2024-05-31 14:23 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Block 9 on ALM was something different, then disappeared until
it got repurposed to serve as the PSR block starting from
version 165.
Utilize the new .min_bdb_version to filter out this block on
older VBTs. We'll make more use of this mechanism when we start
decoding the other side of this coin.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
tools/intel_vbt_decode.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index e414a1436a01..a77c1ec3335d 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -1791,10 +1791,6 @@ static void dump_psr(struct context *context,
int i;
uint32_t psr2_tp_time;
- /* The same block ID was used for something else before? */
- if (context->bdb->version < 165)
- return;
-
psr2_tp_time = psr_block->psr2_tp2_tp3_wakeup_time;
for (i = 0; i < 16; i++) {
const struct psr_table *psr = &psr_block->psr_table[i];
@@ -2722,6 +2718,7 @@ struct dumper dumpers[] = {
},
{
.id = BDB_PSR,
+ .min_bdb_version = 165,
.name = "PSR block",
.dump = dump_psr,
},
--
2.44.1
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH i-g-t 14/20] tools/intel_vbt_decode: Sort dumper table
2024-05-31 14:23 [PATCH i-g-t 00/20] tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks Ville Syrjala
` (12 preceding siblings ...)
2024-05-31 14:23 ` [PATCH i-g-t 13/20] tools/intel_vbt_decode: Use .min_bdb_version to filter out PSR block on pre-165 VBTs Ville Syrjala
@ 2024-05-31 14:23 ` Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 15/20] tools/intel_vbt_decode: Use struct bdb_sdvo_lvds_dtd Ville Syrjala
` (10 subsequent siblings)
24 siblings, 0 replies; 30+ messages in thread
From: Ville Syrjala @ 2024-05-31 14:23 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Sort the block dumper table by the block ID. Makes it a
bit easier to double check which blocks we have implemented
vs. not.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
tools/intel_vbt_decode.c | 52 ++++++++++++++++++++--------------------
1 file changed, 26 insertions(+), 26 deletions(-)
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index a77c1ec3335d..95ed97c5f499 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -2666,11 +2666,37 @@ struct dumper dumpers[] = {
.name = "General definitions block",
.dump = dump_general_definitions,
},
+ {
+ .id = BDB_PSR,
+ .min_bdb_version = 165,
+ .name = "PSR block",
+ .dump = dump_psr,
+ },
{
.id = BDB_CHILD_DEVICE_TABLE,
.name = "Legacy child devices block",
.dump = dump_legacy_child_devices,
},
+ {
+ .id = BDB_DRIVER_FEATURES,
+ .name = "Driver feature data block",
+ .dump = dump_driver_feature,
+ },
+ {
+ .id = BDB_SDVO_LVDS_OPTIONS,
+ .name = "SDVO LVDS options block",
+ .dump = dump_sdvo_lvds_options,
+ },
+ {
+ .id = BDB_SDVO_LVDS_DTD,
+ .name = "SDVO LVDS DTD",
+ .dump = dump_sdvo_lvds_dtd,
+ },
+ {
+ .id = BDB_EDP,
+ .name = "eDP block",
+ .dump = dump_edp,
+ },
{
.id = BDB_LFP_OPTIONS,
.name = "LFP options block",
@@ -2696,32 +2722,6 @@ struct dumper dumpers[] = {
.name = "LFP power conservation features block",
.dump = dump_lfp_power,
},
- {
- .id = BDB_SDVO_LVDS_OPTIONS,
- .name = "SDVO LVDS options block",
- .dump = dump_sdvo_lvds_options,
- },
- {
- .id = BDB_SDVO_LVDS_DTD,
- .name = "SDVO LVDS DTD",
- .dump = dump_sdvo_lvds_dtd,
- },
- {
- .id = BDB_DRIVER_FEATURES,
- .name = "Driver feature data block",
- .dump = dump_driver_feature,
- },
- {
- .id = BDB_EDP,
- .name = "eDP block",
- .dump = dump_edp,
- },
- {
- .id = BDB_PSR,
- .min_bdb_version = 165,
- .name = "PSR block",
- .dump = dump_psr,
- },
{
.id = BDB_MIPI_CONFIG,
.name = "MIPI configuration block",
--
2.44.1
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH i-g-t 15/20] tools/intel_vbt_decode: Use struct bdb_sdvo_lvds_dtd
2024-05-31 14:23 [PATCH i-g-t 00/20] tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks Ville Syrjala
` (13 preceding siblings ...)
2024-05-31 14:23 ` [PATCH i-g-t 14/20] tools/intel_vbt_decode: Sort dumper table Ville Syrjala
@ 2024-05-31 14:23 ` Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 16/20] tools/intel_vbt_decode: Track the SDVO panel type Ville Syrjala
` (9 subsequent siblings)
24 siblings, 0 replies; 30+ messages in thread
From: Ville Syrjala @ 2024-05-31 14:23 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Use the full struct bdb_sdvo_lvds_dtd when dumping out the
SDVO LVDS DTD block.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
tools/intel_vbt_decode.c | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index 95ed97c5f499..167b5751ad16 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -316,8 +316,7 @@ static size_t block_min_size(const struct context *context, int section_id)
case BDB_SDVO_LVDS_OPTIONS:
return sizeof(struct bdb_sdvo_lvds_options);
case BDB_SDVO_LVDS_DTD:
- /* FIXME? */
- return 0;
+ return sizeof(struct bdb_sdvo_lvds_dtd);
case BDB_EDP:
return sizeof(struct bdb_edp);
case BDB_LFP_OPTIONS:
@@ -1933,13 +1932,11 @@ static void dump_lfp_power(struct context *context,
static void dump_sdvo_lvds_dtd(struct context *context,
const struct bdb_block *block)
{
- const struct bdb_edid_dtd *dvo_timing = block_data(block);
- int n, count;
+ const struct bdb_sdvo_lvds_dtd *t = block_data(block);
- count = block->size / sizeof(struct bdb_edid_dtd);
- for (n = 0; n < count; n++) {
+ for (int n = 0; n < ARRAY_SIZE(t->dtd); n++) {
printf("%d:\n", n);
- print_detail_timing_data(dvo_timing++);
+ print_detail_timing_data(&t->dtd[n]);
}
}
--
2.44.1
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH i-g-t 16/20] tools/intel_vbt_decode: Track the SDVO panel type
2024-05-31 14:23 [PATCH i-g-t 00/20] tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks Ville Syrjala
` (14 preceding siblings ...)
2024-05-31 14:23 ` [PATCH i-g-t 15/20] tools/intel_vbt_decode: Use struct bdb_sdvo_lvds_dtd Ville Syrjala
@ 2024-05-31 14:23 ` Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 17/20] tools/intel_vbt_decode: Use find_raw_section() to determine block presence Ville Syrjala
` (8 subsequent siblings)
24 siblings, 0 replies; 30+ messages in thread
From: Ville Syrjala @ 2024-05-31 14:23 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Just like we do for the LFP panel types, let's keep track of
the SDVO panel type.
I suppose technically we should also check h40_set_panel_type,
and if set then derive the panel type via some VBIOS call or
some such crazyness. We'll just ignore that and assume the VBT
specified panel type is correct. Could also add a comman line
override, but meh.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
tools/intel_vbt_decode.c | 34 +++++++++++++++++++++++++++++++++-
1 file changed, 33 insertions(+), 1 deletion(-)
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index 167b5751ad16..04520973aae1 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -69,6 +69,7 @@ struct context {
uint32_t devid;
int panel_type, panel_type2;
+ int sdvo_panel_type;
bool dump_all_panel_types;
bool hexdump;
};
@@ -101,6 +102,14 @@ static const char *panel_str(const struct context *context, int panel_type)
return "";
}
+static const char *sdvo_panel_str(const struct context *context, int sdvo_panel_type)
+{
+ if (sdvo_panel_type == context->sdvo_panel_type)
+ return " (*)";
+
+ return "";
+}
+
/* Get BDB block size given a pointer to Block ID. */
static uint32_t _get_blocksize(const uint8_t *block_base)
{
@@ -1935,7 +1944,7 @@ static void dump_sdvo_lvds_dtd(struct context *context,
const struct bdb_sdvo_lvds_dtd *t = block_data(block);
for (int n = 0; n < ARRAY_SIZE(t->dtd); n++) {
- printf("%d:\n", n);
+ printf("\tSDVO Panel %d%s\n", n, sdvo_panel_str(context, n));
print_detail_timing_data(&t->dtd[n]);
}
}
@@ -2623,6 +2632,25 @@ static int get_panel_type(struct context *context, bool is_panel_type2)
return panel_type;
}
+/* get SDVO panel type from SDVO options block, or -1 if block not found */
+static int get_sdvo_panel_type(struct context *context)
+{
+ const struct bdb_sdvo_lvds_options *options;
+ struct bdb_block *block;
+ int panel_type = -1;
+
+ block = find_section(context, BDB_SDVO_LVDS_OPTIONS);
+ if (!block)
+ return -1;
+
+ options = block_data(block);
+ panel_type = options->panel_type;
+
+ free(block);
+
+ return panel_type;
+}
+
static int
get_device_id(unsigned char *bios, int size)
{
@@ -2933,6 +2961,7 @@ int main(int argc, char **argv)
struct context context = {
.panel_type = -1,
.panel_type2 = -1,
+ .sdvo_panel_type = -1,
};
const char *panel_edid = NULL, *panel_edid2 = NULL;
char *endp;
@@ -3134,6 +3163,9 @@ int main(int argc, char **argv)
context.panel_type2 = -1;
}
+ if (context.sdvo_panel_type == -1)
+ context.sdvo_panel_type = get_sdvo_panel_type(&context);
+
if (describe) {
print_description(&context);
} else if (header_only) {
--
2.44.1
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH i-g-t 17/20] tools/intel_vbt_decode: Use find_raw_section() to determine block presence
2024-05-31 14:23 [PATCH i-g-t 00/20] tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks Ville Syrjala
` (15 preceding siblings ...)
2024-05-31 14:23 ` [PATCH i-g-t 16/20] tools/intel_vbt_decode: Track the SDVO panel type Ville Syrjala
@ 2024-05-31 14:23 ` Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 18/20] tools/intel_vbt_decode: Make device handle names more compact Ville Syrjala
` (7 subsequent siblings)
24 siblings, 0 replies; 30+ messages in thread
From: Ville Syrjala @ 2024-05-31 14:23 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
We don't really want to report the generated block 41 as being
present in the VBT. Switch from find_section() to find_raw_section()
so that we only consider the blocks that are actually present in the
VBT.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
tools/intel_vbt_decode.c | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index 04520973aae1..485e0bdb5a59 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -2896,18 +2896,13 @@ static void dump_headers(struct context *context)
printf("BDB blocks present:");
for (i = 0; i < 256; i++) {
- struct bdb_block *block;
-
- block = find_section(context, i);
- if (!block)
+ if (!find_raw_section(context, i))
continue;
if (j++ % 16)
printf(" %3d", i);
else
printf("\n\t%3d", i);
-
- free(block);
}
printf("\n\n");
}
--
2.44.1
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH i-g-t 18/20] tools/intel_vbt_decode: Make device handle names more compact
2024-05-31 14:23 [PATCH i-g-t 00/20] tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks Ville Syrjala
` (16 preceding siblings ...)
2024-05-31 14:23 ` [PATCH i-g-t 17/20] tools/intel_vbt_decode: Use find_raw_section() to determine block presence Ville Syrjala
@ 2024-05-31 14:23 ` Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 19/20] tools/intel_vbt_decode: Declare min/max version for child dev handles Ville Syrjala
` (6 subsequent siblings)
24 siblings, 0 replies; 30+ messages in thread
From: Ville Syrjala @ 2024-05-31 14:23 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Drop the extra "(HDMI/eDP/...)" part from the device handle names.
We'll be using these names when decoding bitfields that have
multiple bits set, and the extra junk is making the output rather
hard on the eyes.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
tools/intel_vbt_decode.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index 485e0bdb5a59..dcfa3a5db90f 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -801,12 +801,12 @@ static const struct {
const char *name;
} child_device_handles[] = {
{ DEVICE_HANDLE_CRT, "CRT" },
- { DEVICE_HANDLE_EFP1, "EFP 1 (HDMI/DVI/DP)" },
- { DEVICE_HANDLE_EFP2, "EFP 2 (HDMI/DVI/DP)" },
- { DEVICE_HANDLE_EFP3, "EFP 3 (HDMI/DVI/DP)" },
- { DEVICE_HANDLE_EFP4, "EFP 4 (HDMI/DVI/DP)" },
- { DEVICE_HANDLE_LFP1, "LFP 1 (eDP)" },
- { DEVICE_HANDLE_LFP2, "LFP 2 (eDP)" },
+ { DEVICE_HANDLE_EFP1, "EFP1" },
+ { DEVICE_HANDLE_EFP2, "EFP2" },
+ { DEVICE_HANDLE_EFP3, "EFP3" },
+ { DEVICE_HANDLE_EFP4, "EFP4" },
+ { DEVICE_HANDLE_LFP1, "LFP1" },
+ { DEVICE_HANDLE_LFP2, "LFP2" },
};
static const int num_child_device_handles =
sizeof(child_device_handles) / sizeof(child_device_handles[0]);
--
2.44.1
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH i-g-t 19/20] tools/intel_vbt_decode: Declare min/max version for child dev handles
2024-05-31 14:23 [PATCH i-g-t 00/20] tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks Ville Syrjala
` (17 preceding siblings ...)
2024-05-31 14:23 ` [PATCH i-g-t 18/20] tools/intel_vbt_decode: Make device handle names more compact Ville Syrjala
@ 2024-05-31 14:23 ` Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 20/20] tools/intel_vbt_decode: Decode device handle as a bitmask Ville Syrjala
` (5 subsequent siblings)
24 siblings, 0 replies; 30+ messages in thread
From: Ville Syrjala @ 2024-05-31 14:23 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Some of the device handles are only valid for certain BDB versions,
and even worse, some of them conflict between two versions. Declare
the version dependency for each problematic device handle so that
the decoding can output the correct string for a given BDB version.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
tools/intel_vbt_decode.c | 44 ++++++++++++++++++++++++++++------------
1 file changed, 31 insertions(+), 13 deletions(-)
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index dcfa3a5db90f..b0c30ffcbc0a 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -797,27 +797,45 @@ static void dump_child_device_type_bits(uint16_t type)
}
static const struct {
- unsigned char handle;
+ uint16_t handle;
+ uint16_t min_ver, max_ver;
const char *name;
} child_device_handles[] = {
- { DEVICE_HANDLE_CRT, "CRT" },
- { DEVICE_HANDLE_EFP1, "EFP1" },
- { DEVICE_HANDLE_EFP2, "EFP2" },
- { DEVICE_HANDLE_EFP3, "EFP3" },
- { DEVICE_HANDLE_EFP4, "EFP4" },
- { DEVICE_HANDLE_LFP1, "LFP1" },
- { DEVICE_HANDLE_LFP2, "LFP2" },
+ { .handle = DEVICE_HANDLE_CRT, .name = "CRT", .max_ver = 216, },
+ { .handle = DEVICE_HANDLE_TV, .name = "TV", .max_ver = 214, },
+ { .handle = DEVICE_HANDLE_EFP1, .name = "EFP1", },
+ { .handle = DEVICE_HANDLE_EFP2, .name = "EFP2", },
+ { .handle = DEVICE_HANDLE_EFP3, .name = "EFP3", },
+ { .handle = DEVICE_HANDLE_EFP4, .name = "EFP4", },
+ { .handle = DEVICE_HANDLE_EFP5, .name = "EFP5", .min_ver = 215, },
+ { .handle = DEVICE_HANDLE_EFP6, .name = "EFP6", .min_ver = 217, },
+ { .handle = DEVICE_HANDLE_EFP7, .name = "EFP7", .min_ver = 217, },
+ { .handle = DEVICE_HANDLE_EFP8, .name = "EFP8", .min_ver = 217, },
+ { .handle = DEVICE_HANDLE_LFP1, .name = "LFP1", },
+ { .handle = DEVICE_HANDLE_LFP2, .name = "LFP2", },
};
static const int num_child_device_handles =
sizeof(child_device_handles) / sizeof(child_device_handles[0]);
-static const char *child_device_handle(unsigned char handle)
+static const char *child_device_handle(struct context *context,
+ uint16_t handle)
{
int i;
- for (i = 0; i < num_child_device_handles; i++)
- if (child_device_handles[i].handle == handle)
- return child_device_handles[i].name;
+ for (i = 0; i < num_child_device_handles; i++) {
+ if (!(child_device_handles[i].handle & handle))
+ continue;
+
+ if (child_device_handles[i].min_ver &&
+ context->bdb->version < child_device_handles[i].min_ver)
+ continue;
+
+ if (child_device_handles[i].max_ver &&
+ context->bdb->version > child_device_handles[i].max_ver)
+ continue;
+
+ return child_device_handles[i].name;
+ }
return "unknown";
}
@@ -1006,7 +1024,7 @@ static void dump_child_device(struct context *context,
printf("\tChild device info:\n");
printf("\t\tDevice handle: 0x%04x (%s)\n", child->handle,
- child_device_handle(child->handle));
+ child_device_handle(context, child->handle));
printf("\t\tDevice type: 0x%04x (%s)\n", child->device_type,
child_device_type(child->device_type));
dump_child_device_type_bits(child->device_type);
--
2.44.1
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH i-g-t 20/20] tools/intel_vbt_decode: Decode device handle as a bitmask
2024-05-31 14:23 [PATCH i-g-t 00/20] tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks Ville Syrjala
` (18 preceding siblings ...)
2024-05-31 14:23 ` [PATCH i-g-t 19/20] tools/intel_vbt_decode: Declare min/max version for child dev handles Ville Syrjala
@ 2024-05-31 14:23 ` Ville Syrjala
2024-05-31 15:10 ` Jani Nikula
2024-05-31 15:11 ` [PATCH i-g-t 00/20] tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks Jani Nikula
` (4 subsequent siblings)
24 siblings, 1 reply; 30+ messages in thread
From: Ville Syrjala @ 2024-05-31 14:23 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Some VBT blocks contain bitmasks of device handles (where multiple
bits can be set simultanously). Allow decoding such things by
having child_device_handle() take in the whole bitmask instead of
assuming just one bit.
We'll cheat a bit with a static buffer for the output string.
That should be fine given the simplicity of the tool.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
tools/intel_vbt_decode.c | 29 +++++++++++++++++++++++++----
1 file changed, 25 insertions(+), 4 deletions(-)
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index b0c30ffcbc0a..40c05fbadacb 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -820,9 +820,17 @@ static const int num_child_device_handles =
static const char *child_device_handle(struct context *context,
uint16_t handle)
{
- int i;
+ static char buffer[64];
+ size_t len = sizeof(buffer);
+ char *ptr = buffer;
+ bool first = true;
+
+ if (handle == 0)
+ return "none";
+
+ for (int i = 0; i < num_child_device_handles; i++) {
+ int r;
- for (i = 0; i < num_child_device_handles; i++) {
if (!(child_device_handles[i].handle & handle))
continue;
@@ -834,10 +842,23 @@ static const char *child_device_handle(struct context *context,
context->bdb->version > child_device_handles[i].max_ver)
continue;
- return child_device_handles[i].name;
+ handle &= ~child_device_handles[i].handle;
+
+ r = snprintf(ptr, len, "%s%s", first ? "" : ",",
+ child_device_handles[i].name);
+ if (r < 0 || r >= len)
+ break;
+
+ first = false;
+ ptr += r;
+ len -= r;
}
- return "unknown";
+ if (handle)
+ snprintf(ptr, len, "%sunknown(0x%x)",
+ first ? "" : ",", handle);
+
+ return buffer;
}
static const char *dvo_port_names[] = {
--
2.44.1
^ permalink raw reply related [flat|nested] 30+ messages in thread
* Re: [PATCH i-g-t 09/20] tools/intel_vbt_decode: Extract dump_pnp_id()
2024-05-31 14:23 ` [PATCH i-g-t 09/20] tools/intel_vbt_decode: Extract dump_pnp_id() Ville Syrjala
@ 2024-05-31 14:48 ` Jani Nikula
2024-06-05 11:41 ` Ville Syrjälä
0 siblings, 1 reply; 30+ messages in thread
From: Jani Nikula @ 2024-05-31 14:48 UTC (permalink / raw)
To: Ville Syrjala, igt-dev
On Fri, 31 May 2024, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Several different VBT blocks contain PnP IDs. Extract the
> helper to dump them out.
Just nitpicking inline, can be fixed in follow-up. The patch is an
improvement as-is.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> tools/intel_vbt_decode.c | 20 +++++++++++++-------
> 1 file changed, 13 insertions(+), 7 deletions(-)
>
> diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
> index 6cf6d471b5e2..2a11490eed22 100644
> --- a/tools/intel_vbt_decode.c
> +++ b/tools/intel_vbt_decode.c
> @@ -1394,6 +1394,18 @@ static char *decode_pnp_id(u16 mfg_name, char str[4])
> return str;
> }
>
> +static void dump_pnp_id(const struct bdb_edid_pnp_id *pnp_id)
Maybe pass prefix or indent level?
> +{
> + char mfg[4];
> +
> + printf("\t\t Mfg name: %s (0x%x)\n",
> + decode_pnp_id(pnp_id->mfg_name, mfg), pnp_id->mfg_name);
> + printf("\t\t Product code: %u\n", pnp_id->product_code);
> + printf("\t\t Serial: %u\n", pnp_id->serial);
> + printf("\t\t Mfg week: %d\n", pnp_id->mfg_week);
> + printf("\t\t Mfg year: %d\n", 1990 + pnp_id->mfg_year);
These could be improved to match spec (see decode_date() in kernel
drm_edid.c).
> +}
> +
> static void dump_lfp_data(struct context *context,
> const struct bdb_block *block)
> {
> @@ -1419,7 +1431,6 @@ static void dump_lfp_data(struct context *context,
> block_data(block) + ptrs->ptr[i].panel_pnp_id.offset;
> const struct bdb_lfp_data_tail *tail =
> block_data(block) + ptrs->panel_name.offset;
> - char mfg[4];
>
> if (!dump_panel(context, i))
> continue;
> @@ -1457,12 +1468,7 @@ static void dump_lfp_data(struct context *context,
> "BAD!" : "good");
>
> printf("\t\tPnP ID:\n");
I'd do this in dump_pnp_id() too.
> - printf("\t\t Mfg name: %s (0x%x)\n",
> - decode_pnp_id(pnp_id->mfg_name, mfg), pnp_id->mfg_name);
> - printf("\t\t Product code: %u\n", pnp_id->product_code);
> - printf("\t\t Serial: %u\n", pnp_id->serial);
> - printf("\t\t Mfg week: %d\n", pnp_id->mfg_week);
> - printf("\t\t Mfg year: %d\n", 1990 + pnp_id->mfg_year);
> + dump_pnp_id(pnp_id);
>
> if (!ptrs->panel_name.table_size)
> continue;
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH i-g-t 10/20] tools/intel_vbt_decode: Reuse print_detail_timing_data()
2024-05-31 14:23 ` [PATCH i-g-t 10/20] tools/intel_vbt_decode: Reuse print_detail_timing_data() Ville Syrjala
@ 2024-05-31 14:50 ` Jani Nikula
0 siblings, 0 replies; 30+ messages in thread
From: Jani Nikula @ 2024-05-31 14:50 UTC (permalink / raw)
To: Ville Syrjala, igt-dev
On Fri, 31 May 2024, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> We currently have two copies of code to decode the basic EDID
> defined DTD. Get rid of the ad-hoc variant in dump_lfp_data()
> and just reuse print_detail_timing_data() for it.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> tools/intel_vbt_decode.c | 106 ++++++++++++++-------------------------
> 1 file changed, 39 insertions(+), 67 deletions(-)
>
> diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
> index 2a11490eed22..ed18a156c1ee 100644
> --- a/tools/intel_vbt_decode.c
> +++ b/tools/intel_vbt_decode.c
> @@ -53,17 +53,6 @@ typedef uint64_t u64;
> #define _INTEL_BIOS_PRIVATE
> #include "intel_vbt_defs.h"
>
> -/* no bother to include "edid.h" */
> -#define _H_ACTIVE(x) (x[2] + ((x[4] & 0xF0) << 4))
> -#define _H_SYNC_OFF(x) (x[8] + ((x[11] & 0xC0) << 2))
> -#define _H_SYNC_WIDTH(x) (x[9] + ((x[11] & 0x30) << 4))
> -#define _H_BLANK(x) (x[3] + ((x[4] & 0x0F) << 8))
> -#define _V_ACTIVE(x) (x[5] + ((x[7] & 0xF0) << 4))
> -#define _V_SYNC_OFF(x) ((x[10] >> 4) + ((x[11] & 0x0C) << 2))
> -#define _V_SYNC_WIDTH(x) ((x[10] & 0x0F) + ((x[11] & 0x03) << 4))
> -#define _V_BLANK(x) (x[6] + ((x[7] & 0x0F) << 8))
> -#define _PIXEL_CLOCK(x) (x[0] + (x[1] << 8)) * 10000
> -
> #define YESNO(val) ((val) ? "yes" : "no")
>
> /* This is not for mapping to memory layout. */
> @@ -1382,6 +1371,38 @@ static void dump_lfp_data_ptrs(struct context *context,
> }
> }
>
> +static void
> +print_detail_timing_data(const struct bdb_edid_dtd *dvo_timing)
Here too params for "heading" line and indent/prefix might be
appropriate. Again, can be improved in follow-up.
> +{
> + int display, sync_start, sync_end, total;
> +
> + display = (dvo_timing->hactive_hi << 8) | dvo_timing->hactive_lo;
> + sync_start = display +
> + ((dvo_timing->hsync_off_hi << 8) | dvo_timing->hsync_off_lo);
> + sync_end = sync_start + ((dvo_timing->hsync_pulse_width_hi << 8) |
> + dvo_timing->hsync_pulse_width_lo);
> + total = display +
> + ((dvo_timing->hblank_hi << 8) | dvo_timing->hblank_lo);
> + printf("\t\t hdisplay: %d\n", display);
> + printf("\t\t hsync [%d, %d] %s\n", sync_start, sync_end,
> + dvo_timing->hsync_positive ? "+sync" : "-sync");
> + printf("\t\t htotal: %d\n", total);
> +
> + display = (dvo_timing->vactive_hi << 8) | dvo_timing->vactive_lo;
> + sync_start = display + ((dvo_timing->vsync_off_hi << 8) |
> + dvo_timing->vsync_off_lo);
> + sync_end = sync_start + ((dvo_timing->vsync_pulse_width_hi << 8) |
> + dvo_timing->vsync_pulse_width_lo);
> + total = display +
> + ((dvo_timing->vblank_hi << 8) | dvo_timing->vblank_lo);
> + printf("\t\t vdisplay: %d\n", display);
> + printf("\t\t vsync [%d, %d] %s\n", sync_start, sync_end,
> + dvo_timing->vsync_positive ? "+sync" : "-sync");
> + printf("\t\t vtotal: %d\n", total);
> +
> + printf("\t\t clock: %d\n", dvo_timing->clock * 10);
> +}
> +
> static char *decode_pnp_id(u16 mfg_name, char str[4])
> {
> mfg_name = ntohs(mfg_name);
> @@ -1412,9 +1433,6 @@ static void dump_lfp_data(struct context *context,
> struct bdb_block *ptrs_block;
> const struct bdb_lfp_data_ptrs *ptrs;
> int i;
> - int hdisplay, hsyncstart, hsyncend, htotal;
> - int vdisplay, vsyncstart, vsyncend, vtotal;
> - float clock;
>
> ptrs_block = find_section(context, BDB_LFP_DATA_PTRS);
> if (!ptrs_block)
> @@ -1425,7 +1443,7 @@ static void dump_lfp_data(struct context *context,
> for (i = 0; i < 16; i++) {
> const struct fp_timing *fp_timing =
> block_data(block) + ptrs->ptr[i].fp_timing.offset;
> - const uint8_t *timing_data =
> + const struct bdb_edid_dtd *dvo_timing =
> block_data(block) + ptrs->ptr[i].dvo_timing.offset;
> const struct bdb_edid_pnp_id *pnp_id =
> block_data(block) + ptrs->ptr[i].panel_pnp_id.offset;
> @@ -1435,22 +1453,10 @@ static void dump_lfp_data(struct context *context,
> if (!dump_panel(context, i))
> continue;
>
> - hdisplay = _H_ACTIVE(timing_data);
> - hsyncstart = hdisplay + _H_SYNC_OFF(timing_data);
> - hsyncend = hsyncstart + _H_SYNC_WIDTH(timing_data);
> - htotal = hdisplay + _H_BLANK(timing_data);
> -
> - vdisplay = _V_ACTIVE(timing_data);
> - vsyncstart = vdisplay + _V_SYNC_OFF(timing_data);
> - vsyncend = vsyncstart + _V_SYNC_WIDTH(timing_data);
> - vtotal = vdisplay + _V_BLANK(timing_data);
> - clock = _PIXEL_CLOCK(timing_data) / 1000;
> -
> printf("\tPanel %d%s\n", i, panel_str(context, i));
> - printf("\t\t%dx%d clock %d\n",
> - fp_timing->x_res, fp_timing->y_res,
> - _PIXEL_CLOCK(timing_data));
> - printf("\t\tinfo:\n");
> + printf("\t\tResolution: %dx%d\n",
> + fp_timing->x_res, fp_timing->y_res);
> + printf("\t\tFP timing data:\n");
> printf("\t\t LVDS: 0x%08lx\n",
> (unsigned long)fp_timing->lvds_reg_val);
> printf("\t\t PP_ON_DELAYS: 0x%08lx\n",
> @@ -1461,11 +1467,9 @@ static void dump_lfp_data(struct context *context,
> (unsigned long)fp_timing->pp_cycle_reg_val);
> printf("\t\t PFIT: 0x%08lx\n",
> (unsigned long)fp_timing->pfit_reg_val);
> - printf("\t\ttimings: %d %d %d %d %d %d %d %d %.2f (%s)\n",
> - hdisplay, hsyncstart, hsyncend, htotal,
> - vdisplay, vsyncstart, vsyncend, vtotal, clock,
> - (hsyncend > htotal || vsyncend > vtotal) ?
> - "BAD!" : "good");
> +
> + printf("\t\tDVO timing:\n");
> + print_detail_timing_data(dvo_timing);
>
> printf("\t\tPnP ID:\n");
> dump_pnp_id(pnp_id);
> @@ -1926,38 +1930,6 @@ static void dump_lfp_power(struct context *context,
> }
> }
>
> -static void
> -print_detail_timing_data(const struct bdb_edid_dtd *dvo_timing)
> -{
> - int display, sync_start, sync_end, total;
> -
> - display = (dvo_timing->hactive_hi << 8) | dvo_timing->hactive_lo;
> - sync_start = display +
> - ((dvo_timing->hsync_off_hi << 8) | dvo_timing->hsync_off_lo);
> - sync_end = sync_start + ((dvo_timing->hsync_pulse_width_hi << 8) |
> - dvo_timing->hsync_pulse_width_lo);
> - total = display +
> - ((dvo_timing->hblank_hi << 8) | dvo_timing->hblank_lo);
> - printf("\thdisplay: %d\n", display);
> - printf("\thsync [%d, %d] %s\n", sync_start, sync_end,
> - dvo_timing->hsync_positive ? "+sync" : "-sync");
> - printf("\thtotal: %d\n", total);
> -
> - display = (dvo_timing->vactive_hi << 8) | dvo_timing->vactive_lo;
> - sync_start = display + ((dvo_timing->vsync_off_hi << 8) |
> - dvo_timing->vsync_off_lo);
> - sync_end = sync_start + ((dvo_timing->vsync_pulse_width_hi << 8) |
> - dvo_timing->vsync_pulse_width_lo);
> - total = display +
> - ((dvo_timing->vblank_hi << 8) | dvo_timing->vblank_lo);
> - printf("\tvdisplay: %d\n", display);
> - printf("\tvsync [%d, %d] %s\n", sync_start, sync_end,
> - dvo_timing->vsync_positive ? "+sync" : "-sync");
> - printf("\tvtotal: %d\n", total);
> -
> - printf("\tclock: %d\n", dvo_timing->clock * 10);
> -}
> -
> static void dump_sdvo_lvds_dtd(struct context *context,
> const struct bdb_block *block)
> {
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH i-g-t 20/20] tools/intel_vbt_decode: Decode device handle as a bitmask
2024-05-31 14:23 ` [PATCH i-g-t 20/20] tools/intel_vbt_decode: Decode device handle as a bitmask Ville Syrjala
@ 2024-05-31 15:10 ` Jani Nikula
0 siblings, 0 replies; 30+ messages in thread
From: Jani Nikula @ 2024-05-31 15:10 UTC (permalink / raw)
To: Ville Syrjala, igt-dev
On Fri, 31 May 2024, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Some VBT blocks contain bitmasks of device handles (where multiple
> bits can be set simultanously). Allow decoding such things by
> having child_device_handle() take in the whole bitmask instead of
> assuming just one bit.
>
> We'll cheat a bit with a static buffer for the output string.
> That should be fine given the simplicity of the tool.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> tools/intel_vbt_decode.c | 29 +++++++++++++++++++++++++----
> 1 file changed, 25 insertions(+), 4 deletions(-)
>
> diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
> index b0c30ffcbc0a..40c05fbadacb 100644
> --- a/tools/intel_vbt_decode.c
> +++ b/tools/intel_vbt_decode.c
> @@ -820,9 +820,17 @@ static const int num_child_device_handles =
> static const char *child_device_handle(struct context *context,
> uint16_t handle)
> {
> - int i;
> + static char buffer[64];
> + size_t len = sizeof(buffer);
> + char *ptr = buffer;
> + bool first = true;
Bikeshed, I've found it to be handy to do:
const char *sep = "";
> +
> + if (handle == 0)
> + return "none";
> +
> + for (int i = 0; i < num_child_device_handles; i++) {
> + int r;
>
> - for (i = 0; i < num_child_device_handles; i++) {
> if (!(child_device_handles[i].handle & handle))
> continue;
>
> @@ -834,10 +842,23 @@ static const char *child_device_handle(struct context *context,
> context->bdb->version > child_device_handles[i].max_ver)
> continue;
>
> - return child_device_handles[i].name;
> + handle &= ~child_device_handles[i].handle;
> +
> + r = snprintf(ptr, len, "%s%s", first ? "" : ",",
> + child_device_handles[i].name);
And
r = snprintf(ptr, len, "%s%s", sep,
child_device_handles[i].name);
sep = ","
but what you have works too.
> + if (r < 0 || r >= len)
> + break;
> +
> + first = false;
> + ptr += r;
> + len -= r;
> }
>
> - return "unknown";
> + if (handle)
> + snprintf(ptr, len, "%sunknown(0x%x)",
> + first ? "" : ",", handle);
> +
> + return buffer;
> }
>
> static const char *dvo_port_names[] = {
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH i-g-t 00/20] tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks
2024-05-31 14:23 [PATCH i-g-t 00/20] tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks Ville Syrjala
` (19 preceding siblings ...)
2024-05-31 14:23 ` [PATCH i-g-t 20/20] tools/intel_vbt_decode: Decode device handle as a bitmask Ville Syrjala
@ 2024-05-31 15:11 ` Jani Nikula
2024-05-31 16:53 ` ✗ GitLab.Pipeline: warning for " Patchwork
` (3 subsequent siblings)
24 siblings, 0 replies; 30+ messages in thread
From: Jani Nikula @ 2024-05-31 15:11 UTC (permalink / raw)
To: Ville Syrjala, igt-dev
On Fri, 31 May 2024, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> A bunch of refactoring/cleanups/etc. to intel_vbt_decode. I have
> a followup also lined up that implementes decoding of nearly all
> known blocks, but figured I'll get all the other stuff out of the
> way first.
Some minor nitpicks that can be ignored or clean up later, series is
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
>
> Ville Syrjälä (20):
> tools/intel_vbt_decode: Finish the s/lvds/lfp/ rename
> tools/intel_vbt_decode: s/dump_sdvo_panel_dtd()/dump_sdvo_lvds_dtd()/
> lib: Define DIV_ROUND_CLOSEST()
> tools/intel_vbt_decode: Fix some tabs
> tools/intel_vbt_decode: Add missing newline
> tools/intel_vbt_decode: Indent ALS dump
> tools/intel_vbt_decode: Use "(LFP<n>)" to indicate LFP panel type
> tools/intel_vbt_decode: Decode the "not HDMI" bit right way up
> tools/intel_vbt_decode: Extract dump_pnp_id()
> tools/intel_vbt_decode: Reuse print_detail_timing_data()
> tools/intel_vbt_decode: Dump the new eDP DSC disable bit
> tools/intel_vbt_decode: Allow dumpers to delcate min version for the
> block
> tools/intel_vbt_decode: Use .min_bdb_version to filter out PSR block
> on pre-165 VBTs
> tools/intel_vbt_decode: Sort dumper table
> tools/intel_vbt_decode: Use struct bdb_sdvo_lvds_dtd
> tools/intel_vbt_decode: Track the SDVO panel type
> tools/intel_vbt_decode: Use find_raw_section() to determine block
> presence
> tools/intel_vbt_decode: Make device handle names more compact
> tools/intel_vbt_decode: Declare min/max version for child dev handles
> tools/intel_vbt_decode: Decode device handle as a bitmask
>
> lib/igt_aux.h | 1 +
> tools/intel_vbt_decode.c | 395 ++++++++++++++++++++++-----------------
> 2 files changed, 224 insertions(+), 172 deletions(-)
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 30+ messages in thread
* ✗ GitLab.Pipeline: warning for tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks
2024-05-31 14:23 [PATCH i-g-t 00/20] tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks Ville Syrjala
` (20 preceding siblings ...)
2024-05-31 15:11 ` [PATCH i-g-t 00/20] tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks Jani Nikula
@ 2024-05-31 16:53 ` Patchwork
2024-05-31 17:19 ` ✗ Fi.CI.BAT: failure " Patchwork
` (2 subsequent siblings)
24 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2024-05-31 16:53 UTC (permalink / raw)
To: Ville Syrjala; +Cc: igt-dev
== Series Details ==
Series: tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks
URL : https://patchwork.freedesktop.org/series/134306/
State : warning
== Summary ==
Pipeline status: FAILED.
see https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/pipelines/1191100 for the overview.
test:ninja-test has failed (https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/jobs/59397171):
423/427 assembler test/rnde-intsrc OK 0.01 s
424/427 assembler test/rndz OK 0.02 s
425/427 assembler test/lzd OK 0.02 s
426/427 assembler test/not OK 0.02 s
427/427 assembler test/immediate OK 0.01 s
Ok: 422
Expected Fail: 4
Fail: 1
Unexpected Pass: 0
Skipped: 0
Timeout: 0
Full log written to /builds/gfx-ci/igt-ci-tags/build/meson-logs/testlog.txt
section_end:1717174286:step_script
section_start:1717174286:cleanup_file_variables
Cleaning up project directory and file based variables
section_end:1717174287:cleanup_file_variables
ERROR: Job failed: exit code 1
== Logs ==
For more details see: https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/pipelines/1191100
^ permalink raw reply [flat|nested] 30+ messages in thread
* ✗ Fi.CI.BAT: failure for tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks
2024-05-31 14:23 [PATCH i-g-t 00/20] tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks Ville Syrjala
` (21 preceding siblings ...)
2024-05-31 16:53 ` ✗ GitLab.Pipeline: warning for " Patchwork
@ 2024-05-31 17:19 ` Patchwork
2024-05-31 17:24 ` ✓ CI.xeBAT: success " Patchwork
2024-05-31 19:02 ` ✗ CI.xeFULL: failure " Patchwork
24 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2024-05-31 17:19 UTC (permalink / raw)
To: Ville Syrjala; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 10325 bytes --]
== Series Details ==
Series: tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks
URL : https://patchwork.freedesktop.org/series/134306/
State : failure
== Summary ==
CI Bug Log - changes from IGT_7876 -> IGTPW_11213
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with IGTPW_11213 absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_11213, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
to document this new failure mode, which will reduce false positives in CI.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11213/index.html
Participating hosts (41 -> 38)
------------------------------
Additional (3): fi-glk-j4005 bat-arls-1 fi-kbl-8809g
Missing (6): bat-kbl-2 bat-arls-3 fi-snb-2520m fi-cfl-8109u bat-dg2-11 bat-mtlp-6
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_11213:
### IGT changes ###
#### Possible regressions ####
* igt@i915_selftest@live@gt_lrc:
- bat-adls-6: [PASS][1] -> [DMESG-FAIL][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7876/bat-adls-6/igt@i915_selftest@live@gt_lrc.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11213/bat-adls-6/igt@i915_selftest@live@gt_lrc.html
Known issues
------------
Here are the changes found in IGTPW_11213 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@debugfs_test@basic-hwmon:
- bat-arls-1: NOTRUN -> [SKIP][3] ([i915#9318])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11213/bat-arls-1/igt@debugfs_test@basic-hwmon.html
* igt@gem_huc_copy@huc-copy:
- fi-kbl-8809g: NOTRUN -> [SKIP][4] ([i915#2190])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11213/fi-kbl-8809g/igt@gem_huc_copy@huc-copy.html
- fi-glk-j4005: NOTRUN -> [SKIP][5] ([i915#2190])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11213/fi-glk-j4005/igt@gem_huc_copy@huc-copy.html
* igt@gem_lmem_swapping@basic:
- fi-glk-j4005: NOTRUN -> [SKIP][6] ([i915#4613]) +3 other tests skip
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11213/fi-glk-j4005/igt@gem_lmem_swapping@basic.html
- fi-kbl-8809g: NOTRUN -> [SKIP][7] ([i915#4613]) +3 other tests skip
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11213/fi-kbl-8809g/igt@gem_lmem_swapping@basic.html
* igt@gem_lmem_swapping@random-engines:
- bat-arls-1: NOTRUN -> [SKIP][8] ([i915#10213]) +3 other tests skip
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11213/bat-arls-1/igt@gem_lmem_swapping@random-engines.html
* igt@gem_mmap@basic:
- bat-arls-1: NOTRUN -> [SKIP][9] ([i915#4083])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11213/bat-arls-1/igt@gem_mmap@basic.html
* igt@gem_render_tiled_blits@basic:
- bat-arls-1: NOTRUN -> [SKIP][10] ([i915#10197] / [i915#10211] / [i915#4079])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11213/bat-arls-1/igt@gem_render_tiled_blits@basic.html
* igt@gem_tiled_blits@basic:
- bat-arls-1: NOTRUN -> [SKIP][11] ([i915#10196] / [i915#4077]) +2 other tests skip
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11213/bat-arls-1/igt@gem_tiled_blits@basic.html
* igt@gem_tiled_pread_basic:
- bat-arls-1: NOTRUN -> [SKIP][12] ([i915#10206] / [i915#4079])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11213/bat-arls-1/igt@gem_tiled_pread_basic.html
* igt@i915_pm_rps@basic-api:
- bat-arls-1: NOTRUN -> [SKIP][13] ([i915#10209])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11213/bat-arls-1/igt@i915_pm_rps@basic-api.html
* igt@i915_selftest@live@hangcheck:
- bat-adlp-6: [PASS][14] -> [ABORT][15] ([i915#10021])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7876/bat-adlp-6/igt@i915_selftest@live@hangcheck.html
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11213/bat-adlp-6/igt@i915_selftest@live@hangcheck.html
* igt@kms_addfb_basic@addfb25-x-tiled-legacy:
- bat-arls-1: NOTRUN -> [SKIP][16] ([i915#10200]) +9 other tests skip
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11213/bat-arls-1/igt@kms_addfb_basic@addfb25-x-tiled-legacy.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- fi-glk-j4005: NOTRUN -> [SKIP][17] +10 other tests skip
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11213/fi-glk-j4005/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
- bat-arls-1: NOTRUN -> [SKIP][18] ([i915#10202]) +1 other test skip
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11213/bat-arls-1/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
* igt@kms_dsc@dsc-basic:
- bat-arls-1: NOTRUN -> [SKIP][19] ([i915#9886])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11213/bat-arls-1/igt@kms_dsc@dsc-basic.html
* igt@kms_force_connector_basic@force-load-detect:
- fi-kbl-8809g: NOTRUN -> [SKIP][20] +30 other tests skip
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11213/fi-kbl-8809g/igt@kms_force_connector_basic@force-load-detect.html
- bat-arls-1: NOTRUN -> [SKIP][21] ([i915#10207])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11213/bat-arls-1/igt@kms_force_connector_basic@force-load-detect.html
* igt@kms_pm_backlight@basic-brightness:
- bat-arls-1: NOTRUN -> [SKIP][22] ([i915#9812])
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11213/bat-arls-1/igt@kms_pm_backlight@basic-brightness.html
* igt@kms_psr@psr-primary-mmap-gtt:
- bat-arls-1: NOTRUN -> [SKIP][23] ([i915#9732]) +3 other tests skip
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11213/bat-arls-1/igt@kms_psr@psr-primary-mmap-gtt.html
* igt@kms_setmode@basic-clone-single-crtc:
- bat-arls-1: NOTRUN -> [SKIP][24] ([i915#10208] / [i915#8809])
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11213/bat-arls-1/igt@kms_setmode@basic-clone-single-crtc.html
* igt@prime_vgem@basic-fence-read:
- bat-arls-1: NOTRUN -> [SKIP][25] ([i915#10212] / [i915#3708])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11213/bat-arls-1/igt@prime_vgem@basic-fence-read.html
* igt@prime_vgem@basic-gtt:
- bat-arls-1: NOTRUN -> [SKIP][26] ([i915#10196] / [i915#3708] / [i915#4077]) +1 other test skip
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11213/bat-arls-1/igt@prime_vgem@basic-gtt.html
* igt@prime_vgem@basic-read:
- bat-arls-1: NOTRUN -> [SKIP][27] ([i915#10214] / [i915#3708])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11213/bat-arls-1/igt@prime_vgem@basic-read.html
* igt@prime_vgem@basic-write:
- bat-arls-1: NOTRUN -> [SKIP][28] ([i915#10216] / [i915#3708])
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11213/bat-arls-1/igt@prime_vgem@basic-write.html
#### Possible fixes ####
* igt@gem_lmem_swapping@basic@lmem0:
- bat-dg2-8: [FAIL][29] ([i915#10378]) -> [PASS][30]
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7876/bat-dg2-8/igt@gem_lmem_swapping@basic@lmem0.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11213/bat-dg2-8/igt@gem_lmem_swapping@basic@lmem0.html
* igt@i915_selftest@live@evict:
- bat-adlm-1: [DMESG-FAIL][31] -> [PASS][32]
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7876/bat-adlm-1/igt@i915_selftest@live@evict.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11213/bat-adlm-1/igt@i915_selftest@live@evict.html
[i915#10021]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10021
[i915#10196]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10196
[i915#10197]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10197
[i915#10200]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10200
[i915#10202]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10202
[i915#10206]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10206
[i915#10207]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10207
[i915#10208]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10208
[i915#10209]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10209
[i915#10211]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10211
[i915#10212]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10212
[i915#10213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10213
[i915#10214]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10214
[i915#10216]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10216
[i915#10378]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10378
[i915#2190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2190
[i915#3708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3708
[i915#4077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4077
[i915#4079]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4079
[i915#4083]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4083
[i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613
[i915#8809]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8809
[i915#9318]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9318
[i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732
[i915#9812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9812
[i915#9886]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9886
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_7876 -> IGTPW_11213
CI-20190529: 20190529
CI_DRM_14865: 71fb583af6dea41793b38d947a991f06156f7f11 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_11213: 3ba2cbebaf24c043350a8475441f40ccac486d11 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
IGT_7876: 7876
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11213/index.html
[-- Attachment #2: Type: text/html, Size: 12159 bytes --]
^ permalink raw reply [flat|nested] 30+ messages in thread
* ✓ CI.xeBAT: success for tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks
2024-05-31 14:23 [PATCH i-g-t 00/20] tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks Ville Syrjala
` (22 preceding siblings ...)
2024-05-31 17:19 ` ✗ Fi.CI.BAT: failure " Patchwork
@ 2024-05-31 17:24 ` Patchwork
2024-05-31 19:02 ` ✗ CI.xeFULL: failure " Patchwork
24 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2024-05-31 17:24 UTC (permalink / raw)
To: Ville Syrjala; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 892 bytes --]
== Series Details ==
Series: tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks
URL : https://patchwork.freedesktop.org/series/134306/
State : success
== Summary ==
CI Bug Log - changes from XEIGT_7876_BAT -> XEIGTPW_11213_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (5 -> 5)
------------------------------
No changes in participating hosts
Changes
-------
No changes found
Build changes
-------------
* IGT: IGT_7876 -> IGTPW_11213
IGTPW_11213: 3ba2cbebaf24c043350a8475441f40ccac486d11 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
IGT_7876: 7876
xe-1390-71fb583af6dea41793b38d947a991f06156f7f11: 71fb583af6dea41793b38d947a991f06156f7f11
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/index.html
[-- Attachment #2: Type: text/html, Size: 1437 bytes --]
^ permalink raw reply [flat|nested] 30+ messages in thread
* ✗ CI.xeFULL: failure for tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks
2024-05-31 14:23 [PATCH i-g-t 00/20] tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks Ville Syrjala
` (23 preceding siblings ...)
2024-05-31 17:24 ` ✓ CI.xeBAT: success " Patchwork
@ 2024-05-31 19:02 ` Patchwork
24 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2024-05-31 19:02 UTC (permalink / raw)
To: Ville Syrjala; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 49367 bytes --]
== Series Details ==
Series: tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks
URL : https://patchwork.freedesktop.org/series/134306/
State : failure
== Summary ==
CI Bug Log - changes from XEIGT_7876_full -> XEIGTPW_11213_full
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with XEIGTPW_11213_full absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in XEIGTPW_11213_full, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
to document this new failure mode, which will reduce false positives in CI.
Participating hosts (3 -> 2)
------------------------------
Missing (1): shard-adlp
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in XEIGTPW_11213_full:
### IGT changes ###
#### Possible regressions ####
* igt@kms_flip@flip-vs-expired-vblank-interruptible@a-hdmi-a6:
- shard-dg2-set2: [PASS][1] -> [ABORT][2]
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-464/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-hdmi-a6.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-463/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-hdmi-a6.html
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses.
They do not affect the overall result.
* igt@kms_pipe_crc_basic@read-crc-frame-sequence:
- {shard-lnl}: NOTRUN -> [INCOMPLETE][3] +1 other test incomplete
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-lnl-8/igt@kms_pipe_crc_basic@read-crc-frame-sequence.html
* igt@xe_gt_freq@freq_reset_multiple:
- {shard-lnl}: [PASS][4] -> [DMESG-WARN][5]
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-lnl-5/igt@xe_gt_freq@freq_reset_multiple.html
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-lnl-4/igt@xe_gt_freq@freq_reset_multiple.html
Known issues
------------
Here are the changes found in XEIGTPW_11213_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_big_fb@4-tiled-8bpp-rotate-90:
- shard-dg2-set2: NOTRUN -> [SKIP][6] ([Intel XE#1201] / [Intel XE#316]) +1 other test skip
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-463/igt@kms_big_fb@4-tiled-8bpp-rotate-90.html
* igt@kms_big_fb@yf-tiled-16bpp-rotate-0:
- shard-dg2-set2: NOTRUN -> [SKIP][7] ([Intel XE#1124] / [Intel XE#1201]) +2 other tests skip
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-433/igt@kms_big_fb@yf-tiled-16bpp-rotate-0.html
* igt@kms_bw@linear-tiling-4-displays-2160x1440p:
- shard-dg2-set2: NOTRUN -> [SKIP][8] ([Intel XE#1201] / [Intel XE#367])
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-436/igt@kms_bw@linear-tiling-4-displays-2160x1440p.html
* igt@kms_ccs@bad-pixel-format-y-tiled-ccs:
- shard-dg2-set2: NOTRUN -> [SKIP][9] ([Intel XE#1201] / [Intel XE#455] / [Intel XE#787]) +3 other tests skip
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-436/igt@kms_ccs@bad-pixel-format-y-tiled-ccs.html
* igt@kms_ccs@bad-rotation-90-y-tiled-ccs@pipe-a-hdmi-a-6:
- shard-dg2-set2: NOTRUN -> [SKIP][10] ([Intel XE#1201] / [Intel XE#787]) +13 other tests skip
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-436/igt@kms_ccs@bad-rotation-90-y-tiled-ccs@pipe-a-hdmi-a-6.html
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs-cc@pipe-c-hdmi-a-6:
- shard-dg2-set2: NOTRUN -> [FAIL][11] ([Intel XE#616]) +8 other tests fail
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-464/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs-cc@pipe-c-hdmi-a-6.html
* igt@kms_chamelium_color@ctm-0-75:
- shard-dg2-set2: NOTRUN -> [SKIP][12] ([Intel XE#1201] / [Intel XE#306])
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-464/igt@kms_chamelium_color@ctm-0-75.html
* igt@kms_chamelium_hpd@dp-hpd-fast:
- shard-dg2-set2: NOTRUN -> [SKIP][13] ([Intel XE#1201] / [Intel XE#373]) +1 other test skip
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-464/igt@kms_chamelium_hpd@dp-hpd-fast.html
* igt@kms_cursor_legacy@cursor-vs-flip-toggle:
- shard-dg2-set2: [PASS][14] -> [DMESG-WARN][15] ([Intel XE#1214] / [Intel XE#282]) +5 other tests dmesg-warn
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-463/igt@kms_cursor_legacy@cursor-vs-flip-toggle.html
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-433/igt@kms_cursor_legacy@cursor-vs-flip-toggle.html
* igt@kms_cursor_legacy@cursora-vs-flipa-varying-size:
- shard-dg2-set2: NOTRUN -> [DMESG-WARN][16] ([Intel XE#1214] / [Intel XE#282])
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-433/igt@kms_cursor_legacy@cursora-vs-flipa-varying-size.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible:
- shard-dg2-set2: [PASS][17] -> [ABORT][18] ([Intel XE#1205])
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-464/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-463/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling@pipe-a-valid-mode:
- shard-dg2-set2: NOTRUN -> [SKIP][19] ([Intel XE#455]) +3 other tests skip
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-432/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling@pipe-a-valid-mode.html
* igt@kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-onoff:
- shard-dg2-set2: NOTRUN -> [SKIP][20] ([Intel XE#651]) +2 other tests skip
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-432/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-onoff.html
* igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-move:
- shard-dg2-set2: NOTRUN -> [SKIP][21] ([Intel XE#1201] / [Intel XE#651]) +4 other tests skip
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-434/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-move.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-blt:
- shard-dg2-set2: NOTRUN -> [SKIP][22] ([Intel XE#653])
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-432/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-wc:
- shard-dg2-set2: NOTRUN -> [SKIP][23] ([Intel XE#1201] / [Intel XE#653]) +3 other tests skip
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-433/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-wc.html
* igt@kms_pm_dc@dc3co-vpb-simulation:
- shard-dg2-set2: NOTRUN -> [SKIP][24] ([Intel XE#1122] / [Intel XE#1201])
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-463/igt@kms_pm_dc@dc3co-vpb-simulation.html
* igt@kms_psr2_sf@cursor-plane-move-continuous-exceed-fully-sf:
- shard-dg2-set2: NOTRUN -> [SKIP][25] ([Intel XE#1201] / [Intel XE#929]) +2 other tests skip
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-436/igt@kms_psr2_sf@cursor-plane-move-continuous-exceed-fully-sf.html
* igt@kms_universal_plane@cursor-fb-leak:
- shard-dg2-set2: [PASS][26] -> [FAIL][27] ([Intel XE#771] / [Intel XE#899])
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-433/igt@kms_universal_plane@cursor-fb-leak.html
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-464/igt@kms_universal_plane@cursor-fb-leak.html
* igt@kms_universal_plane@cursor-fb-leak@pipe-b-dp-4:
- shard-dg2-set2: [PASS][28] -> [FAIL][29] ([Intel XE#899])
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-433/igt@kms_universal_plane@cursor-fb-leak@pipe-b-dp-4.html
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-464/igt@kms_universal_plane@cursor-fb-leak@pipe-b-dp-4.html
* igt@xe_ccs@suspend-resume@tile4-compressed-compfmt0-system-vram01:
- shard-dg2-set2: [PASS][30] -> [INCOMPLETE][31] ([Intel XE#1195]) +1 other test incomplete
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-432/igt@xe_ccs@suspend-resume@tile4-compressed-compfmt0-system-vram01.html
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-436/igt@xe_ccs@suspend-resume@tile4-compressed-compfmt0-system-vram01.html
* igt@xe_evict@evict-beng-mixed-threads-large:
- shard-dg2-set2: [PASS][32] -> [TIMEOUT][33] ([Intel XE#1473] / [Intel XE#392])
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-464/igt@xe_evict@evict-beng-mixed-threads-large.html
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-433/igt@xe_evict@evict-beng-mixed-threads-large.html
* igt@xe_exec_fault_mode@many-bindexecqueue-userptr-rebind-prefetch:
- shard-dg2-set2: NOTRUN -> [SKIP][34] ([Intel XE#288])
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-432/igt@xe_exec_fault_mode@many-bindexecqueue-userptr-rebind-prefetch.html
* igt@xe_exec_fault_mode@once-basic:
- shard-dg2-set2: NOTRUN -> [SKIP][35] ([Intel XE#1201] / [Intel XE#288]) +6 other tests skip
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-436/igt@xe_exec_fault_mode@once-basic.html
* igt@xe_live_ktest@xe_migrate:
- shard-dg2-set2: [PASS][36] -> [SKIP][37] ([Intel XE#1192] / [Intel XE#1201]) +1 other test skip
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-433/igt@xe_live_ktest@xe_migrate.html
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-436/igt@xe_live_ktest@xe_migrate.html
* igt@xe_live_ktest@xe_mocs@xe_live_mocs_kernel_kunit:
- shard-dg2-set2: NOTRUN -> [FAIL][38] ([Intel XE#1999]) +1 other test fail
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-433/igt@xe_live_ktest@xe_mocs@xe_live_mocs_kernel_kunit.html
* igt@xe_pm@s4-basic:
- shard-dg2-set2: [PASS][39] -> [DMESG-WARN][40] ([Intel XE#1162] / [Intel XE#1214] / [Intel XE#1551])
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-432/igt@xe_pm@s4-basic.html
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-436/igt@xe_pm@s4-basic.html
* igt@xe_pm@s4-vm-bind-userptr:
- shard-dg2-set2: [PASS][41] -> [DMESG-WARN][42] ([Intel XE#1162] / [Intel XE#1214])
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-435/igt@xe_pm@s4-vm-bind-userptr.html
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-436/igt@xe_pm@s4-vm-bind-userptr.html
#### Possible fixes ####
* igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip:
- {shard-lnl}: [FAIL][43] ([Intel XE#1659]) -> [PASS][44]
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-lnl-3/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-lnl-1/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
* igt@kms_bw@linear-tiling-1-displays-3840x2160p:
- {shard-lnl}: [DMESG-WARN][45] -> [PASS][46]
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-lnl-5/igt@kms_bw@linear-tiling-1-displays-3840x2160p.html
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-lnl-6/igt@kms_bw@linear-tiling-1-displays-3840x2160p.html
* igt@kms_cursor_legacy@2x-cursor-vs-flip-legacy:
- shard-dg2-set2: [DMESG-WARN][47] ([Intel XE#1214] / [Intel XE#282]) -> [PASS][48] +2 other tests pass
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-434/igt@kms_cursor_legacy@2x-cursor-vs-flip-legacy.html
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-464/igt@kms_cursor_legacy@2x-cursor-vs-flip-legacy.html
* igt@kms_cursor_legacy@basic-flip-after-cursor-legacy:
- shard-dg2-set2: [INCOMPLETE][49] ([Intel XE#1195]) -> [PASS][50] +1 other test pass
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-463/igt@kms_cursor_legacy@basic-flip-after-cursor-legacy.html
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-432/igt@kms_cursor_legacy@basic-flip-after-cursor-legacy.html
* igt@kms_flip@2x-flip-vs-suspend@ab-hdmi-a6-dp4:
- shard-dg2-set2: [DMESG-WARN][51] ([Intel XE#1162] / [Intel XE#1214]) -> [PASS][52] +2 other tests pass
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-436/igt@kms_flip@2x-flip-vs-suspend@ab-hdmi-a6-dp4.html
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-466/igt@kms_flip@2x-flip-vs-suspend@ab-hdmi-a6-dp4.html
* igt@kms_pipe_crc_basic@suspend-read-crc:
- shard-dg2-set2: [DMESG-WARN][53] ([Intel XE#1162]) -> [PASS][54] +1 other test pass
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-432/igt@kms_pipe_crc_basic@suspend-read-crc.html
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-464/igt@kms_pipe_crc_basic@suspend-read-crc.html
* igt@kms_pm_dc@dc5-dpms:
- {shard-lnl}: [FAIL][55] ([Intel XE#718]) -> [PASS][56]
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-lnl-6/igt@kms_pm_dc@dc5-dpms.html
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-lnl-7/igt@kms_pm_dc@dc5-dpms.html
* igt@kms_sequence@queue-idle:
- {shard-lnl}: [FAIL][57] ([Intel XE#1588]) -> [PASS][58]
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-lnl-1/igt@kms_sequence@queue-idle.html
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-lnl-7/igt@kms_sequence@queue-idle.html
* igt@kms_sequence@queue-idle@pipe-b-edp-1:
- {shard-lnl}: [FAIL][59] -> [PASS][60]
[59]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-lnl-1/igt@kms_sequence@queue-idle@pipe-b-edp-1.html
[60]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-lnl-7/igt@kms_sequence@queue-idle@pipe-b-edp-1.html
* igt@xe_exec_fault_mode@many-userptr-invalidate-race:
- {shard-lnl}: [ABORT][61] ([Intel XE#1761]) -> [PASS][62]
[61]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-lnl-6/igt@xe_exec_fault_mode@many-userptr-invalidate-race.html
[62]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-lnl-7/igt@xe_exec_fault_mode@many-userptr-invalidate-race.html
* igt@xe_pm@s2idle-vm-bind-unbind-all:
- shard-dg2-set2: [INCOMPLETE][63] ([Intel XE#1195] / [Intel XE#1694]) -> [PASS][64]
[63]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-434/igt@xe_pm@s2idle-vm-bind-unbind-all.html
[64]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-436/igt@xe_pm@s2idle-vm-bind-unbind-all.html
* igt@xe_pm@s4-vm-bind-userptr:
- {shard-lnl}: [ABORT][65] ([Intel XE#1794]) -> [PASS][66]
[65]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-lnl-2/igt@xe_pm@s4-vm-bind-userptr.html
[66]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-lnl-4/igt@xe_pm@s4-vm-bind-userptr.html
#### Warnings ####
* igt@kms_big_fb@linear-8bpp-rotate-270:
- shard-dg2-set2: [SKIP][67] ([Intel XE#1201] / [Intel XE#316]) -> [SKIP][68] ([Intel XE#316]) +2 other tests skip
[67]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-433/igt@kms_big_fb@linear-8bpp-rotate-270.html
[68]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-432/igt@kms_big_fb@linear-8bpp-rotate-270.html
* igt@kms_big_fb@y-tiled-32bpp-rotate-90:
- shard-dg2-set2: [SKIP][69] ([Intel XE#1124]) -> [SKIP][70] ([Intel XE#1124] / [Intel XE#1201]) +3 other tests skip
[69]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-432/igt@kms_big_fb@y-tiled-32bpp-rotate-90.html
[70]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-435/igt@kms_big_fb@y-tiled-32bpp-rotate-90.html
* igt@kms_big_fb@y-tiled-addfb:
- shard-dg2-set2: [SKIP][71] ([Intel XE#1201] / [Intel XE#619]) -> [SKIP][72] ([Intel XE#619])
[71]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-434/igt@kms_big_fb@y-tiled-addfb.html
[72]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-432/igt@kms_big_fb@y-tiled-addfb.html
* igt@kms_big_fb@y-tiled-addfb-size-overflow:
- shard-dg2-set2: [SKIP][73] ([Intel XE#1201] / [Intel XE#610]) -> [SKIP][74] ([Intel XE#610]) +1 other test skip
[73]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-436/igt@kms_big_fb@y-tiled-addfb-size-overflow.html
[74]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-432/igt@kms_big_fb@y-tiled-addfb-size-overflow.html
* igt@kms_big_fb@yf-tiled-addfb:
- shard-dg2-set2: [SKIP][75] ([Intel XE#619]) -> [SKIP][76] ([Intel XE#1201] / [Intel XE#619])
[75]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-432/igt@kms_big_fb@yf-tiled-addfb.html
[76]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-434/igt@kms_big_fb@yf-tiled-addfb.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip:
- shard-dg2-set2: [SKIP][77] ([Intel XE#1124] / [Intel XE#1201]) -> [SKIP][78] ([Intel XE#1124]) +6 other tests skip
[77]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-466/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip.html
[78]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-432/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip.html
* igt@kms_bw@linear-tiling-1-displays-1920x1080p:
- shard-dg2-set2: [SKIP][79] ([Intel XE#367]) -> [SKIP][80] ([Intel XE#1201] / [Intel XE#367]) +2 other tests skip
[79]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-432/igt@kms_bw@linear-tiling-1-displays-1920x1080p.html
[80]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-435/igt@kms_bw@linear-tiling-1-displays-1920x1080p.html
* igt@kms_bw@linear-tiling-2-displays-2160x1440p:
- shard-dg2-set2: [SKIP][81] ([Intel XE#1201] / [Intel XE#367]) -> [SKIP][82] ([Intel XE#367])
[81]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-433/igt@kms_bw@linear-tiling-2-displays-2160x1440p.html
[82]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-432/igt@kms_bw@linear-tiling-2-displays-2160x1440p.html
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs-cc@pipe-c-hdmi-a-6:
- shard-dg2-set2: [SKIP][83] ([Intel XE#1201] / [Intel XE#787]) -> [SKIP][84] ([Intel XE#787]) +69 other tests skip
[83]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-434/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs-cc@pipe-c-hdmi-a-6.html
[84]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-432/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs-cc@pipe-c-hdmi-a-6.html
* igt@kms_ccs@missing-ccs-buffer-4-tiled-mtl-mc-ccs@pipe-d-dp-4:
- shard-dg2-set2: [SKIP][85] ([Intel XE#1201] / [Intel XE#455] / [Intel XE#787]) -> [SKIP][86] ([Intel XE#455] / [Intel XE#787]) +19 other tests skip
[85]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-434/igt@kms_ccs@missing-ccs-buffer-4-tiled-mtl-mc-ccs@pipe-d-dp-4.html
[86]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-432/igt@kms_ccs@missing-ccs-buffer-4-tiled-mtl-mc-ccs@pipe-d-dp-4.html
* igt@kms_ccs@random-ccs-data-yf-tiled-ccs@pipe-b-dp-4:
- shard-dg2-set2: [SKIP][87] ([Intel XE#787]) -> [SKIP][88] ([Intel XE#1201] / [Intel XE#787]) +34 other tests skip
[87]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-432/igt@kms_ccs@random-ccs-data-yf-tiled-ccs@pipe-b-dp-4.html
[88]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-435/igt@kms_ccs@random-ccs-data-yf-tiled-ccs@pipe-b-dp-4.html
* igt@kms_ccs@random-ccs-data-yf-tiled-ccs@pipe-d-dp-4:
- shard-dg2-set2: [SKIP][89] ([Intel XE#455] / [Intel XE#787]) -> [SKIP][90] ([Intel XE#1201] / [Intel XE#455] / [Intel XE#787]) +9 other tests skip
[89]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-432/igt@kms_ccs@random-ccs-data-yf-tiled-ccs@pipe-d-dp-4.html
[90]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-435/igt@kms_ccs@random-ccs-data-yf-tiled-ccs@pipe-d-dp-4.html
* igt@kms_cdclk@plane-scaling@pipe-b-dp-4:
- shard-dg2-set2: [SKIP][91] ([Intel XE#1152] / [Intel XE#1201]) -> [SKIP][92] ([Intel XE#1152]) +3 other tests skip
[91]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-463/igt@kms_cdclk@plane-scaling@pipe-b-dp-4.html
[92]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-432/igt@kms_cdclk@plane-scaling@pipe-b-dp-4.html
* igt@kms_chamelium_edid@dp-edid-stress-resolution-4k:
- shard-dg2-set2: [SKIP][93] ([Intel XE#373]) -> [SKIP][94] ([Intel XE#1201] / [Intel XE#373]) +5 other tests skip
[93]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-432/igt@kms_chamelium_edid@dp-edid-stress-resolution-4k.html
[94]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-435/igt@kms_chamelium_edid@dp-edid-stress-resolution-4k.html
* igt@kms_chamelium_hpd@vga-hpd-for-each-pipe:
- shard-dg2-set2: [SKIP][95] ([Intel XE#1201] / [Intel XE#373]) -> [SKIP][96] ([Intel XE#373]) +8 other tests skip
[95]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-464/igt@kms_chamelium_hpd@vga-hpd-for-each-pipe.html
[96]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-432/igt@kms_chamelium_hpd@vga-hpd-for-each-pipe.html
* igt@kms_cursor_crc@cursor-onscreen-512x512:
- shard-dg2-set2: [SKIP][97] ([Intel XE#1201] / [Intel XE#308]) -> [SKIP][98] ([Intel XE#308])
[97]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-466/igt@kms_cursor_crc@cursor-onscreen-512x512.html
[98]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-432/igt@kms_cursor_crc@cursor-onscreen-512x512.html
* igt@kms_cursor_crc@cursor-rapid-movement-512x170:
- shard-dg2-set2: [SKIP][99] ([Intel XE#308]) -> [SKIP][100] ([Intel XE#1201] / [Intel XE#308])
[99]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-432/igt@kms_cursor_crc@cursor-rapid-movement-512x170.html
[100]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-463/igt@kms_cursor_crc@cursor-rapid-movement-512x170.html
* igt@kms_cursor_edge_walk@256x256-top-bottom:
- shard-dg2-set2: [DMESG-WARN][101] ([Intel XE#1214] / [Intel XE#282]) -> [DMESG-WARN][102] ([Intel XE#282]) +7 other tests dmesg-warn
[101]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-436/igt@kms_cursor_edge_walk@256x256-top-bottom.html
[102]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-432/igt@kms_cursor_edge_walk@256x256-top-bottom.html
* igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy:
- shard-dg2-set2: [DMESG-WARN][103] ([Intel XE#1214] / [Intel XE#282] / [Intel XE#910]) -> [DMESG-WARN][104] ([Intel XE#1214] / [Intel XE#282])
[103]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-466/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html
[104]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-434/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html
* igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size:
- shard-dg2-set2: [DMESG-WARN][105] ([Intel XE#1214] / [Intel XE#282] / [Intel XE#910]) -> [DMESG-WARN][106] ([Intel XE#282] / [Intel XE#910])
[105]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-434/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size.html
[106]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-432/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
- shard-dg2-set2: [DMESG-WARN][107] ([Intel XE#282]) -> [DMESG-WARN][108] ([Intel XE#1214] / [Intel XE#282]) +2 other tests dmesg-warn
[107]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-432/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
[108]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-433/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
* igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions:
- shard-dg2-set2: [SKIP][109] ([Intel XE#1201] / [Intel XE#323]) -> [SKIP][110] ([Intel XE#323])
[109]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-433/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html
[110]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-432/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html
* igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle:
- shard-dg2-set2: [SKIP][111] ([Intel XE#323]) -> [SKIP][112] ([Intel XE#1201] / [Intel XE#323])
[111]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-432/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html
[112]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-464/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html
* igt@kms_flip@flip-vs-suspend:
- shard-dg2-set2: [INCOMPLETE][113] ([Intel XE#1195]) -> [DMESG-WARN][114] ([Intel XE#1162] / [Intel XE#1214])
[113]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-466/igt@kms_flip@flip-vs-suspend.html
[114]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-436/igt@kms_flip@flip-vs-suspend.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling:
- shard-dg2-set2: [SKIP][115] ([Intel XE#1201] / [Intel XE#455]) -> [SKIP][116] ([Intel XE#455]) +19 other tests skip
[115]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-435/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling.html
[116]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-432/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling.html
* igt@kms_frontbuffer_tracking@drrs-suspend:
- shard-dg2-set2: [SKIP][117] ([Intel XE#651]) -> [SKIP][118] ([Intel XE#1201] / [Intel XE#651]) +18 other tests skip
[117]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-432/igt@kms_frontbuffer_tracking@drrs-suspend.html
[118]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-466/igt@kms_frontbuffer_tracking@drrs-suspend.html
* igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-render:
- shard-dg2-set2: [SKIP][119] ([Intel XE#1201] / [Intel XE#651]) -> [SKIP][120] ([Intel XE#651]) +23 other tests skip
[119]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-435/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-render.html
[120]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-432/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-onoff:
- shard-dg2-set2: [SKIP][121] ([Intel XE#1201] / [Intel XE#653]) -> [SKIP][122] ([Intel XE#653]) +22 other tests skip
[121]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-466/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-onoff.html
[122]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-432/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-onoff.html
* igt@kms_frontbuffer_tracking@fbcpsr-tiling-y:
- shard-dg2-set2: [SKIP][123] ([Intel XE#1201] / [Intel XE#658]) -> [SKIP][124] ([Intel XE#658])
[123]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-436/igt@kms_frontbuffer_tracking@fbcpsr-tiling-y.html
[124]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-432/igt@kms_frontbuffer_tracking@fbcpsr-tiling-y.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-wc:
- shard-dg2-set2: [SKIP][125] ([Intel XE#653]) -> [SKIP][126] ([Intel XE#1201] / [Intel XE#653]) +16 other tests skip
[125]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-432/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-wc.html
[126]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-466/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-wc.html
* igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25:
- shard-dg2-set2: [SKIP][127] ([Intel XE#305] / [Intel XE#455]) -> [SKIP][128] ([Intel XE#1201] / [Intel XE#305] / [Intel XE#455])
[127]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-432/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25.html
[128]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-463/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25.html
* igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-c-hdmi-a-6:
- shard-dg2-set2: [SKIP][129] ([Intel XE#305]) -> [SKIP][130] ([Intel XE#1201] / [Intel XE#305]) +2 other tests skip
[129]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-432/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-c-hdmi-a-6.html
[130]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-463/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-c-hdmi-a-6.html
* igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-d-hdmi-a-6:
- shard-dg2-set2: [SKIP][131] ([Intel XE#455]) -> [SKIP][132] ([Intel XE#1201] / [Intel XE#455]) +7 other tests skip
[131]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-432/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-d-hdmi-a-6.html
[132]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-463/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-d-hdmi-a-6.html
* igt@kms_pm_backlight@fade-with-suspend:
- shard-dg2-set2: [SKIP][133] ([Intel XE#870]) -> [SKIP][134] ([Intel XE#1201] / [Intel XE#870]) +1 other test skip
[133]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-432/igt@kms_pm_backlight@fade-with-suspend.html
[134]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-466/igt@kms_pm_backlight@fade-with-suspend.html
* igt@kms_psr2_su@page_flip-xrgb8888:
- shard-dg2-set2: [SKIP][135] ([Intel XE#1122] / [Intel XE#1201]) -> [SKIP][136] ([Intel XE#1122])
[135]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-436/igt@kms_psr2_su@page_flip-xrgb8888.html
[136]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-432/igt@kms_psr2_su@page_flip-xrgb8888.html
* igt@kms_psr@fbc-pr-cursor-plane-move:
- shard-dg2-set2: [SKIP][137] ([Intel XE#929]) -> [SKIP][138] ([Intel XE#1201] / [Intel XE#929]) +7 other tests skip
[137]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-432/igt@kms_psr@fbc-pr-cursor-plane-move.html
[138]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-466/igt@kms_psr@fbc-pr-cursor-plane-move.html
* igt@kms_psr@psr-sprite-plane-onoff:
- shard-dg2-set2: [SKIP][139] ([Intel XE#1201] / [Intel XE#929]) -> [SKIP][140] ([Intel XE#929]) +14 other tests skip
[139]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-434/igt@kms_psr@psr-sprite-plane-onoff.html
[140]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-432/igt@kms_psr@psr-sprite-plane-onoff.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180:
- shard-dg2-set2: [SKIP][141] ([Intel XE#1127] / [Intel XE#1201]) -> [SKIP][142] ([Intel XE#1127])
[141]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-434/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html
[142]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-432/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90:
- shard-dg2-set2: [SKIP][143] ([Intel XE#1201] / [Intel XE#327]) -> [SKIP][144] ([Intel XE#327]) +1 other test skip
[143]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-466/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html
[144]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-432/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html
* igt@kms_tiled_display@basic-test-pattern-with-chamelium:
- shard-dg2-set2: [SKIP][145] ([Intel XE#1500]) -> [SKIP][146] ([Intel XE#1201] / [Intel XE#1500])
[145]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-432/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
[146]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-436/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
* igt@kms_tv_load_detect@load-detect:
- shard-dg2-set2: [SKIP][147] ([Intel XE#330]) -> [SKIP][148] ([Intel XE#1201] / [Intel XE#330])
[147]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-432/igt@kms_tv_load_detect@load-detect.html
[148]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-436/igt@kms_tv_load_detect@load-detect.html
* igt@sriov_basic@bind-unbind-vf:
- shard-dg2-set2: [SKIP][149] ([Intel XE#1091]) -> [SKIP][150] ([Intel XE#1091] / [Intel XE#1201])
[149]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-432/igt@sriov_basic@bind-unbind-vf.html
[150]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-435/igt@sriov_basic@bind-unbind-vf.html
* igt@xe_copy_basic@mem-copy-linear-0x369:
- shard-dg2-set2: [SKIP][151] ([Intel XE#1123] / [Intel XE#1201]) -> [SKIP][152] ([Intel XE#1123])
[151]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-433/igt@xe_copy_basic@mem-copy-linear-0x369.html
[152]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-432/igt@xe_copy_basic@mem-copy-linear-0x369.html
* igt@xe_copy_basic@mem-set-linear-0xfd:
- shard-dg2-set2: [SKIP][153] ([Intel XE#1126] / [Intel XE#1201]) -> [SKIP][154] ([Intel XE#1126])
[153]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-466/igt@xe_copy_basic@mem-set-linear-0xfd.html
[154]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-432/igt@xe_copy_basic@mem-set-linear-0xfd.html
* igt@xe_evict@evict-beng-threads-large:
- shard-dg2-set2: [TIMEOUT][155] ([Intel XE#1473]) -> [INCOMPLETE][156] ([Intel XE#1195] / [Intel XE#1473])
[155]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-463/igt@xe_evict@evict-beng-threads-large.html
[156]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-463/igt@xe_evict@evict-beng-threads-large.html
* igt@xe_evict@evict-mixed-many-threads-large:
- shard-dg2-set2: [INCOMPLETE][157] ([Intel XE#1473] / [Intel XE#392]) -> [INCOMPLETE][158] ([Intel XE#1195] / [Intel XE#1473] / [Intel XE#392])
[157]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-432/igt@xe_evict@evict-mixed-many-threads-large.html
[158]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-463/igt@xe_evict@evict-mixed-many-threads-large.html
* igt@xe_exec_fault_mode@many-bindexecqueue-userptr-invalidate-race:
- shard-dg2-set2: [SKIP][159] ([Intel XE#288]) -> [SKIP][160] ([Intel XE#1201] / [Intel XE#288]) +11 other tests skip
[159]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-432/igt@xe_exec_fault_mode@many-bindexecqueue-userptr-invalidate-race.html
[160]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-466/igt@xe_exec_fault_mode@many-bindexecqueue-userptr-invalidate-race.html
* igt@xe_exec_fault_mode@once-basic-imm:
- shard-dg2-set2: [SKIP][161] ([Intel XE#1201] / [Intel XE#288]) -> [SKIP][162] ([Intel XE#288]) +18 other tests skip
[161]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-433/igt@xe_exec_fault_mode@once-basic-imm.html
[162]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-432/igt@xe_exec_fault_mode@once-basic-imm.html
* igt@xe_live_ktest@xe_mocs:
- shard-dg2-set2: [SKIP][163] ([Intel XE#1192] / [Intel XE#1201]) -> [FAIL][164] ([Intel XE#1999])
[163]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-434/igt@xe_live_ktest@xe_mocs.html
[164]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-433/igt@xe_live_ktest@xe_mocs.html
* igt@xe_mmap@small-bar:
- shard-dg2-set2: [SKIP][165] ([Intel XE#512]) -> [SKIP][166] ([Intel XE#1201] / [Intel XE#512])
[165]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-432/igt@xe_mmap@small-bar.html
[166]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-466/igt@xe_mmap@small-bar.html
* igt@xe_module_load@load:
- shard-dg2-set2: [SKIP][167] ([Intel XE#1201] / [Intel XE#378]) -> [SKIP][168] ([Intel XE#378])
[167]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-435/igt@xe_module_load@load.html
[168]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-432/igt@xe_module_load@load.html
* igt@xe_module_load@reload:
- shard-dg2-set2: [DMESG-WARN][169] ([Intel XE#1162] / [Intel XE#1214]) -> [DMESG-FAIL][170] ([Intel XE#1162])
[169]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-434/igt@xe_module_load@reload.html
[170]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-435/igt@xe_module_load@reload.html
* igt@xe_pat@pat-index-xehpc:
- shard-dg2-set2: [SKIP][171] ([Intel XE#1201] / [Intel XE#979]) -> [SKIP][172] ([Intel XE#979]) +1 other test skip
[171]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-435/igt@xe_pat@pat-index-xehpc.html
[172]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-432/igt@xe_pat@pat-index-xehpc.html
* igt@xe_pm@d3cold-mmap-vram:
- shard-dg2-set2: [SKIP][173] ([Intel XE#1201] / [Intel XE#366]) -> [SKIP][174] ([Intel XE#366]) +2 other tests skip
[173]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-464/igt@xe_pm@d3cold-mmap-vram.html
[174]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-432/igt@xe_pm@d3cold-mmap-vram.html
* igt@xe_pm@s3-vm-bind-prefetch:
- shard-dg2-set2: [DMESG-WARN][175] ([Intel XE#1162] / [Intel XE#1214] / [Intel XE#1551]) -> [DMESG-WARN][176] ([Intel XE#1162] / [Intel XE#1551])
[175]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-464/igt@xe_pm@s3-vm-bind-prefetch.html
[176]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-432/igt@xe_pm@s3-vm-bind-prefetch.html
* igt@xe_pm@s3-vm-bind-userptr:
- shard-dg2-set2: [DMESG-WARN][177] ([Intel XE#1162]) -> [DMESG-WARN][178] ([Intel XE#1162] / [Intel XE#1214])
[177]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-432/igt@xe_pm@s3-vm-bind-userptr.html
[178]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-463/igt@xe_pm@s3-vm-bind-userptr.html
* igt@xe_pm@s4-d3cold-basic-exec:
- shard-dg2-set2: [SKIP][179] ([Intel XE#366]) -> [SKIP][180] ([Intel XE#1201] / [Intel XE#366])
[179]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-432/igt@xe_pm@s4-d3cold-basic-exec.html
[180]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-433/igt@xe_pm@s4-d3cold-basic-exec.html
* igt@xe_pm@vram-d3cold-threshold:
- shard-dg2-set2: [SKIP][181] ([Intel XE#1201] / [Intel XE#579]) -> [SKIP][182] ([Intel XE#579])
[181]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-463/igt@xe_pm@vram-d3cold-threshold.html
[182]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-432/igt@xe_pm@vram-d3cold-threshold.html
* igt@xe_query@multigpu-query-config:
- shard-dg2-set2: [SKIP][183] ([Intel XE#1201] / [Intel XE#944]) -> [SKIP][184] ([Intel XE#944]) +1 other test skip
[183]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-466/igt@xe_query@multigpu-query-config.html
[184]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-432/igt@xe_query@multigpu-query-config.html
* igt@xe_query@multigpu-query-invalid-query:
- shard-dg2-set2: [SKIP][185] ([Intel XE#944]) -> [SKIP][186] ([Intel XE#1201] / [Intel XE#944])
[185]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-432/igt@xe_query@multigpu-query-invalid-query.html
[186]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-435/igt@xe_query@multigpu-query-invalid-query.html
* igt@xe_wedged@basic-wedged:
- shard-dg2-set2: [SKIP][187] ([Intel XE#1130]) -> [DMESG-WARN][188] ([Intel XE#1760])
[187]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-432/igt@xe_wedged@basic-wedged.html
[188]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-432/igt@xe_wedged@basic-wedged.html
* igt@xe_wedged@wedged-at-any-timeout:
- shard-dg2-set2: [DMESG-WARN][189] ([Intel XE#1214] / [Intel XE#1760]) -> [DMESG-WARN][190] ([Intel XE#1760])
[189]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7876/shard-dg2-434/igt@xe_wedged@wedged-at-any-timeout.html
[190]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/shard-dg2-432/igt@xe_wedged@wedged-at-any-timeout.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[Intel XE#1091]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1091
[Intel XE#1122]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1122
[Intel XE#1123]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1123
[Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
[Intel XE#1126]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1126
[Intel XE#1127]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1127
[Intel XE#1128]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1128
[Intel XE#1130]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1130
[Intel XE#1152]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1152
[Intel XE#1162]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1162
[Intel XE#1169]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1169
[Intel XE#1192]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1192
[Intel XE#1195]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1195
[Intel XE#1201]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1201
[Intel XE#1205]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1205
[Intel XE#1214]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1214
[Intel XE#1339]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1339
[Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
[Intel XE#1397]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1397
[Intel XE#1399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1399
[Intel XE#1401]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1401
[Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
[Intel XE#1407]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1407
[Intel XE#1413]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1413
[Intel XE#1416]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1416
[Intel XE#1421]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1421
[Intel XE#1424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1424
[Intel XE#1428]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1428
[Intel XE#1446]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1446
[Intel XE#1467]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1467
[Intel XE#1469]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1469
[Intel XE#1473]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1473
[Intel XE#1477]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1477
[Intel XE#1500]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1500
[Intel XE#1551]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1551
[Intel XE#1588]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1588
[Intel XE#1659]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1659
[Intel XE#1694]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1694
[Intel XE#1725]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1725
[Intel XE#1745]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1745
[Intel XE#1760]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1760
[Intel XE#1761]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1761
[Intel XE#1794]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1794
[Intel XE#1830]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1830
[Intel XE#1899]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1899
[Intel XE#1909]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1909
[Intel XE#1960]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1960
[Intel XE#1999]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1999
[Intel XE#282]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/282
[Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
[Intel XE#305]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/305
[Intel XE#306]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/306
[Intel XE#307]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/307
[Intel XE#308]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/308
[Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
[Intel XE#316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/316
[Intel XE#323]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/323
[Intel XE#327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/327
[Intel XE#330]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/330
[Intel XE#362]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/362
[Intel XE#366]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/366
[Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
[Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
[Intel XE#378]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/378
[Intel XE#392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/392
[Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455
[Intel XE#498]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/498
[Intel XE#512]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/512
[Intel XE#579]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/579
[Intel XE#584]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/584
[Intel XE#610]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/610
[Intel XE#616]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/616
[Intel XE#619]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/619
[Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
[Intel XE#653]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/653
[Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
[Intel XE#658]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/658
[Intel XE#664]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/664
[Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688
[Intel XE#718]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/718
[Intel XE#736]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/736
[Intel XE#756]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/756
[Intel XE#771]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/771
[Intel XE#787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/787
[Intel XE#870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/870
[Intel XE#899]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/899
[Intel XE#910]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/910
[Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929
[Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
[Intel XE#979]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/979
Build changes
-------------
* IGT: IGT_7876 -> IGTPW_11213
IGTPW_11213: 3ba2cbebaf24c043350a8475441f40ccac486d11 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
IGT_7876: 7876
xe-1390-71fb583af6dea41793b38d947a991f06156f7f11: 71fb583af6dea41793b38d947a991f06156f7f11
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11213/index.html
[-- Attachment #2: Type: text/html, Size: 63886 bytes --]
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH i-g-t 09/20] tools/intel_vbt_decode: Extract dump_pnp_id()
2024-05-31 14:48 ` Jani Nikula
@ 2024-06-05 11:41 ` Ville Syrjälä
0 siblings, 0 replies; 30+ messages in thread
From: Ville Syrjälä @ 2024-06-05 11:41 UTC (permalink / raw)
To: Jani Nikula; +Cc: igt-dev
On Fri, May 31, 2024 at 05:48:21PM +0300, Jani Nikula wrote:
> On Fri, 31 May 2024, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >
> > Several different VBT blocks contain PnP IDs. Extract the
> > helper to dump them out.
>
> Just nitpicking inline, can be fixed in follow-up. The patch is an
> improvement as-is.
>
> >
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > ---
> > tools/intel_vbt_decode.c | 20 +++++++++++++-------
> > 1 file changed, 13 insertions(+), 7 deletions(-)
> >
> > diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
> > index 6cf6d471b5e2..2a11490eed22 100644
> > --- a/tools/intel_vbt_decode.c
> > +++ b/tools/intel_vbt_decode.c
> > @@ -1394,6 +1394,18 @@ static char *decode_pnp_id(u16 mfg_name, char str[4])
> > return str;
> > }
> >
> > +static void dump_pnp_id(const struct bdb_edid_pnp_id *pnp_id)
>
> Maybe pass prefix or indent level?
Yeah, thought about doing something like that, but decided
to leave it out for now as the series was ballooning out
of control already.
>
> > +{
> > + char mfg[4];
> > +
> > + printf("\t\t Mfg name: %s (0x%x)\n",
> > + decode_pnp_id(pnp_id->mfg_name, mfg), pnp_id->mfg_name);
> > + printf("\t\t Product code: %u\n", pnp_id->product_code);
> > + printf("\t\t Serial: %u\n", pnp_id->serial);
> > + printf("\t\t Mfg week: %d\n", pnp_id->mfg_week);
> > + printf("\t\t Mfg year: %d\n", 1990 + pnp_id->mfg_year);
>
> These could be improved to match spec (see decode_date() in kernel
> drm_edid.c).
>
> > +}
> > +
> > static void dump_lfp_data(struct context *context,
> > const struct bdb_block *block)
> > {
> > @@ -1419,7 +1431,6 @@ static void dump_lfp_data(struct context *context,
> > block_data(block) + ptrs->ptr[i].panel_pnp_id.offset;
> > const struct bdb_lfp_data_tail *tail =
> > block_data(block) + ptrs->panel_name.offset;
> > - char mfg[4];
> >
> > if (!dump_panel(context, i))
> > continue;
> > @@ -1457,12 +1468,7 @@ static void dump_lfp_data(struct context *context,
> > "BAD!" : "good");
> >
> > printf("\t\tPnP ID:\n");
>
> I'd do this in dump_pnp_id() too.
That's more of a sub-heading for this block type. For other
block types it would probably be a bit redundant.
>
> > - printf("\t\t Mfg name: %s (0x%x)\n",
> > - decode_pnp_id(pnp_id->mfg_name, mfg), pnp_id->mfg_name);
> > - printf("\t\t Product code: %u\n", pnp_id->product_code);
> > - printf("\t\t Serial: %u\n", pnp_id->serial);
> > - printf("\t\t Mfg week: %d\n", pnp_id->mfg_week);
> > - printf("\t\t Mfg year: %d\n", 1990 + pnp_id->mfg_year);
> > + dump_pnp_id(pnp_id);
> >
> > if (!ptrs->panel_name.table_size)
> > continue;
>
> --
> Jani Nikula, Intel
--
Ville Syrjälä
Intel
^ permalink raw reply [flat|nested] 30+ messages in thread
end of thread, other threads:[~2024-06-05 11:41 UTC | newest]
Thread overview: 30+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-31 14:23 [PATCH i-g-t 00/20] tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 01/20] tools/intel_vbt_decode: Finish the s/lvds/lfp/ rename Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 02/20] tools/intel_vbt_decode: s/dump_sdvo_panel_dtd()/dump_sdvo_lvds_dtd()/ Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 03/20] lib: Define DIV_ROUND_CLOSEST() Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 04/20] tools/intel_vbt_decode: Fix some tabs Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 05/20] tools/intel_vbt_decode: Add missing newline Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 06/20] tools/intel_vbt_decode: Indent ALS dump Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 07/20] tools/intel_vbt_decode: Use "(LFP<n>)" to indicate LFP panel type Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 08/20] tools/intel_vbt_decode: Decode the "not HDMI" bit right way up Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 09/20] tools/intel_vbt_decode: Extract dump_pnp_id() Ville Syrjala
2024-05-31 14:48 ` Jani Nikula
2024-06-05 11:41 ` Ville Syrjälä
2024-05-31 14:23 ` [PATCH i-g-t 10/20] tools/intel_vbt_decode: Reuse print_detail_timing_data() Ville Syrjala
2024-05-31 14:50 ` Jani Nikula
2024-05-31 14:23 ` [PATCH i-g-t 11/20] tools/intel_vbt_decode: Dump the new eDP DSC disable bit Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 12/20] tools/intel_vbt_decode: Allow dumpers to delcate min version for the block Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 13/20] tools/intel_vbt_decode: Use .min_bdb_version to filter out PSR block on pre-165 VBTs Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 14/20] tools/intel_vbt_decode: Sort dumper table Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 15/20] tools/intel_vbt_decode: Use struct bdb_sdvo_lvds_dtd Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 16/20] tools/intel_vbt_decode: Track the SDVO panel type Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 17/20] tools/intel_vbt_decode: Use find_raw_section() to determine block presence Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 18/20] tools/intel_vbt_decode: Make device handle names more compact Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 19/20] tools/intel_vbt_decode: Declare min/max version for child dev handles Ville Syrjala
2024-05-31 14:23 ` [PATCH i-g-t 20/20] tools/intel_vbt_decode: Decode device handle as a bitmask Ville Syrjala
2024-05-31 15:10 ` Jani Nikula
2024-05-31 15:11 ` [PATCH i-g-t 00/20] tools/intel_vbt_decode: Refactoring and prep work for decoding more blocks Jani Nikula
2024-05-31 16:53 ` ✗ GitLab.Pipeline: warning for " Patchwork
2024-05-31 17:19 ` ✗ Fi.CI.BAT: failure " Patchwork
2024-05-31 17:24 ` ✓ CI.xeBAT: success " Patchwork
2024-05-31 19:02 ` ✗ CI.xeFULL: failure " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox