All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t 00/14] tools/intel_vbt_decode: Improve VBT decoder
@ 2022-07-15 20:25 Ville Syrjala
  2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 01/14] tools/intel_vbt_decode: Simplify fast link training lane count Ville Syrjala
                   ` (15 more replies)
  0 siblings, 16 replies; 19+ messages in thread
From: Ville Syrjala @ 2022-07-15 20:25 UTC (permalink / raw)
  To: igt-dev

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

Improve the VBT decoder:
- bunch of cleanups
- some minor refactoring
- improved decoding of certain things
- decode even more stuff

Ville Syrjälä (14):
  tools/intel_vbt_decode: Simplify fast link training lane count
  tools/intel_vbt_decode: Extract dp_vswing()/dp_preemph()
  tools/intel_vbt_decode: update vbt defs from kernel
  tools/intel_vbt_decode: Introduce panel_bits()/panel_bool()
  tools/intel_vbt_decode: Remove pointless variables
  tools/intel_vbt_decode: Extract lvds_config[]
  tools/intel_vbt_decode: Extract panel_fitting[]
  tools/intel_vbt_decode: Parse HDMI FRL rate
  tools/intel_vbt_decode: Decode the "use VBT vswing tables" flag
  tools/intel_vbt_decode: Decode eDP/DP max lane count
  tools/intel_vbt_decode: Clean up driver features block decoding
  tools/intel_vbt_decode: Decode AUX CH
  tools/intel_vbt_decode: Adjust DVO port printing
  tools/intel_vbt_decode: Dump the compression structure index as
    decimal

 tools/intel_bios.h       |   8 -
 tools/intel_vbt_decode.c | 461 +++++++++++++++++++++------------------
 tools/intel_vbt_defs.h   | 342 ++++++++++++++++-------------
 3 files changed, 448 insertions(+), 363 deletions(-)

-- 
2.35.1

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

* [igt-dev] [PATCH i-g-t 01/14] tools/intel_vbt_decode: Simplify fast link training lane count
  2022-07-15 20:25 [igt-dev] [PATCH i-g-t 00/14] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
@ 2022-07-15 20:25 ` Ville Syrjala
  2022-08-04 10:03   ` Jani Nikula
  2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 02/14] tools/intel_vbt_decode: Extract dp_vswing()/dp_preemph() Ville Syrjala
                   ` (14 subsequent siblings)
  15 siblings, 1 reply; 19+ messages in thread
From: Ville Syrjala @ 2022-07-15 20:25 UTC (permalink / raw)
  To: igt-dev

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

Get rid of the pointless switch statement and decode the
fast link training lane count as just <val>+1. We already
do the same for the DSI lane count.

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

diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index 5494a34bdca3..1ed03745bd05 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -1420,22 +1420,8 @@ static void dump_edp(struct context *context,
 			       edp->fast_link_params[i].rate);
 			break;
 		}
-		printf("\t\t\tlanes: ");
-		switch (edp->fast_link_params[i].lanes) {
-		case EDP_LANE_1:
-			printf("x1 mode\n");
-			break;
-		case EDP_LANE_2:
-			printf("x2 mode\n");
-			break;
-		case EDP_LANE_4:
-			printf("x4 mode\n");
-			break;
-		default:
-			printf("(unknown value %d)\n",
-			       edp->fast_link_params[i].lanes);
-			break;
-		}
+		printf("\t\t\tlanes: X%d",
+		       edp->fast_link_params[i].lanes + 1);
 		printf("\t\t\tpre-emphasis: ");
 		switch (edp->fast_link_params[i].preemphasis) {
 		case EDP_PREEMPHASIS_NONE:
-- 
2.35.1

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

* [igt-dev] [PATCH i-g-t 02/14] tools/intel_vbt_decode: Extract dp_vswing()/dp_preemph()
  2022-07-15 20:25 [igt-dev] [PATCH i-g-t 00/14] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
  2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 01/14] tools/intel_vbt_decode: Simplify fast link training lane count Ville Syrjala
@ 2022-07-15 20:25 ` Ville Syrjala
  2022-08-04 10:05   ` Jani Nikula
  2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 03/14] tools/intel_vbt_decode: update vbt defs from kernel Ville Syrjala
                   ` (13 subsequent siblings)
  15 siblings, 1 reply; 19+ messages in thread
From: Ville Syrjala @ 2022-07-15 20:25 UTC (permalink / raw)
  To: igt-dev

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

A bunch of places need to decode the DP vswing/preemph values.
Fortunately all of them use the the same format so we can
extract this stuff into a few helpers.

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

diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index 1ed03745bd05..13e927edd17f 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -855,6 +855,28 @@ static void dump_dp_max_link_rate(uint16_t version, uint8_t dp_max_link_rate)
 		       link_rate / 100.0f, dp_max_link_rate);
 }
 
+static const char *dp_vswing(u8 vswing)
+{
+	switch (vswing) {
+	case 0: return "0.4V";
+	case 1: return "0.6V";
+	case 2: return "0.8V";
+	case 3: return "1.2V";
+	default: return "<unknown>";
+	}
+}
+
+static const char *dp_preemph(u8 preemph)
+{
+	switch (preemph) {
+	case 0: return "0dB";
+	case 1: return "3.5dB";
+	case 2: return "6dB";
+	case 3: return "9.5dB";
+	default: return "<unknown>";
+	}
+}
+
 static void dump_child_device(struct context *context,
 			      const struct child_device_config *child)
 {
@@ -1422,44 +1444,12 @@ static void dump_edp(struct context *context,
 		}
 		printf("\t\t\tlanes: X%d",
 		       edp->fast_link_params[i].lanes + 1);
-		printf("\t\t\tpre-emphasis: ");
-		switch (edp->fast_link_params[i].preemphasis) {
-		case EDP_PREEMPHASIS_NONE:
-			printf("none\n");
-			break;
-		case EDP_PREEMPHASIS_3_5dB:
-			printf("3.5dB\n");
-			break;
-		case EDP_PREEMPHASIS_6dB:
-			printf("6dB\n");
-			break;
-		case EDP_PREEMPHASIS_9_5dB:
-			printf("9.5dB\n");
-			break;
-		default:
-			printf("(unknown value %d)\n",
-			       edp->fast_link_params[i].preemphasis);
-			break;
-		}
-		printf("\t\t\tvswing: ");
-		switch (edp->fast_link_params[i].vswing) {
-		case EDP_VSWING_0_4V:
-			printf("0.4V\n");
-			break;
-		case EDP_VSWING_0_6V:
-			printf("0.6V\n");
-			break;
-		case EDP_VSWING_0_8V:
-			printf("0.8V\n");
-			break;
-		case EDP_VSWING_1_2V:
-			printf("1.2V\n");
-			break;
-		default:
-			printf("(unknown value %d)\n",
-			       edp->fast_link_params[i].vswing);
-			break;
-		}
+		printf("\t\t\tpre-emphasis: %s (0x%x)\n",
+		       dp_preemph(edp->fast_link_params[i].preemphasis),
+		       edp->fast_link_params[i].preemphasis);
+		printf("\t\t\tvswing: %s (0x%x)\n",
+		       dp_preemph(edp->fast_link_params[i].vswing),
+		       edp->fast_link_params[i].vswing);
 
 		if (context->bdb->version >= 162) {
 			bool val = (edp->edp_s3d_feature >> i) & 1;
@@ -1511,44 +1501,12 @@ static void dump_edp(struct context *context,
 
 			printf("\t\tFull link params provided: %s\n", YESNO(val));
 			printf("\t\tFull link params:\n");
-			printf("\t\t\tpre-emphasis: ");
-			switch (edp->full_link_params[i].preemphasis) {
-			case EDP_PREEMPHASIS_NONE:
-				printf("none\n");
-				break;
-			case EDP_PREEMPHASIS_3_5dB:
-				printf("3.5dB\n");
-				break;
-			case EDP_PREEMPHASIS_6dB:
-				printf("6dB\n");
-				break;
-			case EDP_PREEMPHASIS_9_5dB:
-				printf("9.5dB\n");
-				break;
-			default:
-				printf("(unknown value %d)\n",
-				       edp->full_link_params[i].preemphasis);
-				break;
-			}
-			printf("\t\t\tvswing: ");
-			switch (edp->full_link_params[i].vswing) {
-			case EDP_VSWING_0_4V:
-				printf("0.4V\n");
-				break;
-			case EDP_VSWING_0_6V:
-				printf("0.6V\n");
-				break;
-			case EDP_VSWING_0_8V:
-				printf("0.8V\n");
-				break;
-			case EDP_VSWING_1_2V:
-				printf("1.2V\n");
-				break;
-			default:
-				printf("(unknown value %d)\n",
-				       edp->full_link_params[i].vswing);
-				break;
-			}
+			printf("\t\t\tpre-emphasis: %s (0x%x)\n",
+			       dp_preemph(edp->full_link_params[i].preemphasis),
+			       edp->full_link_params[i].preemphasis);
+			printf("\t\t\tvswing: %s (0x%x)\n",
+			       dp_vswing(edp->full_link_params[i].vswing),
+			       edp->full_link_params[i].vswing);
 		}
 
 		if (context->bdb->version >= 224) {
-- 
2.35.1

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

* [igt-dev] [PATCH i-g-t 03/14] tools/intel_vbt_decode: update vbt defs from kernel
  2022-07-15 20:25 [igt-dev] [PATCH i-g-t 00/14] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
  2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 01/14] tools/intel_vbt_decode: Simplify fast link training lane count Ville Syrjala
  2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 02/14] tools/intel_vbt_decode: Extract dp_vswing()/dp_preemph() Ville Syrjala
@ 2022-07-15 20:25 ` Ville Syrjala
  2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 04/14] tools/intel_vbt_decode: Introduce panel_bits()/panel_bool() Ville Syrjala
                   ` (12 subsequent siblings)
  15 siblings, 0 replies; 19+ messages in thread
From: Ville Syrjala @ 2022-07-15 20:25 UTC (permalink / raw)
  To: igt-dev

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

Sync up the the VBT definitions from kernel commit
<fixme>
and adjust the actual code to match.

Note that 'slave_port' is gone now, so we'll just throw it out,
and the DP redriver stuff is now defined as bitfields which need
to be properly decoded.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tools/intel_bios.h       |   8 -
 tools/intel_vbt_decode.c |  27 +++-
 tools/intel_vbt_defs.h   | 342 ++++++++++++++++++++++-----------------
 3 files changed, 215 insertions(+), 162 deletions(-)

diff --git a/tools/intel_bios.h b/tools/intel_bios.h
index 78a96d977536..fdc3308f3d38 100644
--- a/tools/intel_bios.h
+++ b/tools/intel_bios.h
@@ -30,14 +30,6 @@
 
 #include <stdint.h>
 
-#define DEVICE_HANDLE_CRT	0x01
-#define DEVICE_HANDLE_EFP1	0x04
-#define DEVICE_HANDLE_EFP2	0x40
-#define DEVICE_HANDLE_EFP3	0x20
-#define DEVICE_HANDLE_EFP4	0x10
-#define DEVICE_HANDLE_LPF1	0x08
-#define DEVICE_HANDLE_LFP2	0x80
-
 #define DEVICE_TYPE_DP_DVI		0x68d6
 #define DEVICE_TYPE_DVI			0x68d2
 #define DEVICE_TYPE_MIPI		0x7cc2
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index 13e927edd17f..4bb8437bffb0 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -720,7 +720,7 @@ static const struct {
 	{ DEVICE_HANDLE_EFP2, "EFP 2 (HDMI/DVI/DP)" },
 	{ DEVICE_HANDLE_EFP3, "EFP 3 (HDMI/DVI/DP)" },
 	{ DEVICE_HANDLE_EFP4, "EFP 4 (HDMI/DVI/DP)" },
-	{ DEVICE_HANDLE_LPF1, "LFP 1 (eDP)" },
+	{ DEVICE_HANDLE_LFP1, "LFP 1 (eDP)" },
 	{ DEVICE_HANDLE_LFP2, "LFP 2 (eDP)" },
 };
 static const int num_child_device_handles =
@@ -894,8 +894,24 @@ static void dump_child_device(struct context *context,
 		printf("\t\tSignature: %.*s\n", (int)sizeof(child->device_id), child->device_id);
 	} else {
 		printf("\t\tI2C speed: 0x%02x\n", child->i2c_speed);
-		printf("\t\tDP onboard redriver: 0x%02x\n", child->dp_onboard_redriver);
-		printf("\t\tDP ondock redriver: 0x%02x\n", child->dp_ondock_redriver);
+		printf("\t\tDP onboard redriver:\n");
+		printf("\t\t\tpresent: %s\n",
+		       YESNO((child->dp_onboard_redriver_present)));
+		printf("\t\t\tvswing: %s (0x%x)\n",
+		       dp_vswing(child->dp_onboard_redriver_vswing),
+		       child->dp_onboard_redriver_vswing);
+		printf("\t\t\tpre-emphasis: %s (0x%x)\n",
+		       dp_preemph(child->dp_onboard_redriver_preemph),
+		       child->dp_onboard_redriver_preemph);
+		printf("\t\tDP ondock redriver:\n");
+		printf("\t\t\tpresent: %s\n",
+		       YESNO((child->dp_ondock_redriver_present)));
+		printf("\t\t\tvswing: %s (0x%x)\n",
+		       dp_vswing(child->dp_ondock_redriver_vswing),
+		       child->dp_ondock_redriver_vswing);
+		printf("\t\t\tpre-emphasis: %s (0x%x)\n",
+		       dp_preemph(child->dp_ondock_redriver_preemph),
+		       child->dp_ondock_redriver_preemph);
 		printf("\t\tHDMI level shifter value: 0x%02x\n", child->hdmi_level_shifter_value);
 		dump_hmdi_max_data_rate(child->hdmi_max_data_rate);
 		printf("\t\tOffset to DTD buffer for edidless CHILD: 0x%02x\n", child->dtd_buf_ptr);
@@ -904,7 +920,6 @@ static void dump_child_device(struct context *context,
 		printf("\t\tCompression method CPS: %s\n", YESNO(child->compression_method_cps));
 		printf("\t\tDual pipe ganged eDP: %s\n", YESNO(child->ganged_edp));
 		printf("\t\tCompression structure index: 0x%02x)\n", child->compression_structure_index);
-		printf("\t\tSlave DDI port: 0x%02x (%s)\n", child->slave_port, dvo_port(child->slave_port));
 	}
 
 	printf("\t\tAIM offset: %d\n", child->addin_offset);
@@ -1323,9 +1338,9 @@ static void dump_driver_feature(struct context *context,
 	printf("\tBoot Device Algorithm: %s\n", feature->boot_dev_algorithm ?
 	       "driver default" : "os default");
 	printf("\tBlock display switching when DVD active: %s\n",
-	       YESNO(feature->block_display_switch));
+	       YESNO(feature->allow_display_switch_dvd));
 	printf("\tAllow display switching when in Full Screen DOS: %s\n",
-	       YESNO(feature->allow_display_switch));
+	       YESNO(feature->allow_display_switch_dos));
 	printf("\tHot Plug DVO: %s\n", YESNO(feature->hotplug_dvo));
 	printf("\tDual View Zoom: %s\n", YESNO(feature->dual_view_zoom));
 	printf("\tDriver INT 15h hook: %s\n", YESNO(feature->int15h_hook));
diff --git a/tools/intel_vbt_defs.h b/tools/intel_vbt_defs.h
index f8e5097222f2..62183c6bdc10 100644
--- a/tools/intel_vbt_defs.h
+++ b/tools/intel_vbt_defs.h
@@ -75,6 +75,20 @@ struct bdb_header {
 	u16 bdb_size;
 } __packed;
 
+/*
+ * BDB version number dependencies are documented as:
+ *
+ * <start>+
+ *    indicates the field was introduced in version <start>
+ *    and is still valid
+ *
+ * <start>-<end>
+ *    indicates the field was introduced in version <start>
+ *    and obsoleted in version <end>+1.
+ *
+ * ??? indicates the specific version number is unknown
+ */
+
 /*
  * There are several types of BIOS data blocks (BDBs), each block has
  * an ID and size in the first 3 bytes (ID in first, size in next 2).
@@ -144,12 +158,12 @@ struct bdb_general_features {
         /* bits 3 */
 	u8 disable_smooth_vision:1;
 	u8 single_dvi:1;
-	u8 rotate_180:1;					/* 181 */
+	u8 rotate_180:1;					/* 181+ */
 	u8 fdi_rx_polarity_inverted:1;
-	u8 vbios_extended_mode:1;				/* 160 */
-	u8 copy_ilfp_dtd_to_sdvo_lvds_dtd:1;			/* 160 */
-	u8 panel_best_fit_timing:1;				/* 160 */
-	u8 ignore_strap_state:1;				/* 160 */
+	u8 vbios_extended_mode:1;				/* 160+ */
+	u8 copy_ilfp_dtd_to_sdvo_lvds_dtd:1;			/* 160+ */
+	u8 panel_best_fit_timing:1;				/* 160+ */
+	u8 ignore_strap_state:1;				/* 160+ */
 
         /* bits 4 */
 	u8 legacy_monitor_detect;
@@ -164,11 +178,11 @@ struct bdb_general_features {
 	u8 rsvd11:2; /* finish byte */
 
 	/* bits 6 */
-	u8 tc_hpd_retry_timeout:7; /* 242 */
+	u8 tc_hpd_retry_timeout:7;				/* 242+ */
 	u8 rsvd12:1;
 
 	/* bits 7 */
-	u8 afc_startup_config:2;/* 249 */
+	u8 afc_startup_config:2;				/* 249+ */
 	u8 rsvd13:6;
 } __packed;
 
@@ -182,6 +196,19 @@ struct bdb_general_features {
 #define GPIO_PIN_ADD_DDC	0x04 /* "ADDCARD DDC GPIO pins" */
 #define GPIO_PIN_ADD_DDC_I2C	0x06 /* "ADDCARD DDC/I2C GPIO pins" */
 
+/* Device handle */
+#define DEVICE_HANDLE_CRT	0x0001
+#define DEVICE_HANDLE_EFP1	0x0004
+#define DEVICE_HANDLE_EFP2	0x0040
+#define DEVICE_HANDLE_EFP3	0x0020
+#define DEVICE_HANDLE_EFP4	0x0010 /* 194+ */
+#define DEVICE_HANDLE_EFP5	0x0002 /* 215+ */
+#define DEVICE_HANDLE_EFP6	0x0001 /* 217+ */
+#define DEVICE_HANDLE_EFP7	0x0100 /* 217+ */
+#define DEVICE_HANDLE_EFP8	0x0200 /* 217+ */
+#define DEVICE_HANDLE_LFP1	0x0008
+#define DEVICE_HANDLE_LFP2	0x0080
+
 /* Pre 915 */
 #define DEVICE_TYPE_NONE	0x00
 #define DEVICE_TYPE_CRT		0x01
@@ -271,27 +298,27 @@ struct bdb_general_features {
 #define DVO_PORT_DPC		8
 #define DVO_PORT_DPD		9
 #define DVO_PORT_DPA		10
-#define DVO_PORT_DPE		11				/* 193 */
-#define DVO_PORT_HDMIE		12				/* 193 */
+#define DVO_PORT_DPE		11				/* 193+ */
+#define DVO_PORT_HDMIE		12				/* 193+ */
 #define DVO_PORT_DPF		13				/* N/A */
 #define DVO_PORT_HDMIF		14				/* N/A */
-#define DVO_PORT_DPG		15				/* 217 */
-#define DVO_PORT_HDMIG		16				/* 217 */
-#define DVO_PORT_DPH		17				/* 217 */
-#define DVO_PORT_HDMIH		18				/* 217 */
-#define DVO_PORT_DPI		19				/* 217 */
-#define DVO_PORT_HDMII		20				/* 217 */
-#define DVO_PORT_MIPIA		21				/* 171 */
-#define DVO_PORT_MIPIB		22				/* 171 */
-#define DVO_PORT_MIPIC		23				/* 171 */
-#define DVO_PORT_MIPID		24				/* 171 */
-
-#define HDMI_MAX_DATA_RATE_PLATFORM	0			/* 204 */
-#define HDMI_MAX_DATA_RATE_297		1			/* 204 */
-#define HDMI_MAX_DATA_RATE_165		2			/* 204 */
-#define HDMI_MAX_DATA_RATE_594		3			/* 249 */
-#define HDMI_MAX_DATA_RATE_340		4			/* 249 */
-#define HDMI_MAX_DATA_RATE_300		5			/* 249 */
+#define DVO_PORT_DPG		15				/* 217+ */
+#define DVO_PORT_HDMIG		16				/* 217+ */
+#define DVO_PORT_DPH		17				/* 217+ */
+#define DVO_PORT_HDMIH		18				/* 217+ */
+#define DVO_PORT_DPI		19				/* 217+ */
+#define DVO_PORT_HDMII		20				/* 217+ */
+#define DVO_PORT_MIPIA		21				/* 171+ */
+#define DVO_PORT_MIPIB		22				/* 171+ */
+#define DVO_PORT_MIPIC		23				/* 171+ */
+#define DVO_PORT_MIPID		24				/* 171+ */
+
+#define HDMI_MAX_DATA_RATE_PLATFORM	0			/* 204+ */
+#define HDMI_MAX_DATA_RATE_297		1			/* 204+ */
+#define HDMI_MAX_DATA_RATE_165		2			/* 204+ */
+#define HDMI_MAX_DATA_RATE_594		3			/* 249+ */
+#define HDMI_MAX_DATA_RATE_340		4			/* 249+ */
+#define HDMI_MAX_DATA_RATE_300		5			/* 249+ */
 
 #define LEGACY_CHILD_DEVICE_CONFIG_SIZE		33
 
@@ -375,20 +402,29 @@ struct child_device_config {
 		u8  device_id[10]; /* ascii string */
 		struct {
 			u8 i2c_speed;
-			u8 dp_onboard_redriver;			/* 158 */
-			u8 dp_ondock_redriver;			/* 158 */
-			u8 hdmi_level_shifter_value:5;		/* 169 */
-			u8 hdmi_max_data_rate:3;		/* 204 */
-			u16 dtd_buf_ptr;			/* 161 */
-			u8 edidless_efp:1;			/* 161 */
-			u8 compression_enable:1;		/* 198 */
-			u8 compression_method_cps:1;		/* 198 */
-			u8 ganged_edp:1;			/* 202 */
-			u8 reserved0:4;
-			u8 compression_structure_index:4;	/* 198 */
-			u8 reserved1:4;
-			u8 slave_port;				/* 202 */
-			u8 reserved2;
+			u8 dp_onboard_redriver_preemph:3;	/* 158+ */
+			u8 dp_onboard_redriver_vswing:3;	/* 158+ */
+			u8 dp_onboard_redriver_present:1;	/* 158+ */
+			u8 reserved0:1;
+			u8 dp_ondock_redriver_preemph:3;	/* 158+ */
+			u8 dp_ondock_redriver_vswing:3;		/* 158+ */
+			u8 dp_ondock_redriver_present:1;	/* 158+ */
+			u8 reserved1:1;
+			u8 hdmi_level_shifter_value:5;		/* 158+ */
+			u8 hdmi_max_data_rate:3;		/* 204+ */
+			u16 dtd_buf_ptr;			/* 161+ */
+			u8 edidless_efp:1;			/* 161+ */
+			u8 compression_enable:1;		/* 198+ */
+			u8 compression_method_cps:1;		/* 198+ */
+			u8 ganged_edp:1;			/* 202+ */
+			u8 lttpr_non_transparent:1;		/* 235+ */
+			u8 reserved2:3;
+			u8 compression_structure_index:4;	/* 198+ */
+			u8 reserved3:4;
+			u8 hdmi_max_frl_rate:4;			/* 237+ */
+			u8 hdmi_max_frl_rate_valid:1;		/* 237+ */
+			u8 reserved4:3;				/* 237+ */
+			u8 reserved5;
 		} __packed;
 	} __packed;
 
@@ -408,16 +444,16 @@ struct child_device_config {
 			u8 ddc2_pin;
 		} __packed;
 		struct {
-			u8 efp_routed:1;			/* 158 */
-			u8 lane_reversal:1;			/* 184 */
-			u8 lspcon:1;				/* 192 */
-			u8 iboost:1;				/* 196 */
-			u8 hpd_invert:1;			/* 196 */
-			u8 use_vbt_vswing:1;			/* 218 */
-			u8 flag_reserved:2;
-			u8 hdmi_support:1;			/* 158 */
-			u8 dp_support:1;			/* 158 */
-			u8 tmds_support:1;			/* 158 */
+			u8 efp_routed:1;			/* 158+ */
+			u8 lane_reversal:1;			/* 184+ */
+			u8 lspcon:1;				/* 192+ */
+			u8 iboost:1;				/* 196+ */
+			u8 hpd_invert:1;			/* 196+ */
+			u8 use_vbt_vswing:1;			/* 218+ */
+			u8 dp_max_lane_count:2;			/* 244+ */
+			u8 hdmi_support:1;			/* 158+ */
+			u8 dp_support:1;			/* 158+ */
+			u8 tmds_support:1;			/* 158+ */
 			u8 support_reserved:5;
 			u8 aux_channel;
 			u8 dongle_detect;
@@ -425,7 +461,7 @@ struct child_device_config {
 	} __packed;
 
 	u8 pipe_cap:2;
-	u8 sdvo_stall:1;					/* 158 */
+	u8 sdvo_stall:1;					/* 158+ */
 	u8 hpd_status:2;
 	u8 integrated_encoder:1;
 	u8 capabilities_reserved:2;
@@ -433,21 +469,21 @@ struct child_device_config {
 
 	union {
 		u8 dvo2_wiring;
-		u8 mipi_bridge_type;				/* 171 */
+		u8 mipi_bridge_type;				/* 171+ */
 	} __packed;
 
 	u16 extended_type;
 	u8 dvo_function;
-	u8 dp_usb_type_c:1;					/* 195 */
-	u8 tbt:1;						/* 209 */
-	u8 flags2_reserved:2;					/* 195 */
-	u8 dp_port_trace_length:4;				/* 209 */
-	u8 dp_gpio_index;					/* 195 */
-	u16 dp_gpio_pin_num;					/* 195 */
-	u8 dp_iboost_level:4;					/* 196 */
-	u8 hdmi_iboost_level:4;					/* 196 */
-	u8 dp_max_link_rate:3;					/* 216/230 GLK+ */
-	u8 dp_max_link_rate_reserved:5;				/* 216/230 */
+	u8 dp_usb_type_c:1;					/* 195+ */
+	u8 tbt:1;						/* 209+ */
+	u8 flags2_reserved:2;					/* 195+ */
+	u8 dp_port_trace_length:4;				/* 209+ */
+	u8 dp_gpio_index;					/* 195+ */
+	u16 dp_gpio_pin_num;					/* 195+ */
+	u8 dp_iboost_level:4;					/* 196+ */
+	u8 hdmi_iboost_level:4;					/* 196+ */
+	u8 dp_max_link_rate:3;					/* 216+ */
+	u8 dp_max_link_rate_reserved:5;				/* 216+ */
 } __packed;
 
 struct bdb_general_definitions {
@@ -484,25 +520,25 @@ struct bdb_general_definitions {
 
 struct psr_table {
 	/* Feature bits */
-	u8 full_link:1;
-	u8 require_aux_to_wakeup:1;
+	u8 full_link:1;						/* 165+ */
+	u8 require_aux_to_wakeup:1;				/* 165+ */
 	u8 feature_bits_rsvd:6;
 
 	/* Wait times */
-	u8 idle_frames:4;
-	u8 lines_to_wait:3;
+	u8 idle_frames:4;					/* 165+ */
+	u8 lines_to_wait:3;					/* 165+ */
 	u8 wait_times_rsvd:1;
 
 	/* TP wake up time in multiple of 100 */
-	u16 tp1_wakeup_time;
-	u16 tp2_tp3_wakeup_time;
+	u16 tp1_wakeup_time;					/* 165+ */
+	u16 tp2_tp3_wakeup_time;				/* 165+ */
 } __packed;
 
 struct bdb_psr {
 	struct psr_table psr_table[16];
 
 	/* PSR2 TP2/TP3 wakeup time for 16 panels */
-	u32 psr2_tp2_tp3_wakeup_time;
+	u32 psr2_tp2_tp3_wakeup_time;				/* 226+ */
 } __packed;
 
 /*
@@ -515,9 +551,10 @@ struct bdb_psr {
 #define BDB_DRIVER_FEATURE_INT_SDVO_LVDS	3
 
 struct bdb_driver_features {
+	/* Driver bits */
 	u8 boot_dev_algorithm:1;
-	u8 block_display_switch:1;
-	u8 allow_display_switch:1;
+	u8 allow_display_switch_dvd:1;
+	u8 allow_display_switch_dos:1;
 	u8 hotplug_dvo:1;
 	u8 dual_view_zoom:1;
 	u8 int15h_hook:1;
@@ -529,6 +566,7 @@ struct bdb_driver_features {
 	u8 boot_mode_bpp;
 	u8 boot_mode_refresh;
 
+	/* Extended Driver Bits 1 */
 	u16 enable_lfp_primary:1;
 	u16 selective_mode_pruning:1;
 	u16 dual_frequency:1;
@@ -544,29 +582,40 @@ struct bdb_driver_features {
 	u16 tv_hotplug:1;
 	u16 hdmi_config:2;
 
-	u8 static_display:1;
-	u8 reserved2:7;
+	/* Driver Flags 1 */
+	u8 static_display:1;					/* 163+ */
+	u8 embedded_platform:1;					/* 163+ */
+	u8 display_subsystem_enable:1;				/* 163+ */
+	u8 reserved0:5;
+
 	u16 legacy_crt_max_x;
 	u16 legacy_crt_max_y;
 	u8 legacy_crt_max_refresh;
 
-	u8 hdmi_termination;
-	u8 custom_vbt_version;
-	/* Driver features data block */
-	u16 rmpm_enabled:1;
-	u16 s2ddt_enabled:1;
-	u16 dpst_enabled:1;
-	u16 bltclt_enabled:1;
-	u16 adb_enabled:1;
-	u16 drrs_enabled:1;
-	u16 grs_enabled:1;
-	u16 gpmt_enabled:1;
-	u16 tbt_enabled:1;
-	u16 psr_enabled:1;
-	u16 ips_enabled:1;
-	u16 reserved3:1;
-	u16 dmrrs_enabled:1;
-	u16 reserved4:2;
+	/* Extended Driver Bits 2 */
+	u8 hdmi_termination:1;
+	u8 cea861d_hdmi_support:1;
+	u8 self_refresh_enable:1;
+	u8 reserved1:5;
+
+	u8 custom_vbt_version;					/* 165+ */
+
+	/* Driver Feature Flags */
+	u16 rmpm_enabled:1;					/* 165+ */
+	u16 s2ddt_enabled:1;					/* 165+ */
+	u16 dpst_enabled:1;					/* 165-227 */
+	u16 bltclt_enabled:1;					/* 165+ */
+	u16 adb_enabled:1;					/* 165-227 */
+	u16 drrs_enabled:1;					/* 165-227 */
+	u16 grs_enabled:1;					/* 165+ */
+	u16 gpmt_enabled:1;					/* 165+ */
+	u16 tbt_enabled:1;					/* 165+ */
+	u16 psr_enabled:1;					/* 165-227 */
+	u16 ips_enabled:1;					/* 165+ */
+	u16 dpfs_enabled:1;					/* 165+ */
+	u16 dmrrs_enabled:1;					/* 174-227 */
+	u16 adt_enabled:1;					/* ???-228 */
+	u16 hpd_wake:1;						/* 201-240 */
 	u16 pc_feature_valid:1;
 } __packed;
 
@@ -653,7 +702,7 @@ struct bdb_sdvo_panel_dtds {
 
 
 struct edp_fast_link_params {
-	u8 rate:4;
+	u8 rate:4;						/* ???-223 */
 	u8 lanes:4;
 	u8 preemphasis:4;
 	u8 vswing:4;
@@ -686,37 +735,34 @@ struct bdb_edp {
 	u32 sdrrs_msa_timing_delay;
 
 	/* ith bit indicates enabled/disabled for (i+1)th panel */
-	u16 edp_s3d_feature;					/* 162 */
-	u16 edp_t3_optimization;				/* 165 */
-	u64 edp_vswing_preemph;					/* 173 */
-	u16 fast_link_training;					/* 182 */
-	u16 dpcd_600h_write_required;				/* 185 */
-	struct edp_pwm_delays pwm_delays[16];			/* 186 */
-	u16 full_link_params_provided;				/* 199 */
-	struct edp_full_link_params full_link_params[16];	/* 199 */
-	u16 apical_enable;					/* 203 */
-	struct edp_apical_params apical_params[16];		/* 203 */
-	u16 edp_fast_link_training_rate[16];			/* 224 */
-	u16 edp_max_port_link_rate[16];				/* 244 */
+	u16 edp_s3d_feature;					/* 162+ */
+	u16 edp_t3_optimization;				/* 165+ */
+	u64 edp_vswing_preemph;					/* 173+ */
+	u16 fast_link_training;					/* 182+ */
+	u16 dpcd_600h_write_required;				/* 185+ */
+	struct edp_pwm_delays pwm_delays[16];			/* 186+ */
+	u16 full_link_params_provided;				/* 199+ */
+	struct edp_full_link_params full_link_params[16];	/* 199+ */
+	u16 apical_enable;					/* 203+ */
+	struct edp_apical_params apical_params[16];		/* 203+ */
+	u16 edp_fast_link_training_rate[16];			/* 224+ */
+	u16 edp_max_port_link_rate[16];				/* 244+ */
 } __packed;
 
 /*
  * Block 40 - LFP Data Block
  */
 
-/* Mask for DRRS / Panel Channel / SSC / BLT control bits extraction */
-#define MODE_MASK		0x3
-
 struct bdb_lvds_options {
 	u8 panel_type;
-	u8 panel_type2;						/* 212 */
+	u8 panel_type2;						/* 212+ */
 	/* LVDS capabilities, stored in a dword */
 	u8 pfit_mode:2;
 	u8 pfit_text_mode_enhanced:1;
 	u8 pfit_gfx_mode_enhanced:1;
 	u8 pfit_ratio_auto:1;
 	u8 pixel_dither:1;
-	u8 lvds_edid:1;
+	u8 lvds_edid:1;						/* ???-240 */
 	u8 rsvd2:1;
 	u8 rsvd4;
 	/* LVDS Panel channel bits stored here */
@@ -730,11 +776,11 @@ struct bdb_lvds_options {
 	/* LVDS panel type bits stored here */
 	u32 dps_panel_type_bits;
 	/* LVDS backlight control type bits stored here */
-	u32 blt_control_type_bits;
+	u32 blt_control_type_bits;				/* ???-240 */
 
-	u16 lcdvcc_s0_enable;					/* 200 */
-	u32 rotation;						/* 228 */
-	u32 position;						/* 240 */
+	u16 lcdvcc_s0_enable;					/* 200+ */
+	u32 rotation;						/* 228+ */
+	u32 position;						/* 240+ */
 } __packed;
 
 /*
@@ -755,7 +801,7 @@ struct lvds_lfp_data_ptr {
 struct bdb_lvds_lfp_data_ptrs {
 	u8 lvds_entries;
 	struct lvds_lfp_data_ptr ptr[16];
-	struct lvds_lfp_data_ptr_table panel_name; /* 156-163? */
+	struct lvds_lfp_data_ptr_table panel_name;		/* (156-163?)+ */
 } __packed;
 
 /*
@@ -807,20 +853,20 @@ struct lvds_lfp_panel_name {
 } __packed;
 
 struct lvds_lfp_black_border {
-	u8 top; /* 227 */
-	u8 bottom; /* 227 */
-	u8 left; /* 238 */
-	u8 right; /* 238 */
+	u8 top;		/* 227+ */
+	u8 bottom;	/* 227+ */
+	u8 left;	/* 238+ */
+	u8 right;	/* 238+ */
 } __packed;
 
 struct bdb_lvds_lfp_data_tail {
-	struct lvds_lfp_panel_name panel_name[16]; /* 156-163? */
-	u16 scaling_enable; /* 187 */
-	u8 seamless_drrs_min_refresh_rate[16]; /* 188 */
-	u8 pixel_overlap_count[16]; /* 208 */
-	struct lvds_lfp_black_border black_border[16]; /* 227 */
-	u16 dual_lfp_port_sync_enable; /* 231 */
-	u16 gpu_dithering_for_banding_artifacts; /* 245 */
+	struct lvds_lfp_panel_name panel_name[16];		/* (156-163?)+ */
+	u16 scaling_enable;					/* 187+ */
+	u8 seamless_drrs_min_refresh_rate[16];			/* 188+ */
+	u8 pixel_overlap_count[16];				/* 208+ */
+	struct lvds_lfp_black_border black_border[16];		/* 227+ */
+	u16 dual_lfp_port_sync_enable;				/* 231+ */
+	u16 gpu_dithering_for_banding_artifacts;		/* 245+ */
 } __packed;
 
 /*
@@ -835,7 +881,7 @@ struct lfp_backlight_data_entry {
 	u8 active_low_pwm:1;
 	u8 obsolete1:5;
 	u16 pwm_freq_hz;
-	u8 min_brightness; /* Obsolete from 234+ */
+	u8 min_brightness;					/* ???-233 */
 	u8 obsolete2;
 	u8 obsolete3;
 } __packed;
@@ -858,7 +904,7 @@ struct lfp_brightness_level {
 struct bdb_lfp_backlight_data {
 	u8 entry_size;
 	struct lfp_backlight_data_entry data[16];
-	u8 level[16]; /* Obsolete from 234+ */
+	u8 level[16];							/* ???-233 */
 	struct lfp_backlight_control_method backlight_control[16];
 	struct lfp_brightness_level brightness_level[16];		/* 234+ */
 	struct lfp_brightness_level brightness_min_level[16];		/* 234+ */
@@ -873,8 +919,8 @@ struct lfp_power_features {
 	u8 reserved1:1;
 	u8 power_conservation_pref:3;
 	u8 reserved2:1;
-	u8 lace_enabled_status:1;
-	u8 lace_support:1;
+	u8 lace_enabled_status:1;					/* 210+ */
+	u8 lace_support:1;						/* 210+ */
 	u8 als_enable:1;
 } __packed;
 
@@ -894,24 +940,24 @@ struct aggressiveness_profile2_entry {
 } __packed;
 
 struct bdb_lfp_power {
-	struct lfp_power_features features;
+	struct lfp_power_features features;				/* ???-227 */
 	struct als_data_entry als[5];
-	u8 lace_aggressiveness_profile:3;
+	u8 lace_aggressiveness_profile:3;				/* 210-227 */
 	u8 reserved1:5;
-	u16 dpst;
-	u16 psr;
-	u16 drrs;
-	u16 lace_support;
-	u16 adt;
-	u16 dmrrs;
-	u16 adb;
-	u16 lace_enabled_status;
-	struct aggressiveness_profile_entry aggressiveness[16];
-	u16 hobl; /* 232+ */
-	u16 vrr_feature_enabled; /* 233+ */
-	u16 elp; /* 247+ */
-	u16 opst; /* 247+ */
-	struct aggressiveness_profile2_entry aggressiveness2[16]; /* 247+ */
+	u16 dpst;							/* 228+ */
+	u16 psr;							/* 228+ */
+	u16 drrs;							/* 228+ */
+	u16 lace_support;						/* 228+ */
+	u16 adt;							/* 228+ */
+	u16 dmrrs;							/* 228+ */
+	u16 adb;							/* 228+ */
+	u16 lace_enabled_status;					/* 228+ */
+	struct aggressiveness_profile_entry aggressiveness[16];		/* 228+ */
+	u16 hobl;							/* 232+ */
+	u16 vrr_feature_enabled;					/* 233+ */
+	u16 elp;							/* 247+ */
+	u16 opst;							/* 247+ */
+	struct aggressiveness_profile2_entry aggressiveness2[16];	/* 247+ */
 } __packed;
 
 /*
@@ -921,10 +967,10 @@ struct bdb_lfp_power {
 #define MAX_MIPI_CONFIGURATIONS	6
 
 struct bdb_mipi_config {
-	struct mipi_config config[MAX_MIPI_CONFIGURATIONS]; /* 175 */
-	struct mipi_pps_data pps[MAX_MIPI_CONFIGURATIONS]; /* 177 */
-	struct edp_pwm_delays pwm_delays[MAX_MIPI_CONFIGURATIONS]; /* 186 */
-	u8 pmic_i2c_bus_number[MAX_MIPI_CONFIGURATIONS]; /* 190 */
+	struct mipi_config config[MAX_MIPI_CONFIGURATIONS];		/* 175+ */
+	struct mipi_pps_data pps[MAX_MIPI_CONFIGURATIONS];		/* 177+ */
+	struct edp_pwm_delays pwm_delays[MAX_MIPI_CONFIGURATIONS];	/* 186+ */
+	u8 pmic_i2c_bus_number[MAX_MIPI_CONFIGURATIONS];		/* 190+ */
 } __packed;
 
 /*
-- 
2.35.1

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

* [igt-dev] [PATCH i-g-t 04/14] tools/intel_vbt_decode: Introduce panel_bits()/panel_bool()
  2022-07-15 20:25 [igt-dev] [PATCH i-g-t 00/14] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
                   ` (2 preceding siblings ...)
  2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 03/14] tools/intel_vbt_decode: update vbt defs from kernel Ville Syrjala
@ 2022-07-15 20:25 ` Ville Syrjala
  2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 05/14] tools/intel_vbt_decode: Remove pointless variables Ville Syrjala
                   ` (11 subsequent siblings)
  15 siblings, 0 replies; 19+ messages in thread
From: Ville Syrjala @ 2022-07-15 20:25 UTC (permalink / raw)
  To: igt-dev

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

Add a few helpers for extracting panel specific bits from
the bitfields.

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

diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index 4bb8437bffb0..97db885aee63 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -507,6 +507,16 @@ static struct bdb_block *find_section(const struct context *context, int section
 	return block;
 }
 
+static unsigned int panel_bits(unsigned int value, int panel_type, int num_bits)
+{
+	return (value >> (panel_type * num_bits)) & (BIT(num_bits) - 1);
+}
+
+static bool panel_bool(unsigned int value, int panel_type)
+{
+	return panel_bits(value, panel_type, 1);
+}
+
 static int decode_ssc_freq(struct context *context, bool alternate)
 {
 	switch (intel_gen(context->devid)) {
@@ -1101,58 +1111,58 @@ static void dump_lvds_options(struct context *context,
 
 		printf("\tPanel %d%s\n", i, context->panel_type == i ? " *" : "");
 
-		val = (options->lvds_panel_channel_bits >> (i * 2)) & 3;
+		val = panel_bits(options->lvds_panel_channel_bits, i, 2);
 		printf("\t\tChannel type: %s (0x%x)\n",
 		       channel_type[val], val);
 
-		val = (options->ssc_bits >> i) & 1;
+		val = panel_bool(options->ssc_bits, i);
 		printf("\t\tSSC: %s (0x%x)\n",
 		       YESNO(val), val);
 
-		val = (options->ssc_freq >> i) & 1;
+		val = panel_bool(options->ssc_freq, i);
 		printf("\t\tSSC frequency: %d MHz (0x%x)\n",
 		       decode_ssc_freq(context, val), val);
 
-		val = (options->ssc_ddt >> i) & 1;
+		val = panel_bool(options->ssc_ddt, i);
 		printf("\t\tDisable SSC in dual display twin: %s (0x%x)\n",
 		       YESNO(val), val);
 
 		if (block->size < 16)
 			continue;
 
-		val = (options->panel_color_depth >> i) & 1;
+		val = panel_bool(options->panel_color_depth, i);
 		printf("\t\tPanel color depth: %d (0x%x)\n",
 		       val ? 24 : 18, val);
 
 		if (block->size < 24)
 			continue;
 
-		val = (options->dps_panel_type_bits >> (i * 2)) & 3;
+		val = panel_bits(options->dps_panel_type_bits, i, 2);
 		printf("\t\tDPS type: %s (0x%x)\n",
 		       dps_type[val], val);
 
-		val = (options->blt_control_type_bits >> (i * 2)) & 3;
+		val = panel_bits(options->blt_control_type_bits, i, 2);
 		printf("\t\tBacklight type: %s (0x%x)\n",
 		       blt_type[val], val);
 
 		if (context->bdb->version < 200)
 			continue;
 
-		val = (options->lcdvcc_s0_enable >> i) & 1;
+		val = panel_bool(options->lcdvcc_s0_enable, i);
 		printf("\t\tLCDVCC on during S0 state: %s (0x%x)\n",
 		       YESNO(val), val);
 
 		if (context->bdb->version < 228)
 			continue;
 
-		val = ((options->rotation) >> (i * 2)) & 3;
+		val = panel_bits((options->rotation), i, 2);
 		printf("\t\tPanel rotation: %d degrees (0x%x)\n",
 		       val * 90, val);
 
 		if (context->bdb->version < 240)
 			continue;
 
-		val = ((options->position) >> (i * 2)) & 3;
+		val = panel_bits((options->position), i, 2);
 		printf("\t\tPanel position: %s (0x%x)\n",
 		       pos_type[val], val);
 	}
@@ -1291,7 +1301,7 @@ static void dump_lvds_data(struct context *context,
 			continue;
 
 		printf("\t\tScaling enable: %s\n",
-		       YESNO((tail->scaling_enable >> i) & 1));
+		       YESNO(panel_bool(tail->scaling_enable, i)));
 
 		if (context->bdb->version < 188)
 			continue;
@@ -1318,13 +1328,13 @@ static void dump_lvds_data(struct context *context,
 			continue;
 
 		printf("\t\tDual LFP port sync enable: %s\n",
-		       YESNO((tail->dual_lfp_port_sync_enable >> i) & 1));
+		       YESNO(panel_bool(tail->dual_lfp_port_sync_enable, i)));
 
 		if (context->bdb->version < 245)
 			continue;
 
 		printf("\t\tGPU dithering for banding artifacts: %s\n",
-		       YESNO((tail->gpu_dithering_for_banding_artifacts >> i) & 1));
+		       YESNO(panel_bool(tail->gpu_dithering_for_banding_artifacts, i)));
 	}
 
 	free(ptrs_block);
@@ -1419,7 +1429,7 @@ static void dump_edp(struct context *context,
 		       edp->power_seqs[i].t10,
 		       edp->power_seqs[i].t12);
 
-		bpp = (edp->color_depth >> (i * 2)) & 3;
+		bpp = panel_bits(edp->color_depth, i, 2);
 
 		printf("\t\tPanel color depth: ");
 		switch (bpp) {
@@ -1437,7 +1447,7 @@ static void dump_edp(struct context *context,
 			break;
 		}
 
-		msa = (edp->sdrrs_msa_timing_delay >> (i * 2)) & 3;
+		msa = panel_bits(edp->sdrrs_msa_timing_delay, i, 2);
 		printf("\t\teDP sDRRS MSA Delay: Lane %d\n", msa + 1);
 
 		printf("\t\tFast link params:\n");
@@ -1467,12 +1477,12 @@ static void dump_edp(struct context *context,
 		       edp->fast_link_params[i].vswing);
 
 		if (context->bdb->version >= 162) {
-			bool val = (edp->edp_s3d_feature >> i) & 1;
+			bool val = panel_bool(edp->edp_s3d_feature, i);
 			printf("\t\tStereo 3D feature: %s\n", YESNO(val));
 		}
 
 		if (context->bdb->version >= 165) {
-			bool val = (edp->edp_t3_optimization >> i) & 1;
+			bool val = panel_bool(edp->edp_t3_optimization, i);
 			printf("\t\tT3 optimization: %s\n", YESNO(val));
 		}
 
@@ -1494,12 +1504,12 @@ static void dump_edp(struct context *context,
 		}
 
 		if (context->bdb->version >= 182) {
-			bool val = (edp->fast_link_training >> i) & 1;
+			bool val = panel_bool(edp->fast_link_training, i);
 			printf("\t\tFast link training: %s\n", YESNO(val));
 		}
 
 		if (context->bdb->version >= 185) {
-			bool val = (edp->dpcd_600h_write_required >> i) & 1;
+			bool val = panel_bool(edp->dpcd_600h_write_required, i);
 			printf("\t\tDPCD 600h write required: %s\n", YESNO(val));
 		}
 
@@ -1512,7 +1522,7 @@ static void dump_edp(struct context *context,
 		}
 
 		if (context->bdb->version >= 199) {
-			bool val = (edp->full_link_params_provided >> i) & 1;
+			bool val = panel_bool(edp->full_link_params_provided, i);
 
 			printf("\t\tFull link params provided: %s\n", YESNO(val));
 			printf("\t\tFull link params:\n");
@@ -1595,7 +1605,8 @@ static void dump_psr(struct context *context,
 			int index;
 			static const uint16_t psr2_tp_times[] = {500, 100, 2500, 5};
 
-			index = (psr2_tp_time >> (i * 2)) & 0x3;
+			index = panel_bits(psr2_tp_time, i, 2);
+
 			printf("\t\tPSR2 TP2/TP3 wakeup time: %d usec (0x%x)\n",
 			       psr2_tp_times[index], index);
 		}
@@ -1637,20 +1648,21 @@ static void dump_lfp_power(struct context *context,
 		printf("\tPanel %d%s\n", i, context->panel_type == i ? " *" : "");
 
 		printf("\t\tDPST: %s\n",
-		       YESNO((lfp_block->dpst >> i) & 1));
+		       YESNO(panel_bool(lfp_block->dpst, i)));
 		printf("\t\tPSR: %s\n",
-		       YESNO((lfp_block->psr >> i) & 1));
+		       YESNO(panel_bool(lfp_block->psr, i)));
 		printf("\t\tDRRS: %s\n",
-		       YESNO((lfp_block->drrs >> i) & 1));
+		       YESNO(panel_bool(lfp_block->drrs, i)));
 		printf("\t\tDisplay LACE support: %s\n",
-		       YESNO((lfp_block->lace_support >> i) & 1));
+		       YESNO(panel_bool(lfp_block->lace_support, i)));
 		printf("\t\tADT: %s\n",
-		       YESNO((lfp_block->adt >> i) & 1));
+		       YESNO(panel_bool(lfp_block->adt, i)));
 		printf("\t\tDMRRS: %s\n",
-		       YESNO((lfp_block->dmrrs >> i) & 1));
-		printf("\t\tADB: %s\n", YESNO((lfp_block->adb >> i) & 1));
+		       YESNO(panel_bool(lfp_block->dmrrs, i)));
+		printf("\t\tADB: %s\n",
+		       YESNO(panel_bool(lfp_block->adb, i)));
 		printf("\t\tDefault Display LACE enabled: %s\n",
-		       YESNO((lfp_block->lace_enabled_status >> i) & 1));
+		       YESNO(panel_bool(lfp_block->lace_enabled_status, i)));
 		printf("\t\tLACE Aggressiveness: %d\n",
 		       lfp_block->aggressiveness[i].lace_aggressiveness);
 		printf("\t\tDPST Aggressiveness: %d\n",
@@ -1660,21 +1672,21 @@ static void dump_lfp_power(struct context *context,
 			continue;
 
 		printf("\t\tEDP 4k/2k HOBL feature: %s\n",
-		       YESNO((lfp_block->hobl >> i) & 1));
+		       YESNO(panel_bool(lfp_block->hobl, i)));
 
 		if (context->bdb->version < 233)
 			continue;
 
 		printf("\t\tVRR feature: %s\n",
-		       YESNO((lfp_block->vrr_feature_enabled >> i) & 1));
+		       YESNO(panel_bool(lfp_block->vrr_feature_enabled, i)));
 
 		if (context->bdb->version < 247)
 			continue;
 
 		printf("\t\tELP: %s\n",
-		       YESNO((lfp_block->elp >> i) & 1));
+		       YESNO(panel_bool(lfp_block->elp, i)));
 		printf("\t\tOPST: %s\n",
-		       YESNO((lfp_block->opst >> i) & 1));
+		       YESNO(panel_bool(lfp_block->opst, i)));
 		printf("\t\tELP Aggressiveness: %d\n",
 		       lfp_block->aggressiveness2[i].elp_aggressiveness);
 		printf("\t\tOPST Aggrgessiveness: %d\n",
-- 
2.35.1

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

* [igt-dev] [PATCH i-g-t 05/14] tools/intel_vbt_decode: Remove pointless variables
  2022-07-15 20:25 [igt-dev] [PATCH i-g-t 00/14] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
                   ` (3 preceding siblings ...)
  2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 04/14] tools/intel_vbt_decode: Introduce panel_bits()/panel_bool() Ville Syrjala
@ 2022-07-15 20:25 ` Ville Syrjala
  2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 06/14] tools/intel_vbt_decode: Extract lvds_config[] Ville Syrjala
                   ` (10 subsequent siblings)
  15 siblings, 0 replies; 19+ messages in thread
From: Ville Syrjala @ 2022-07-15 20:25 UTC (permalink / raw)
  To: igt-dev

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

A bunch of places assign some random variable just to
print out its value with YESNO(). Skip the pointless
intermediate step.

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

diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index 97db885aee63..072c1d969c14 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -1115,17 +1115,15 @@ static void dump_lvds_options(struct context *context,
 		printf("\t\tChannel type: %s (0x%x)\n",
 		       channel_type[val], val);
 
-		val = panel_bool(options->ssc_bits, i);
-		printf("\t\tSSC: %s (0x%x)\n",
-		       YESNO(val), val);
+		printf("\t\tSSC: %s\n",
+		       YESNO(panel_bool(options->ssc_bits, i)));
 
 		val = panel_bool(options->ssc_freq, i);
 		printf("\t\tSSC frequency: %d MHz (0x%x)\n",
 		       decode_ssc_freq(context, val), val);
 
-		val = panel_bool(options->ssc_ddt, i);
-		printf("\t\tDisable SSC in dual display twin: %s (0x%x)\n",
-		       YESNO(val), val);
+		printf("\t\tDisable SSC in dual display twin: %s\n",
+		       YESNO(panel_bool(options->ssc_ddt, i)));
 
 		if (block->size < 16)
 			continue;
@@ -1148,9 +1146,8 @@ static void dump_lvds_options(struct context *context,
 		if (context->bdb->version < 200)
 			continue;
 
-		val = panel_bool(options->lcdvcc_s0_enable, i);
-		printf("\t\tLCDVCC on during S0 state: %s (0x%x)\n",
-		       YESNO(val), val);
+		printf("\t\tLCDVCC on during S0 state: %s\n",
+		       YESNO(panel_bool(options->lcdvcc_s0_enable, i)));
 
 		if (context->bdb->version < 228)
 			continue;
@@ -1476,15 +1473,13 @@ static void dump_edp(struct context *context,
 		       dp_preemph(edp->fast_link_params[i].vswing),
 		       edp->fast_link_params[i].vswing);
 
-		if (context->bdb->version >= 162) {
-			bool val = panel_bool(edp->edp_s3d_feature, i);
-			printf("\t\tStereo 3D feature: %s\n", YESNO(val));
-		}
+		if (context->bdb->version >= 162)
+			printf("\t\tStereo 3D feature: %s\n",
+			       YESNO(panel_bool(edp->edp_s3d_feature, i)));
 
-		if (context->bdb->version >= 165) {
-			bool val = panel_bool(edp->edp_t3_optimization, i);
-			printf("\t\tT3 optimization: %s\n", YESNO(val));
-		}
+		if (context->bdb->version >= 165)
+			printf("\t\tT3 optimization: %s\n",
+			       YESNO(panel_bool(edp->edp_t3_optimization, i)));
 
 		if (context->bdb->version >= 173) {
 			int val = (edp->edp_vswing_preemph >> (i * 4)) & 0xf;
@@ -1503,28 +1498,25 @@ static void dump_edp(struct context *context,
 			}
 		}
 
-		if (context->bdb->version >= 182) {
-			bool val = panel_bool(edp->fast_link_training, i);
-			printf("\t\tFast link training: %s\n", YESNO(val));
-		}
+		if (context->bdb->version >= 182)
+			printf("\t\tFast link training: %s\n",
+			       YESNO(panel_bool(edp->fast_link_training, i)));
 
-		if (context->bdb->version >= 185) {
-			bool val = panel_bool(edp->dpcd_600h_write_required, i);
-			printf("\t\tDPCD 600h write required: %s\n", YESNO(val));
-		}
+		if (context->bdb->version >= 185)
+			printf("\t\tDPCD 600h write required: %s\n",
+			       YESNO(panel_bool(edp->dpcd_600h_write_required, i)));
 
-		if (context->bdb->version >= 186) {
+		if (context->bdb->version >= 186)
 			printf("\t\tPWM delays:\n"
 			       "\t\t\tPWM on to backlight enable: %d\n"
 			       "\t\t\tBacklight disable to PWM off: %d\n",
 			       edp->pwm_delays[i].pwm_on_to_backlight_enable,
 			       edp->pwm_delays[i].backlight_disable_to_pwm_off);
-		}
 
 		if (context->bdb->version >= 199) {
-			bool val = panel_bool(edp->full_link_params_provided, i);
+			printf("\t\tFull link params provided: %s\n",
+			       YESNO(panel_bool(edp->full_link_params_provided, i)));
 
-			printf("\t\tFull link params provided: %s\n", YESNO(val));
 			printf("\t\tFull link params:\n");
 			printf("\t\t\tpre-emphasis: %s (0x%x)\n",
 			       dp_preemph(edp->full_link_params[i].preemphasis),
-- 
2.35.1

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

* [igt-dev] [PATCH i-g-t 06/14] tools/intel_vbt_decode: Extract lvds_config[]
  2022-07-15 20:25 [igt-dev] [PATCH i-g-t 00/14] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
                   ` (4 preceding siblings ...)
  2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 05/14] tools/intel_vbt_decode: Remove pointless variables Ville Syrjala
@ 2022-07-15 20:25 ` Ville Syrjala
  2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 07/14] tools/intel_vbt_decode: Extract panel_fitting[] Ville Syrjala
                   ` (9 subsequent siblings)
  15 siblings, 0 replies; 19+ messages in thread
From: Ville Syrjala @ 2022-07-15 20:25 UTC (permalink / raw)
  To: igt-dev

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

Extract the lvds_config string representation into an array.
Less clutter in the code this way.

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

diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index 072c1d969c14..cffc385306f2 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -1337,6 +1337,13 @@ static void dump_lvds_data(struct context *context,
 	free(ptrs_block);
 }
 
+static const char * const lvds_config[] = {
+	[BDB_DRIVER_NO_LVDS] = "No LVDS",
+	[BDB_DRIVER_INT_LVDS] = "Integrated LVDS",
+	[BDB_DRIVER_SDVO_LVDS] = "SDVO LVDS",
+	[BDB_DRIVER_EDP] = "Embedded DisplayPort",
+};
+
 static void dump_driver_feature(struct context *context,
 				const struct bdb_block *block)
 {
@@ -1381,21 +1388,8 @@ static void dump_driver_feature(struct context *context,
 	printf("\tEnable SDVO device power down: %s\n",
 	       YESNO(feature->sdvo_device_power_down));
 	printf("\tCRT hotplug: %s\n", YESNO(feature->crt_hotplug));
-	printf("\tLVDS config: ");
-	switch (feature->lvds_config) {
-	case BDB_DRIVER_NO_LVDS:
-		printf("No LVDS\n");
-		break;
-	case BDB_DRIVER_INT_LVDS:
-		printf("Integrated LVDS\n");
-		break;
-	case BDB_DRIVER_SDVO_LVDS:
-		printf("SDVO LVDS\n");
-		break;
-	case BDB_DRIVER_EDP:
-		printf("Embedded DisplayPort\n");
-		break;
-	}
+	printf("\tLVDS config: %s (0x%x)\n",
+	       lvds_config[feature->lvds_config], feature->lvds_config);
 	printf("\tDefine Display statically: %s\n",
 	       YESNO(feature->static_display));
 	printf("\tLegacy CRT max X: %d\n", feature->legacy_crt_max_x);
-- 
2.35.1

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

* [igt-dev] [PATCH i-g-t 07/14] tools/intel_vbt_decode: Extract panel_fitting[]
  2022-07-15 20:25 [igt-dev] [PATCH i-g-t 00/14] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
                   ` (5 preceding siblings ...)
  2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 06/14] tools/intel_vbt_decode: Extract lvds_config[] Ville Syrjala
@ 2022-07-15 20:25 ` Ville Syrjala
  2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 08/14] tools/intel_vbt_decode: Parse HDMI FRL rate Ville Syrjala
                   ` (8 subsequent siblings)
  15 siblings, 0 replies; 19+ messages in thread
From: Ville Syrjala @ 2022-07-15 20:25 UTC (permalink / raw)
  To: igt-dev

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

Extract the panel_fitting string representation into an array.
Less clutter in the code this way.

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

diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index cffc385306f2..b5b60723baa8 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -530,26 +530,20 @@ static int decode_ssc_freq(struct context *context, bool alternate)
 	}
 }
 
+static const char * const panel_fitting[] = {
+	[0] = "disabled",
+	[1] = "text only",
+	[2] = "graphics only",
+	[3] = "text & graphics",
+};
+
 static void dump_general_features(struct context *context,
 				  const struct bdb_block *block)
 {
 	const struct bdb_general_features *features = block_data(block);
 
-	printf("\tPanel fitting: ");
-	switch (features->panel_fitting) {
-	case 0:
-		printf("disabled\n");
-		break;
-	case 1:
-		printf("text only\n");
-		break;
-	case 2:
-		printf("graphics only\n");
-		break;
-	case 3:
-		printf("text & graphics\n");
-		break;
-	}
+	printf("\tPanel fitting: %s (0x%x)\n",
+	       panel_fitting[features->panel_fitting], features->panel_fitting);
 	printf("\tFlexaim: %s\n", YESNO(features->flexaim));
 	printf("\tMessage: %s\n", YESNO(features->msg_enable));
 	printf("\tClear screen: %d\n", features->clear_screen);
-- 
2.35.1

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

* [igt-dev] [PATCH i-g-t 08/14] tools/intel_vbt_decode: Parse HDMI FRL rate
  2022-07-15 20:25 [igt-dev] [PATCH i-g-t 00/14] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
                   ` (6 preceding siblings ...)
  2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 07/14] tools/intel_vbt_decode: Extract panel_fitting[] Ville Syrjala
@ 2022-07-15 20:25 ` Ville Syrjala
  2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 09/14] tools/intel_vbt_decode: Decode the "use VBT vswing tables" flag Ville Syrjala
                   ` (7 subsequent siblings)
  15 siblings, 0 replies; 19+ messages in thread
From: Ville Syrjala @ 2022-07-15 20:25 UTC (permalink / raw)
  To: igt-dev

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

Parse the max HDMI FRL rate stuff.

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

diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index b5b60723baa8..e05fed69b242 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -881,6 +881,19 @@ static const char *dp_preemph(u8 preemph)
 	}
 }
 
+static const char *hdmi_frl_rate(u8 frl_rate)
+{
+	switch (frl_rate) {
+	case 0: return "FRL not supported";
+	case 1: return "3 GT/s";
+	case 2: return "6 GT/s";
+	case 3: return "8 GT/s";
+	case 4: return "10 GT/s";
+	case 5: return "12 GT/s";
+	default: return "<unknown>";
+	}
+}
+
 static void dump_child_device(struct context *context,
 			      const struct child_device_config *child)
 {
@@ -924,6 +937,14 @@ static void dump_child_device(struct context *context,
 		printf("\t\tCompression method CPS: %s\n", YESNO(child->compression_method_cps));
 		printf("\t\tDual pipe ganged eDP: %s\n", YESNO(child->ganged_edp));
 		printf("\t\tCompression structure index: 0x%02x)\n", child->compression_structure_index);
+
+		if (context->bdb->version >= 237) {
+			printf("\t\tHDMI Max FRL rate valid: %s\n",
+			       YESNO(child->hdmi_max_frl_rate_valid));
+			printf("\t\tHDMI Max FRL rate: %s (0x%x)\n",
+			       hdmi_frl_rate(child->hdmi_max_frl_rate),
+			       child->hdmi_max_frl_rate);
+		}
 	}
 
 	printf("\t\tAIM offset: %d\n", child->addin_offset);
-- 
2.35.1

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

* [igt-dev] [PATCH i-g-t 09/14] tools/intel_vbt_decode: Decode the "use VBT vswing tables" flag
  2022-07-15 20:25 [igt-dev] [PATCH i-g-t 00/14] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
                   ` (7 preceding siblings ...)
  2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 08/14] tools/intel_vbt_decode: Parse HDMI FRL rate Ville Syrjala
@ 2022-07-15 20:25 ` Ville Syrjala
  2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 10/14] tools/intel_vbt_decode: Decode eDP/DP max lane count Ville Syrjala
                   ` (6 subsequent siblings)
  15 siblings, 0 replies; 19+ messages in thread
From: Ville Syrjala @ 2022-07-15 20:25 UTC (permalink / raw)
  To: igt-dev

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

Decode the "Use VBT swging tables" bit. Note that we don't decode
the actual tables so far.

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

diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index e05fed69b242..7b7930086693 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -967,6 +967,7 @@ static void dump_child_device(struct context *context,
 		printf("\t\tOnboard LSPCON: %s\n", YESNO(child->lspcon));
 		printf("\t\tIboost enable: %s\n", YESNO(child->iboost));
 		printf("\t\tHPD sense invert: %s\n", YESNO(child->hpd_invert));
+		printf("\t\tUse VBT vswing/premph table: %s\n", YESNO(child->use_vbt_vswing));
 		printf("\t\tHDMI compatible? %s\n", YESNO(child->hdmi_support));
 		printf("\t\tDP compatible? %s\n", YESNO(child->dp_support));
 		printf("\t\tTMDS compatible? %s\n", YESNO(child->tmds_support));
-- 
2.35.1

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

* [igt-dev] [PATCH i-g-t 10/14] tools/intel_vbt_decode: Decode eDP/DP max lane count
  2022-07-15 20:25 [igt-dev] [PATCH i-g-t 00/14] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
                   ` (8 preceding siblings ...)
  2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 09/14] tools/intel_vbt_decode: Decode the "use VBT vswing tables" flag Ville Syrjala
@ 2022-07-15 20:25 ` Ville Syrjala
  2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 11/14] tools/intel_vbt_decode: Clean up driver features block decoding Ville Syrjala
                   ` (5 subsequent siblings)
  15 siblings, 0 replies; 19+ messages in thread
From: Ville Syrjala @ 2022-07-15 20:25 UTC (permalink / raw)
  To: igt-dev

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

We have a new field for eDP/DP max lane count. Decode it.

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

diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index 7b7930086693..37b195ab8c16 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -968,6 +968,8 @@ static void dump_child_device(struct context *context,
 		printf("\t\tIboost enable: %s\n", YESNO(child->iboost));
 		printf("\t\tHPD sense invert: %s\n", YESNO(child->hpd_invert));
 		printf("\t\tUse VBT vswing/premph table: %s\n", YESNO(child->use_vbt_vswing));
+		if (context->bdb->version >= 244)
+			printf("\t\teDP/DP max lane count: X%d\n", child->dp_max_lane_count + 1);
 		printf("\t\tHDMI compatible? %s\n", YESNO(child->hdmi_support));
 		printf("\t\tDP compatible? %s\n", YESNO(child->dp_support));
 		printf("\t\tTMDS compatible? %s\n", YESNO(child->tmds_support));
-- 
2.35.1

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

* [igt-dev] [PATCH i-g-t 11/14] tools/intel_vbt_decode: Clean up driver features block decoding
  2022-07-15 20:25 [igt-dev] [PATCH i-g-t 00/14] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
                   ` (9 preceding siblings ...)
  2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 10/14] tools/intel_vbt_decode: Decode eDP/DP max lane count Ville Syrjala
@ 2022-07-15 20:25 ` Ville Syrjala
  2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 12/14] tools/intel_vbt_decode: Decode AUX CH Ville Syrjala
                   ` (4 subsequent siblings)
  15 siblings, 0 replies; 19+ messages in thread
From: Ville Syrjala @ 2022-07-15 20:25 UTC (permalink / raw)
  To: igt-dev

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

Print all the stuff from the driver features block, and print
it in the same order as the spec lists it to make it a bit
easier to compare the two.

Also use consistent naming for a bunch of the fields that
exist in both the driver features block and the power conservation
block.

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

diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index 37b195ab8c16..90ae7c667f16 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -1367,23 +1367,28 @@ static void dump_driver_feature(struct context *context,
 {
 	const struct bdb_driver_features *feature = block_data(block);
 
-	printf("\tBoot Device Algorithm: %s\n", feature->boot_dev_algorithm ?
-	       "driver default" : "os default");
-	printf("\tBlock display switching when DVD active: %s\n",
-	       YESNO(feature->allow_display_switch_dvd));
-	printf("\tAllow display switching when in Full Screen DOS: %s\n",
-	       YESNO(feature->allow_display_switch_dos));
-	printf("\tHot Plug DVO: %s\n", YESNO(feature->hotplug_dvo));
-	printf("\tDual View Zoom: %s\n", YESNO(feature->dual_view_zoom));
-	printf("\tDriver INT 15h hook: %s\n", YESNO(feature->int15h_hook));
-	printf("\tEnable Sprite in Clone Mode: %s\n",
-	       YESNO(feature->sprite_in_clone));
 	printf("\tUse 00000110h ID for Primary LFP: %s\n",
 	       YESNO(feature->primary_lfp_id));
+	printf("\tEnable Sprite in Clone Mode: %s\n",
+	       YESNO(feature->sprite_in_clone));
+	printf("\tDriver INT 15h hook: %s\n",
+	       YESNO(feature->int15h_hook));
+	printf("\tDual View Zoom: %s\n",
+	       YESNO(feature->dual_view_zoom));
+	printf("\tHot Plug DVO: %s\n",
+	       YESNO(feature->hotplug_dvo));
+	printf("\tAllow display switching when in Full Screen DOS: %s\n",
+	       YESNO(feature->allow_display_switch_dos));
+	printf("\tAllow display switching when DVD active: %s\n",
+	       YESNO(feature->allow_display_switch_dvd));
+	printf("\tBoot Device Algorithm: %s\n",
+	       feature->boot_dev_algorithm ? "driver default" : "os default");
+
 	printf("\tBoot Mode X: %u\n", feature->boot_mode_x);
 	printf("\tBoot Mode Y: %u\n", feature->boot_mode_y);
 	printf("\tBoot Mode Bpp: %u\n", feature->boot_mode_bpp);
 	printf("\tBoot Mode Refresh: %u\n", feature->boot_mode_refresh);
+
 	printf("\tEnable LFP as primary: %s\n",
 	       YESNO(feature->enable_lfp_primary));
 	printf("\tSelective Mode Pruning: %s\n",
@@ -1396,9 +1401,8 @@ static void dump_driver_feature(struct context *context,
 	       YESNO(feature->nt_clone_support));
 	printf("\tDefault Power Scheme user interface: %s\n",
 	       feature->power_scheme_ui ? "3rd party" : "CUI");
-	printf
-	    ("\tSprite Display Assignment when Overlay is Active in Clone Mode: %s\n",
-	     feature->sprite_display_assign ? "primary" : "secondary");
+	printf("\tSprite Display Assignment when Overlay is Active in Clone Mode: %s\n",
+	       feature->sprite_display_assign ? "primary" : "secondary");
 	printf("\tDisplay Maintain Aspect Scaling via CUI: %s\n",
 	       YESNO(feature->cui_aspect_scaling));
 	printf("\tPreserve Aspect Ratio: %s\n",
@@ -1406,16 +1410,59 @@ static void dump_driver_feature(struct context *context,
 	printf("\tEnable SDVO device power down: %s\n",
 	       YESNO(feature->sdvo_device_power_down));
 	printf("\tCRT hotplug: %s\n", YESNO(feature->crt_hotplug));
+
 	printf("\tLVDS config: %s (0x%x)\n",
 	       lvds_config[feature->lvds_config], feature->lvds_config);
+	printf("\tTV hotplug: %s\n",
+	       YESNO(feature->tv_hotplug));
+
+	printf("\tDisplay subsystem enable: %s\n",
+	       YESNO(feature->display_subsystem_enable));
+	printf("\tEmbedded platform: %s\n",
+	       YESNO(feature->embedded_platform));
 	printf("\tDefine Display statically: %s\n",
 	       YESNO(feature->static_display));
+
 	printf("\tLegacy CRT max X: %d\n", feature->legacy_crt_max_x);
 	printf("\tLegacy CRT max Y: %d\n", feature->legacy_crt_max_y);
 	printf("\tLegacy CRT max refresh: %d\n",
 	       feature->legacy_crt_max_refresh);
-	printf("\tEnable DRRS: %s\n", YESNO(feature->drrs_enabled));
-	printf("\tEnable PSR: %s\n", YESNO(feature->psr_enabled));
+
+	printf("\tInternal source termination for HDMI: %s\n",
+	       YESNO(feature->hdmi_termination));
+	printf("\tCEA 861-D HDMI support: %s\n",
+	       YESNO(feature->cea861d_hdmi_support));
+	printf("\tSelf refresh enable: %s\n",
+	       YESNO(feature->self_refresh_enable));
+
+	printf("\tCustom VBT number: 0x%x\n", feature->custom_vbt_version);
+
+	printf("\tPC Features field validity: %s\n",
+	       YESNO(feature->pc_feature_valid));
+	printf("\tDynamic Media Refresh Rate Switching (DMRRS): %s\n",
+	       YESNO(feature->dmrrs_enabled));
+	printf("\tIntermediate Pixel Storage (IPS): %s\n",
+	       YESNO(feature->ips_enabled));
+	printf("\tPanel Self Refresh (PSR): %s\n",
+	       YESNO(feature->psr_enabled));
+	printf("\tTurbo Boost Technology: %s\n",
+	       YESNO(feature->tbt_enabled));
+	printf("\tGraphics Power Management (GPMT): %s\n",
+	       YESNO(feature->gpmt_enabled));
+	printf("\tGraphics Render Standby (RS): %s\n",
+	       YESNO(feature->grs_enabled));
+	printf("\tDynamic Refresh Rate Switching (DRRS): %s\n",
+	       YESNO(feature->drrs_enabled));
+	printf("\tAutomatic Display Brightness (ADB): %s\n",
+	       YESNO(feature->adb_enabled));
+	printf("\tDxgkDDI Backlight Control (DxgkDdiBLC): %s\n",
+	       YESNO(feature->bltclt_enabled));
+	printf("\tDisplay Power Saving Technology (DPST): %s\n",
+	       YESNO(feature->dpst_enabled));
+	printf("\tSmart 2D Display Technology (S2DDT): %s\n",
+	       YESNO(feature->s2ddt_enabled));
+	printf("\tRapid Memory Power Management (RMPM): %s\n",
+	       YESNO(feature->rmpm_enabled));
 }
 
 static void dump_edp(struct context *context,
@@ -1651,19 +1698,19 @@ static void dump_lfp_power(struct context *context,
 
 		printf("\tPanel %d%s\n", i, context->panel_type == i ? " *" : "");
 
-		printf("\t\tDPST: %s\n",
+		printf("\t\tDisplay Power Saving Technology (DPST): %s\n",
 		       YESNO(panel_bool(lfp_block->dpst, i)));
-		printf("\t\tPSR: %s\n",
+		printf("\t\tPanel Self Refresh (PSR): %s\n",
 		       YESNO(panel_bool(lfp_block->psr, i)));
-		printf("\t\tDRRS: %s\n",
+		printf("\t\tDynamic Refresh Rate Switching (DRRS): %s\n",
 		       YESNO(panel_bool(lfp_block->drrs, i)));
 		printf("\t\tDisplay LACE support: %s\n",
 		       YESNO(panel_bool(lfp_block->lace_support, i)));
-		printf("\t\tADT: %s\n",
+		printf("\t\tAssertive Display Technology (ADT): %s\n",
 		       YESNO(panel_bool(lfp_block->adt, i)));
-		printf("\t\tDMRRS: %s\n",
+		printf("\t\tDynamic Media Refresh Rate Switching (DMRRS): %s\n",
 		       YESNO(panel_bool(lfp_block->dmrrs, i)));
-		printf("\t\tADB: %s\n",
+		printf("\t\tAutomatic Display Brightness (ADB): %s\n",
 		       YESNO(panel_bool(lfp_block->adb, i)));
 		printf("\t\tDefault Display LACE enabled: %s\n",
 		       YESNO(panel_bool(lfp_block->lace_enabled_status, i)));
@@ -1681,7 +1728,7 @@ static void dump_lfp_power(struct context *context,
 		if (context->bdb->version < 233)
 			continue;
 
-		printf("\t\tVRR feature: %s\n",
+		printf("\t\tVariable Refresh Rate (VRR): %s\n",
 		       YESNO(panel_bool(lfp_block->vrr_feature_enabled, i)));
 
 		if (context->bdb->version < 247)
-- 
2.35.1

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

* [igt-dev] [PATCH i-g-t 12/14] tools/intel_vbt_decode: Decode AUX CH
  2022-07-15 20:25 [igt-dev] [PATCH i-g-t 00/14] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
                   ` (10 preceding siblings ...)
  2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 11/14] tools/intel_vbt_decode: Clean up driver features block decoding Ville Syrjala
@ 2022-07-15 20:25 ` Ville Syrjala
  2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 13/14] tools/intel_vbt_decode: Adjust DVO port printing Ville Syrjala
                   ` (3 subsequent siblings)
  15 siblings, 0 replies; 19+ messages in thread
From: Ville Syrjala @ 2022-07-15 20:25 UTC (permalink / raw)
  To: igt-dev

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

Decode the AUX CH to a human readable name.

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

diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index 90ae7c667f16..10db394b3748 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -777,6 +777,29 @@ static const char *dvo_port(uint8_t type)
 		return "unknown";
 }
 
+static const char *aux_ch_names[] = {
+	[0] = "none",
+	[DP_AUX_A >> 4] = "AUX-A",
+	[DP_AUX_B >> 4] = "AUX-B",
+	[DP_AUX_C >> 4] = "AUX-C",
+	[DP_AUX_D >> 4] = "AUX-D",
+	[DP_AUX_E >> 4] = "AUX-E",
+	[DP_AUX_F >> 4] = "AUX-F",
+	[DP_AUX_G >> 4] = "AUX-G",
+	[DP_AUX_H >> 4] = "AUX-H",
+	[DP_AUX_I >> 4] = "AUX-I",
+};
+
+static const char *aux_ch(uint8_t aux_ch)
+{
+	aux_ch >>= 4;
+
+	if (aux_ch < ARRAY_SIZE(aux_ch_names) && aux_ch_names[aux_ch])
+		return aux_ch_names[aux_ch];
+	else
+		return "unknown";
+}
+
 static const char *mipi_bridge_type(uint8_t type)
 {
 	switch (type) {
@@ -973,7 +996,8 @@ static void dump_child_device(struct context *context,
 		printf("\t\tHDMI compatible? %s\n", YESNO(child->hdmi_support));
 		printf("\t\tDP compatible? %s\n", YESNO(child->dp_support));
 		printf("\t\tTMDS compatible? %s\n", YESNO(child->tmds_support));
-		printf("\t\tAux channel: 0x%02x\n", child->aux_channel);
+		printf("\t\tAux channel: %s (0x%02x)\n",
+		       aux_ch(child->aux_channel), child->aux_channel);
 		printf("\t\tDongle detect: 0x%02x\n", child->dongle_detect);
 	}
 
-- 
2.35.1

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

* [igt-dev] [PATCH i-g-t 13/14] tools/intel_vbt_decode: Adjust DVO port printing
  2022-07-15 20:25 [igt-dev] [PATCH i-g-t 00/14] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
                   ` (11 preceding siblings ...)
  2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 12/14] tools/intel_vbt_decode: Decode AUX CH Ville Syrjala
@ 2022-07-15 20:25 ` Ville Syrjala
  2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 14/14] tools/intel_vbt_decode: Dump the compression structure index as decimal Ville Syrjala
                   ` (2 subsequent siblings)
  15 siblings, 0 replies; 19+ messages in thread
From: Ville Syrjala @ 2022-07-15 20:25 UTC (permalink / raw)
  To: igt-dev

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

Dump the DVO port using the more standard form:
"DVO Port: <decoded name> (<raw value>)".

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

diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index 10db394b3748..de515aa6fd25 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -971,7 +971,8 @@ static void dump_child_device(struct context *context,
 	}
 
 	printf("\t\tAIM offset: %d\n", child->addin_offset);
-	printf("\t\tDVO Port: 0x%02x (%s)\n", child->dvo_port, dvo_port(child->dvo_port));
+	printf("\t\tDVO Port: %s (0x%02x)\n",
+	       dvo_port(child->dvo_port), child->dvo_port);
 
 	printf("\t\tAIM I2C pin: 0x%02x\n", child->i2c_pin);
 	printf("\t\tAIM Slave address: 0x%02x\n", child->slave_addr);
-- 
2.35.1

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

* [igt-dev] [PATCH i-g-t 14/14] tools/intel_vbt_decode: Dump the compression structure index as decimal
  2022-07-15 20:25 [igt-dev] [PATCH i-g-t 00/14] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
                   ` (12 preceding siblings ...)
  2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 13/14] tools/intel_vbt_decode: Adjust DVO port printing Ville Syrjala
@ 2022-07-15 20:25 ` Ville Syrjala
  2022-07-16 17:08 ` [igt-dev] ✓ Fi.CI.BAT: success for tools/intel_vbt_decode: Improve VBT decoder Patchwork
  2022-07-16 19:57 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  15 siblings, 0 replies; 19+ messages in thread
From: Ville Syrjala @ 2022-07-15 20:25 UTC (permalink / raw)
  To: igt-dev

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

The compression structure index is just that, and index. So just
dump it as a decimal number (and drop the mispaced parenthesis).

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

diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index de515aa6fd25..8d88cdfa283c 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -959,7 +959,7 @@ static void dump_child_device(struct context *context,
 		printf("\t\tCompression enable: %s\n", YESNO(child->compression_enable));
 		printf("\t\tCompression method CPS: %s\n", YESNO(child->compression_method_cps));
 		printf("\t\tDual pipe ganged eDP: %s\n", YESNO(child->ganged_edp));
-		printf("\t\tCompression structure index: 0x%02x)\n", child->compression_structure_index);
+		printf("\t\tCompression structure index: %d\n", child->compression_structure_index);
 
 		if (context->bdb->version >= 237) {
 			printf("\t\tHDMI Max FRL rate valid: %s\n",
-- 
2.35.1

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

* [igt-dev] ✓ Fi.CI.BAT: success for tools/intel_vbt_decode: Improve VBT decoder
  2022-07-15 20:25 [igt-dev] [PATCH i-g-t 00/14] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
                   ` (13 preceding siblings ...)
  2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 14/14] tools/intel_vbt_decode: Dump the compression structure index as decimal Ville Syrjala
@ 2022-07-16 17:08 ` Patchwork
  2022-07-16 19:57 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  15 siblings, 0 replies; 19+ messages in thread
From: Patchwork @ 2022-07-16 17:08 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 8819 bytes --]

== Series Details ==

Series: tools/intel_vbt_decode: Improve VBT decoder
URL   : https://patchwork.freedesktop.org/series/106398/
State : success

== Summary ==

CI Bug Log - changes from IGT_6586 -> IGTPW_7529
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/index.html

Participating hosts (41 -> 42)
------------------------------

  Additional (3): bat-dg2-8 fi-bxt-dsi fi-icl-u2 
  Missing    (2): bat-rpls-1 fi-cfl-guc 

Known issues
------------

  Here are the changes found in IGTPW_7529 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_huc_copy@huc-copy:
    - fi-icl-u2:          NOTRUN -> [SKIP][1] ([i915#2190])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/fi-icl-u2/igt@gem_huc_copy@huc-copy.html
    - fi-bxt-dsi:         NOTRUN -> [SKIP][2] ([fdo#109271] / [i915#2190])
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/fi-bxt-dsi/igt@gem_huc_copy@huc-copy.html

  * igt@gem_lmem_swapping@parallel-random-engines:
    - fi-bxt-dsi:         NOTRUN -> [SKIP][3] ([fdo#109271] / [i915#4613]) +3 similar issues
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/fi-bxt-dsi/igt@gem_lmem_swapping@parallel-random-engines.html

  * igt@gem_lmem_swapping@random-engines:
    - fi-icl-u2:          NOTRUN -> [SKIP][4] ([i915#4613]) +3 similar issues
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/fi-icl-u2/igt@gem_lmem_swapping@random-engines.html

  * igt@gem_tiled_blits@basic:
    - fi-bxt-dsi:         NOTRUN -> [SKIP][5] ([fdo#109271]) +12 similar issues
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/fi-bxt-dsi/igt@gem_tiled_blits@basic.html

  * igt@i915_selftest@live@requests:
    - fi-blb-e6850:       [PASS][6] -> [DMESG-FAIL][7] ([i915#4528])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/fi-blb-e6850/igt@i915_selftest@live@requests.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/fi-blb-e6850/igt@i915_selftest@live@requests.html

  * igt@i915_suspend@basic-s3-without-i915:
    - fi-icl-u2:          NOTRUN -> [SKIP][8] ([i915#5903])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/fi-icl-u2/igt@i915_suspend@basic-s3-without-i915.html

  * igt@kms_chamelium@common-hpd-after-suspend:
    - fi-hsw-g3258:       NOTRUN -> [SKIP][9] ([fdo#109271] / [fdo#111827])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/fi-hsw-g3258/igt@kms_chamelium@common-hpd-after-suspend.html
    - fi-pnv-d510:        NOTRUN -> [SKIP][10] ([fdo#109271])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/fi-pnv-d510/igt@kms_chamelium@common-hpd-after-suspend.html
    - fi-bdw-5557u:       NOTRUN -> [SKIP][11] ([fdo#109271] / [fdo#111827])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/fi-bdw-5557u/igt@kms_chamelium@common-hpd-after-suspend.html

  * igt@kms_chamelium@hdmi-edid-read:
    - fi-bxt-dsi:         NOTRUN -> [SKIP][12] ([fdo#109271] / [fdo#111827]) +8 similar issues
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/fi-bxt-dsi/igt@kms_chamelium@hdmi-edid-read.html

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-icl-u2:          NOTRUN -> [SKIP][13] ([fdo#111827]) +8 similar issues
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/fi-icl-u2/igt@kms_chamelium@hdmi-hpd-fast.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor:
    - fi-icl-u2:          NOTRUN -> [SKIP][14] ([i915#4103])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/fi-icl-u2/igt@kms_cursor_legacy@basic-busy-flip-before-cursor.html

  * igt@kms_force_connector_basic@force-connector-state:
    - fi-icl-u2:          NOTRUN -> [WARN][15] ([i915#6008])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/fi-icl-u2/igt@kms_force_connector_basic@force-connector-state.html

  * igt@kms_force_connector_basic@force-load-detect:
    - fi-icl-u2:          NOTRUN -> [SKIP][16] ([fdo#109285])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/fi-icl-u2/igt@kms_force_connector_basic@force-load-detect.html

  * igt@kms_setmode@basic-clone-single-crtc:
    - fi-icl-u2:          NOTRUN -> [SKIP][17] ([i915#3555])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/fi-icl-u2/igt@kms_setmode@basic-clone-single-crtc.html

  * igt@prime_vgem@basic-userptr:
    - fi-icl-u2:          NOTRUN -> [SKIP][18] ([fdo#109295] / [i915#3301])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/fi-icl-u2/igt@prime_vgem@basic-userptr.html

  
#### Possible fixes ####

  * igt@fbdev@read:
    - {bat-rpls-2}:       [SKIP][19] ([i915#2582]) -> [PASS][20] +4 similar issues
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/bat-rpls-2/igt@fbdev@read.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/bat-rpls-2/igt@fbdev@read.html

  * igt@i915_selftest@live@hangcheck:
    - fi-hsw-g3258:       [INCOMPLETE][21] ([i915#4785]) -> [PASS][22]
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/fi-hsw-g3258/igt@i915_selftest@live@hangcheck.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/fi-hsw-g3258/igt@i915_selftest@live@hangcheck.html

  * igt@i915_selftest@live@requests:
    - fi-pnv-d510:        [DMESG-FAIL][23] ([i915#4528]) -> [PASS][24]
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/fi-pnv-d510/igt@i915_selftest@live@requests.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/fi-pnv-d510/igt@i915_selftest@live@requests.html

  * igt@i915_suspend@basic-s3-without-i915:
    - fi-bdw-5557u:       [INCOMPLETE][25] ([i915#146]) -> [PASS][26]
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/fi-bdw-5557u/igt@i915_suspend@basic-s3-without-i915.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/fi-bdw-5557u/igt@i915_suspend@basic-s3-without-i915.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1155]: https://gitlab.freedesktop.org/drm/intel/issues/1155
  [i915#146]: https://gitlab.freedesktop.org/drm/intel/issues/146
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
  [i915#2867]: https://gitlab.freedesktop.org/drm/intel/issues/2867
  [i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291
  [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3595]: https://gitlab.freedesktop.org/drm/intel/issues/3595
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
  [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
  [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
  [i915#4215]: https://gitlab.freedesktop.org/drm/intel/issues/4215
  [i915#4528]: https://gitlab.freedesktop.org/drm/intel/issues/4528
  [i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4785]: https://gitlab.freedesktop.org/drm/intel/issues/4785
  [i915#4873]: https://gitlab.freedesktop.org/drm/intel/issues/4873
  [i915#5174]: https://gitlab.freedesktop.org/drm/intel/issues/5174
  [i915#5190]: https://gitlab.freedesktop.org/drm/intel/issues/5190
  [i915#5274]: https://gitlab.freedesktop.org/drm/intel/issues/5274
  [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
  [i915#5763]: https://gitlab.freedesktop.org/drm/intel/issues/5763
  [i915#5903]: https://gitlab.freedesktop.org/drm/intel/issues/5903
  [i915#6008]: https://gitlab.freedesktop.org/drm/intel/issues/6008


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_6586 -> IGTPW_7529

  CI-20190529: 20190529
  CI_DRM_11900: 5218ea24682b8edb1d629323dce5c88a44e225b0 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_7529: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/index.html
  IGT_6586: 0e5931f66eb283ba404b07394840b8e0b0c5e621 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/index.html

[-- Attachment #2: Type: text/html, Size: 9501 bytes --]

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

* [igt-dev] ✓ Fi.CI.IGT: success for tools/intel_vbt_decode: Improve VBT decoder
  2022-07-15 20:25 [igt-dev] [PATCH i-g-t 00/14] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
                   ` (14 preceding siblings ...)
  2022-07-16 17:08 ` [igt-dev] ✓ Fi.CI.BAT: success for tools/intel_vbt_decode: Improve VBT decoder Patchwork
@ 2022-07-16 19:57 ` Patchwork
  15 siblings, 0 replies; 19+ messages in thread
From: Patchwork @ 2022-07-16 19:57 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 48011 bytes --]

== Series Details ==

Series: tools/intel_vbt_decode: Improve VBT decoder
URL   : https://patchwork.freedesktop.org/series/106398/
State : success

== Summary ==

CI Bug Log - changes from IGT_6586_full -> IGTPW_7529_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/index.html

Participating hosts (10 -> 9)
------------------------------

  Missing    (1): shard-dg1 

Known issues
------------

  Here are the changes found in IGTPW_7529_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_ctx_persistence@engines-mixed:
    - shard-snb:          NOTRUN -> [SKIP][1] ([fdo#109271] / [i915#1099])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-snb5/igt@gem_ctx_persistence@engines-mixed.html

  * igt@gem_exec_fair@basic-none-solo:
    - shard-snb:          NOTRUN -> [SKIP][2] ([fdo#109271]) +74 similar issues
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-snb4/igt@gem_exec_fair@basic-none-solo.html

  * igt@gem_exec_fair@basic-none-solo@rcs0:
    - shard-apl:          NOTRUN -> [FAIL][3] ([i915#2842])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-apl1/igt@gem_exec_fair@basic-none-solo@rcs0.html
    - shard-tglb:         NOTRUN -> [FAIL][4] ([i915#2842])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-tglb5/igt@gem_exec_fair@basic-none-solo@rcs0.html
    - shard-glk:          NOTRUN -> [FAIL][5] ([i915#2842])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-glk7/igt@gem_exec_fair@basic-none-solo@rcs0.html
    - shard-iclb:         NOTRUN -> [FAIL][6] ([i915#2842])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb4/igt@gem_exec_fair@basic-none-solo@rcs0.html
    - shard-kbl:          NOTRUN -> [FAIL][7] ([i915#2842])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-kbl4/igt@gem_exec_fair@basic-none-solo@rcs0.html

  * igt@gem_exec_fair@basic-none@rcs0:
    - shard-kbl:          [PASS][8] -> [FAIL][9] ([i915#2842]) +1 similar issue
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-kbl6/igt@gem_exec_fair@basic-none@rcs0.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-kbl1/igt@gem_exec_fair@basic-none@rcs0.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
    - shard-glk:          [PASS][10] -> [FAIL][11] ([i915#2842])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-glk9/igt@gem_exec_fair@basic-pace-share@rcs0.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-glk8/igt@gem_exec_fair@basic-pace-share@rcs0.html
    - shard-tglb:         [PASS][12] -> [FAIL][13] ([i915#2842])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-tglb7/igt@gem_exec_fair@basic-pace-share@rcs0.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-tglb7/igt@gem_exec_fair@basic-pace-share@rcs0.html

  * igt@gem_exec_fair@basic-pace@vecs0:
    - shard-iclb:         [PASS][14] -> [FAIL][15] ([i915#2842]) +1 similar issue
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-iclb4/igt@gem_exec_fair@basic-pace@vecs0.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb4/igt@gem_exec_fair@basic-pace@vecs0.html

  * igt@gem_huc_copy@huc-copy:
    - shard-tglb:         [PASS][16] -> [SKIP][17] ([i915#2190])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-tglb1/igt@gem_huc_copy@huc-copy.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-tglb7/igt@gem_huc_copy@huc-copy.html

  * igt@gem_lmem_swapping@heavy-verify-multi:
    - shard-apl:          NOTRUN -> [SKIP][18] ([fdo#109271] / [i915#4613]) +1 similar issue
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-apl6/igt@gem_lmem_swapping@heavy-verify-multi.html
    - shard-tglb:         NOTRUN -> [SKIP][19] ([i915#4613])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-tglb6/igt@gem_lmem_swapping@heavy-verify-multi.html
    - shard-glk:          NOTRUN -> [SKIP][20] ([fdo#109271] / [i915#4613])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-glk9/igt@gem_lmem_swapping@heavy-verify-multi.html
    - shard-iclb:         NOTRUN -> [SKIP][21] ([i915#4613])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb1/igt@gem_lmem_swapping@heavy-verify-multi.html
    - shard-kbl:          NOTRUN -> [SKIP][22] ([fdo#109271] / [i915#4613]) +1 similar issue
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-kbl6/igt@gem_lmem_swapping@heavy-verify-multi.html

  * igt@gem_ppgtt@blt-vs-render-ctx0:
    - shard-snb:          [PASS][23] -> [DMESG-FAIL][24] ([i915#4998])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-snb4/igt@gem_ppgtt@blt-vs-render-ctx0.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-snb7/igt@gem_ppgtt@blt-vs-render-ctx0.html

  * igt@gem_pxp@fail-invalid-protected-context:
    - shard-tglb:         NOTRUN -> [SKIP][25] ([i915#4270])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-tglb3/igt@gem_pxp@fail-invalid-protected-context.html
    - shard-iclb:         NOTRUN -> [SKIP][26] ([i915#4270])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb7/igt@gem_pxp@fail-invalid-protected-context.html

  * igt@gem_render_copy@yf-tiled-mc-ccs-to-vebox-y-tiled:
    - shard-iclb:         NOTRUN -> [SKIP][27] ([i915#768])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb5/igt@gem_render_copy@yf-tiled-mc-ccs-to-vebox-y-tiled.html

  * igt@gem_softpin@evict-single-offset:
    - shard-apl:          NOTRUN -> [FAIL][28] ([i915#4171])
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-apl3/igt@gem_softpin@evict-single-offset.html
    - shard-glk:          NOTRUN -> [FAIL][29] ([i915#4171])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-glk1/igt@gem_softpin@evict-single-offset.html
    - shard-kbl:          NOTRUN -> [FAIL][30] ([i915#4171])
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-kbl6/igt@gem_softpin@evict-single-offset.html

  * igt@gem_spin_batch@engines@bcs0:
    - shard-apl:          [PASS][31] -> [FAIL][32] ([i915#2898])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-apl4/igt@gem_spin_batch@engines@bcs0.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-apl8/igt@gem_spin_batch@engines@bcs0.html

  * igt@i915_pm_dc@dc6-psr:
    - shard-iclb:         [PASS][33] -> [FAIL][34] ([i915#454])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-iclb6/igt@i915_pm_dc@dc6-psr.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb6/igt@i915_pm_dc@dc6-psr.html

  * igt@i915_query@query-topology-unsupported:
    - shard-tglb:         NOTRUN -> [SKIP][35] ([fdo#109302])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-tglb7/igt@i915_query@query-topology-unsupported.html
    - shard-iclb:         NOTRUN -> [SKIP][36] ([fdo#109302])
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb8/igt@i915_query@query-topology-unsupported.html

  * igt@kms_big_fb@4-tiled-32bpp-rotate-90:
    - shard-apl:          NOTRUN -> [SKIP][37] ([fdo#109271]) +102 similar issues
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-apl2/igt@kms_big_fb@4-tiled-32bpp-rotate-90.html
    - shard-tglb:         NOTRUN -> [SKIP][38] ([i915#5286]) +1 similar issue
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-tglb8/igt@kms_big_fb@4-tiled-32bpp-rotate-90.html

  * igt@kms_big_fb@4-tiled-64bpp-rotate-180:
    - shard-iclb:         NOTRUN -> [SKIP][39] ([i915#5286]) +1 similar issue
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb1/igt@kms_big_fb@4-tiled-64bpp-rotate-180.html

  * igt@kms_big_fb@yf-tiled-32bpp-rotate-270:
    - shard-tglb:         NOTRUN -> [SKIP][40] ([fdo#111615])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-tglb7/igt@kms_big_fb@yf-tiled-32bpp-rotate-270.html

  * igt@kms_ccs@pipe-a-bad-aux-stride-yf_tiled_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][41] ([fdo#111615] / [i915#3689]) +1 similar issue
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-tglb5/igt@kms_ccs@pipe-a-bad-aux-stride-yf_tiled_ccs.html

  * igt@kms_ccs@pipe-a-crc-primary-basic-4_tiled_dg2_rc_ccs_cc:
    - shard-tglb:         NOTRUN -> [SKIP][42] ([i915#6095]) +1 similar issue
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-tglb6/igt@kms_ccs@pipe-a-crc-primary-basic-4_tiled_dg2_rc_ccs_cc.html

  * igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_gen12_rc_ccs_cc:
    - shard-glk:          NOTRUN -> [SKIP][43] ([fdo#109271] / [i915#3886])
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-glk2/igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_gen12_rc_ccs_cc.html
    - shard-iclb:         NOTRUN -> [SKIP][44] ([fdo#109278] / [i915#3886])
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb3/igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_ccs@pipe-c-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc:
    - shard-kbl:          NOTRUN -> [SKIP][45] ([fdo#109271] / [i915#3886]) +4 similar issues
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-kbl7/igt@kms_ccs@pipe-c-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc.html
    - shard-apl:          NOTRUN -> [SKIP][46] ([fdo#109271] / [i915#3886]) +2 similar issues
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-apl1/igt@kms_ccs@pipe-c-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_ccs@pipe-c-crc-primary-basic-4_tiled_dg2_mc_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][47] ([i915#3689] / [i915#6095])
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-tglb5/igt@kms_ccs@pipe-c-crc-primary-basic-4_tiled_dg2_mc_ccs.html

  * igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][48] ([i915#3689]) +2 similar issues
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-tglb6/igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_ccs.html

  * igt@kms_ccs@pipe-d-bad-aux-stride-y_tiled_gen12_mc_ccs:
    - shard-iclb:         NOTRUN -> [SKIP][49] ([fdo#109278]) +8 similar issues
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb4/igt@kms_ccs@pipe-d-bad-aux-stride-y_tiled_gen12_mc_ccs.html

  * igt@kms_chamelium@vga-hpd:
    - shard-apl:          NOTRUN -> [SKIP][50] ([fdo#109271] / [fdo#111827]) +4 similar issues
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-apl4/igt@kms_chamelium@vga-hpd.html

  * igt@kms_color_chamelium@pipe-a-ctm-max:
    - shard-kbl:          NOTRUN -> [SKIP][51] ([fdo#109271] / [fdo#111827]) +6 similar issues
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-kbl4/igt@kms_color_chamelium@pipe-a-ctm-max.html
    - shard-snb:          NOTRUN -> [SKIP][52] ([fdo#109271] / [fdo#111827]) +1 similar issue
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-snb6/igt@kms_color_chamelium@pipe-a-ctm-max.html
    - shard-tglb:         NOTRUN -> [SKIP][53] ([fdo#109284] / [fdo#111827]) +1 similar issue
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-tglb2/igt@kms_color_chamelium@pipe-a-ctm-max.html
    - shard-glk:          NOTRUN -> [SKIP][54] ([fdo#109271] / [fdo#111827]) +1 similar issue
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-glk8/igt@kms_color_chamelium@pipe-a-ctm-max.html

  * igt@kms_color_chamelium@pipe-c-ctm-limited-range:
    - shard-iclb:         NOTRUN -> [SKIP][55] ([fdo#109284] / [fdo#111827]) +1 similar issue
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb4/igt@kms_color_chamelium@pipe-c-ctm-limited-range.html

  * igt@kms_content_protection@legacy:
    - shard-apl:          NOTRUN -> [TIMEOUT][56] ([i915#1319])
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-apl2/igt@kms_content_protection@legacy.html
    - shard-tglb:         NOTRUN -> [SKIP][57] ([i915#1063])
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-tglb3/igt@kms_content_protection@legacy.html
    - shard-iclb:         NOTRUN -> [SKIP][58] ([fdo#109300] / [fdo#111066])
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb6/igt@kms_content_protection@legacy.html

  * igt@kms_cursor_crc@cursor-suspend@pipe-a-dp-1:
    - shard-kbl:          [PASS][59] -> [DMESG-WARN][60] ([i915#180]) +7 similar issues
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-kbl6/igt@kms_cursor_crc@cursor-suspend@pipe-a-dp-1.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-kbl4/igt@kms_cursor_crc@cursor-suspend@pipe-a-dp-1.html

  * igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size:
    - shard-glk:          [PASS][61] -> [FAIL][62] ([i915#2346])
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-glk3/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-glk5/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html

  * igt@kms_draw_crc@draw-method-xrgb8888-mmap-wc-4tiled:
    - shard-tglb:         NOTRUN -> [SKIP][63] ([i915#5287]) +1 similar issue
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-tglb2/igt@kms_draw_crc@draw-method-xrgb8888-mmap-wc-4tiled.html
    - shard-iclb:         NOTRUN -> [SKIP][64] ([i915#5287]) +1 similar issue
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb6/igt@kms_draw_crc@draw-method-xrgb8888-mmap-wc-4tiled.html

  * igt@kms_flip@2x-flip-vs-fences-interruptible:
    - shard-tglb:         NOTRUN -> [SKIP][65] ([fdo#109274] / [fdo#111825] / [i915#3637]) +1 similar issue
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-tglb3/igt@kms_flip@2x-flip-vs-fences-interruptible.html
    - shard-iclb:         NOTRUN -> [SKIP][66] ([fdo#109274]) +1 similar issue
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb7/igt@kms_flip@2x-flip-vs-fences-interruptible.html

  * igt@kms_flip@flip-vs-suspend@c-dp1:
    - shard-apl:          [PASS][67] -> [DMESG-WARN][68] ([i915#180]) +3 similar issues
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-apl2/igt@kms_flip@flip-vs-suspend@c-dp1.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-apl1/igt@kms_flip@flip-vs-suspend@c-dp1.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling@pipe-a-valid-mode:
    - shard-iclb:         NOTRUN -> [SKIP][69] ([i915#2672]) +7 similar issues
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb1/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling@pipe-a-valid-mode:
    - shard-tglb:         NOTRUN -> [SKIP][70] ([i915#2672])
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-tglb8/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling@pipe-a-default-mode:
    - shard-iclb:         NOTRUN -> [SKIP][71] ([i915#3555])
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb2/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling@pipe-a-default-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-valid-mode:
    - shard-iclb:         NOTRUN -> [SKIP][72] ([i915#2672] / [i915#3555])
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb5/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-valid-mode.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-pwrite:
    - shard-tglb:         NOTRUN -> [SKIP][73] ([fdo#109280] / [fdo#111825]) +10 similar issues
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-tglb8/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@fbcpsr-tiling-linear:
    - shard-tglb:         NOTRUN -> [FAIL][74] ([i915#160]) +2 similar issues
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-tglb1/igt@kms_frontbuffer_tracking@fbcpsr-tiling-linear.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-mmap-cpu:
    - shard-glk:          NOTRUN -> [SKIP][75] ([fdo#109271]) +40 similar issues
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-glk5/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-move:
    - shard-iclb:         NOTRUN -> [SKIP][76] ([fdo#109280]) +10 similar issues
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb1/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-move.html

  * igt@kms_hdr@bpc-switch@pipe-a-dp-1:
    - shard-kbl:          NOTRUN -> [FAIL][77] ([i915#1188])
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-kbl4/igt@kms_hdr@bpc-switch@pipe-a-dp-1.html

  * igt@kms_plane_alpha_blend@pipe-a-alpha-opaque-fb:
    - shard-kbl:          NOTRUN -> [FAIL][78] ([fdo#108145] / [i915#265])
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-kbl6/igt@kms_plane_alpha_blend@pipe-a-alpha-opaque-fb.html
    - shard-apl:          NOTRUN -> [FAIL][79] ([fdo#108145] / [i915#265])
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-apl2/igt@kms_plane_alpha_blend@pipe-a-alpha-opaque-fb.html

  * igt@kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-5@pipe-a-edp-1:
    - shard-iclb:         [PASS][80] -> [SKIP][81] ([i915#5176]) +2 similar issues
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-iclb7/igt@kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-5@pipe-a-edp-1.html
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb2/igt@kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-5@pipe-a-edp-1.html

  * igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area:
    - shard-apl:          NOTRUN -> [SKIP][82] ([fdo#109271] / [i915#658])
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-apl2/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area.html
    - shard-kbl:          NOTRUN -> [SKIP][83] ([fdo#109271] / [i915#658])
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-kbl7/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area.html

  * igt@kms_psr@psr2_sprite_mmap_gtt:
    - shard-iclb:         NOTRUN -> [SKIP][84] ([fdo#109441])
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb7/igt@kms_psr@psr2_sprite_mmap_gtt.html
    - shard-tglb:         NOTRUN -> [FAIL][85] ([i915#132] / [i915#3467])
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-tglb5/igt@kms_psr@psr2_sprite_mmap_gtt.html

  * igt@kms_psr@psr2_suspend:
    - shard-iclb:         [PASS][86] -> [SKIP][87] ([fdo#109441]) +2 similar issues
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-iclb2/igt@kms_psr@psr2_suspend.html
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb7/igt@kms_psr@psr2_suspend.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180:
    - shard-tglb:         NOTRUN -> [SKIP][88] ([fdo#111615] / [i915#5289])
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-tglb5/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html

  * igt@kms_writeback@writeback-check-output:
    - shard-apl:          NOTRUN -> [SKIP][89] ([fdo#109271] / [i915#2437])
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-apl3/igt@kms_writeback@writeback-check-output.html
    - shard-tglb:         NOTRUN -> [SKIP][90] ([i915#2437])
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-tglb7/igt@kms_writeback@writeback-check-output.html
    - shard-glk:          NOTRUN -> [SKIP][91] ([fdo#109271] / [i915#2437])
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-glk1/igt@kms_writeback@writeback-check-output.html
    - shard-iclb:         NOTRUN -> [SKIP][92] ([i915#2437])
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb2/igt@kms_writeback@writeback-check-output.html
    - shard-kbl:          NOTRUN -> [SKIP][93] ([fdo#109271] / [i915#2437])
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-kbl6/igt@kms_writeback@writeback-check-output.html

  * igt@perf@gen12-mi-rpc:
    - shard-iclb:         NOTRUN -> [SKIP][94] ([fdo#109289])
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb1/igt@perf@gen12-mi-rpc.html

  * igt@prime_nv_pcopy@test2:
    - shard-kbl:          NOTRUN -> [SKIP][95] ([fdo#109271]) +144 similar issues
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-kbl4/igt@prime_nv_pcopy@test2.html

  * igt@prime_nv_test@nv_write_i915_cpu_mmap_read:
    - shard-tglb:         NOTRUN -> [SKIP][96] ([fdo#109291])
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-tglb2/igt@prime_nv_test@nv_write_i915_cpu_mmap_read.html
    - shard-iclb:         NOTRUN -> [SKIP][97] ([fdo#109291])
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb6/igt@prime_nv_test@nv_write_i915_cpu_mmap_read.html

  * igt@sysfs_clients@split-10:
    - shard-iclb:         NOTRUN -> [SKIP][98] ([i915#2994])
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb5/igt@sysfs_clients@split-10.html
    - shard-kbl:          NOTRUN -> [SKIP][99] ([fdo#109271] / [i915#2994]) +1 similar issue
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-kbl6/igt@sysfs_clients@split-10.html
    - shard-apl:          NOTRUN -> [SKIP][100] ([fdo#109271] / [i915#2994])
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-apl4/igt@sysfs_clients@split-10.html
    - shard-tglb:         NOTRUN -> [SKIP][101] ([i915#2994])
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-tglb8/igt@sysfs_clients@split-10.html
    - shard-glk:          NOTRUN -> [SKIP][102] ([fdo#109271] / [i915#2994])
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-glk9/igt@sysfs_clients@split-10.html

  * igt@tools_test@sysfs_l3_parity:
    - shard-tglb:         NOTRUN -> [SKIP][103] ([fdo#109307])
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-tglb3/igt@tools_test@sysfs_l3_parity.html
    - shard-iclb:         NOTRUN -> [SKIP][104] ([fdo#109307])
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb3/igt@tools_test@sysfs_l3_parity.html

  
#### Possible fixes ####

  * igt@fbdev@write:
    - {shard-rkl}:        [SKIP][105] ([i915#2582]) -> [PASS][106]
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-rkl-2/igt@fbdev@write.html
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-rkl-2/igt@fbdev@write.html

  * igt@gem_ctx_exec@basic-nohangcheck:
    - shard-tglb:         [FAIL][107] ([i915#6268]) -> [PASS][108]
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-tglb5/igt@gem_ctx_exec@basic-nohangcheck.html
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-tglb6/igt@gem_ctx_exec@basic-nohangcheck.html

  * igt@gem_ctx_persistence@legacy-engines-hang@blt:
    - {shard-rkl}:        [SKIP][109] ([i915#6252]) -> [PASS][110]
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-rkl-5/igt@gem_ctx_persistence@legacy-engines-hang@blt.html
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-rkl-2/igt@gem_ctx_persistence@legacy-engines-hang@blt.html

  * igt@gem_eio@in-flight-immediate:
    - shard-tglb:         [TIMEOUT][111] ([i915#3063]) -> [PASS][112]
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-tglb8/igt@gem_eio@in-flight-immediate.html
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-tglb1/igt@gem_eio@in-flight-immediate.html

  * igt@gem_exec_fair@basic-none-share@rcs0:
    - {shard-tglu}:       [FAIL][113] ([i915#2842]) -> [PASS][114]
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-tglu-4/igt@gem_exec_fair@basic-none-share@rcs0.html
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-tglu-2/igt@gem_exec_fair@basic-none-share@rcs0.html
    - shard-tglb:         [FAIL][115] ([i915#2842]) -> [PASS][116]
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-tglb3/igt@gem_exec_fair@basic-none-share@rcs0.html
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-tglb5/igt@gem_exec_fair@basic-none-share@rcs0.html
    - shard-glk:          [FAIL][117] ([i915#2842]) -> [PASS][118]
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-glk1/igt@gem_exec_fair@basic-none-share@rcs0.html
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-glk5/igt@gem_exec_fair@basic-none-share@rcs0.html

  * igt@gem_exec_fair@basic-pace-solo@rcs0:
    - shard-apl:          [FAIL][119] ([i915#2842]) -> [PASS][120]
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-apl8/igt@gem_exec_fair@basic-pace-solo@rcs0.html
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-apl3/igt@gem_exec_fair@basic-pace-solo@rcs0.html

  * igt@gem_exec_fair@basic-pace@rcs0:
    - {shard-rkl}:        [FAIL][121] ([i915#2842]) -> [PASS][122] +1 similar issue
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-rkl-1/igt@gem_exec_fair@basic-pace@rcs0.html
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-rkl-5/igt@gem_exec_fair@basic-pace@rcs0.html

  * igt@gem_exec_fair@basic-pace@vecs0:
    - shard-kbl:          [FAIL][123] ([i915#2842]) -> [PASS][124]
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-kbl6/igt@gem_exec_fair@basic-pace@vecs0.html
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-kbl4/igt@gem_exec_fair@basic-pace@vecs0.html

  * igt@gem_exec_fair@basic-throttle@rcs0:
    - shard-iclb:         [FAIL][125] ([i915#2849]) -> [PASS][126]
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-iclb7/igt@gem_exec_fair@basic-throttle@rcs0.html
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb1/igt@gem_exec_fair@basic-throttle@rcs0.html

  * igt@gem_exec_flush@basic-batch-kernel-default-cmd:
    - {shard-rkl}:        [SKIP][127] ([fdo#109313]) -> [PASS][128]
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-rkl-2/igt@gem_exec_flush@basic-batch-kernel-default-cmd.html
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-rkl-5/igt@gem_exec_flush@basic-batch-kernel-default-cmd.html

  * igt@gem_exec_nop@basic-sequential:
    - shard-glk:          [DMESG-WARN][129] ([i915#118]) -> [PASS][130]
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-glk2/igt@gem_exec_nop@basic-sequential.html
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-glk1/igt@gem_exec_nop@basic-sequential.html

  * igt@gem_exec_reloc@basic-write-read-active:
    - {shard-rkl}:        [SKIP][131] ([i915#3281]) -> [PASS][132] +8 similar issues
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-rkl-6/igt@gem_exec_reloc@basic-write-read-active.html
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-rkl-5/igt@gem_exec_reloc@basic-write-read-active.html

  * igt@gem_readwrite@write-bad-handle:
    - {shard-rkl}:        [SKIP][133] ([i915#3282]) -> [PASS][134] +3 similar issues
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-rkl-1/igt@gem_readwrite@write-bad-handle.html
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-rkl-5/igt@gem_readwrite@write-bad-handle.html

  * igt@gen9_exec_parse@secure-batches:
    - {shard-rkl}:        [SKIP][135] ([i915#2527]) -> [PASS][136] +4 similar issues
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-rkl-1/igt@gen9_exec_parse@secure-batches.html
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-rkl-5/igt@gen9_exec_parse@secure-batches.html

  * igt@i915_pm_dc@dc9-dpms:
    - {shard-rkl}:        [SKIP][137] ([i915#3361]) -> [PASS][138]
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-rkl-5/igt@i915_pm_dc@dc9-dpms.html
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-rkl-4/igt@i915_pm_dc@dc9-dpms.html

  * igt@i915_suspend@fence-restore-tiled2untiled:
    - shard-kbl:          [DMESG-WARN][139] ([i915#180]) -> [PASS][140]
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-kbl4/igt@i915_suspend@fence-restore-tiled2untiled.html
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-kbl6/igt@i915_suspend@fence-restore-tiled2untiled.html

  * igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions:
    - shard-glk:          [FAIL][141] ([i915#2346]) -> [PASS][142]
   [141]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-glk3/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions.html
   [142]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-glk5/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions.html

  * igt@kms_cursor_legacy@flip-vs-cursor@toggle:
    - shard-iclb:         [FAIL][143] ([i915#2346]) -> [PASS][144] +3 similar issues
   [143]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-iclb7/igt@kms_cursor_legacy@flip-vs-cursor@toggle.html
   [144]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb5/igt@kms_cursor_legacy@flip-vs-cursor@toggle.html

  * igt@kms_draw_crc@draw-method-rgb565-mmap-cpu-untiled:
    - shard-glk:          [FAIL][145] ([i915#5160]) -> [PASS][146]
   [145]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-glk3/igt@kms_draw_crc@draw-method-rgb565-mmap-cpu-untiled.html
   [146]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-glk1/igt@kms_draw_crc@draw-method-rgb565-mmap-cpu-untiled.html

  * igt@kms_draw_crc@draw-method-rgb565-render-ytiled:
    - shard-glk:          [DMESG-FAIL][147] ([i915#118] / [i915#1888]) -> [PASS][148] +1 similar issue
   [147]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-glk7/igt@kms_draw_crc@draw-method-rgb565-render-ytiled.html
   [148]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-glk8/igt@kms_draw_crc@draw-method-rgb565-render-ytiled.html

  * igt@kms_flip@flip-vs-suspend@a-dp1:
    - shard-apl:          [DMESG-WARN][149] ([i915#180]) -> [PASS][150] +2 similar issues
   [149]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-apl2/igt@kms_flip@flip-vs-suspend@a-dp1.html
   [150]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-apl1/igt@kms_flip@flip-vs-suspend@a-dp1.html

  * igt@kms_hdr@bpc-switch-dpms@pipe-a-dp-1:
    - shard-kbl:          [FAIL][151] ([i915#1188]) -> [PASS][152]
   [151]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-kbl7/igt@kms_hdr@bpc-switch-dpms@pipe-a-dp-1.html
   [152]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-kbl4/igt@kms_hdr@bpc-switch-dpms@pipe-a-dp-1.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-a-edp-1:
    - shard-iclb:         [SKIP][153] ([i915#5235]) -> [PASS][154] +5 similar issues
   [153]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-iclb2/igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-a-edp-1.html
   [154]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb7/igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-a-edp-1.html

  * igt@kms_psr@psr2_cursor_blt:
    - shard-iclb:         [SKIP][155] ([fdo#109441]) -> [PASS][156] +1 similar issue
   [155]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-iclb4/igt@kms_psr@psr2_cursor_blt.html
   [156]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb2/igt@kms_psr@psr2_cursor_blt.html

  * igt@kms_rotation_crc@multiplane-rotation-cropping-top:
    - shard-glk:          [FAIL][157] ([i915#1888]) -> [PASS][158] +1 similar issue
   [157]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-glk3/igt@kms_rotation_crc@multiplane-rotation-cropping-top.html
   [158]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-glk3/igt@kms_rotation_crc@multiplane-rotation-cropping-top.html

  * igt@perf@polling-parameterized:
    - shard-iclb:         [FAIL][159] ([i915#5639]) -> [PASS][160]
   [159]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-iclb1/igt@perf@polling-parameterized.html
   [160]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb6/igt@perf@polling-parameterized.html

  * igt@prime_vgem@coherency-gtt:
    - {shard-rkl}:        [SKIP][161] ([fdo#109295] / [fdo#111656] / [i915#3708]) -> [PASS][162]
   [161]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-rkl-1/igt@prime_vgem@coherency-gtt.html
   [162]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-rkl-5/igt@prime_vgem@coherency-gtt.html

  * igt@testdisplay:
    - {shard-tglu}:       [DMESG-WARN][163] ([i915#4941]) -> [PASS][164]
   [163]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-tglu-2/igt@testdisplay.html
   [164]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-tglu-1/igt@testdisplay.html

  
#### Warnings ####

  * igt@gem_exec_balancer@parallel-ordering:
    - shard-iclb:         [FAIL][165] ([i915#6117]) -> [SKIP][166] ([i915#4525])
   [165]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-iclb2/igt@gem_exec_balancer@parallel-ordering.html
   [166]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb3/igt@gem_exec_balancer@parallel-ordering.html

  * igt@kms_content_protection@mei_interface:
    - shard-tglb:         [SKIP][167] ([i915#1063]) -> [SKIP][168] ([fdo#109300])
   [167]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-tglb2/igt@kms_content_protection@mei_interface.html
   [168]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-tglb7/igt@kms_content_protection@mei_interface.html
    - shard-iclb:         [SKIP][169] ([fdo#109300] / [fdo#111066]) -> [SKIP][170] ([fdo#109300])
   [169]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-iclb8/igt@kms_content_protection@mei_interface.html
   [170]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb3/igt@kms_content_protection@mei_interface.html

  * igt@kms_hdr@bpc-switch-suspend@pipe-a-dp-1:
    - shard-kbl:          [FAIL][171] ([i915#1188]) -> [DMESG-FAIL][172] ([i915#180])
   [171]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-kbl1/igt@kms_hdr@bpc-switch-suspend@pipe-a-dp-1.html
   [172]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-kbl7/igt@kms_hdr@bpc-switch-suspend@pipe-a-dp-1.html

  * igt@kms_psr2_sf@cursor-plane-move-continuous-exceed-sf:
    - shard-iclb:         [SKIP][173] ([i915#2920]) -> [SKIP][174] ([i915#658])
   [173]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-iclb2/igt@kms_psr2_sf@cursor-plane-move-continuous-exceed-sf.html
   [174]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb4/igt@kms_psr2_sf@cursor-plane-move-continuous-exceed-sf.html

  * igt@kms_psr2_sf@cursor-plane-update-sf:
    - shard-iclb:         [SKIP][175] ([i915#2920]) -> [SKIP][176] ([fdo#111068] / [i915#658])
   [175]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-iclb2/igt@kms_psr2_sf@cursor-plane-update-sf.html
   [176]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb7/igt@kms_psr2_sf@cursor-plane-update-sf.html

  * igt@kms_psr2_sf@overlay-plane-move-continuous-sf:
    - shard-iclb:         [SKIP][177] ([i915#658]) -> [SKIP][178] ([i915#2920])
   [177]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-iclb4/igt@kms_psr2_sf@overlay-plane-move-continuous-sf.html
   [178]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb2/igt@kms_psr2_sf@overlay-plane-move-continuous-sf.html

  * igt@kms_psr2_sf@plane-move-sf-dmg-area:
    - shard-iclb:         [SKIP][179] ([fdo#111068] / [i915#658]) -> [SKIP][180] ([i915#2920])
   [179]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-iclb5/igt@kms_psr2_sf@plane-move-sf-dmg-area.html
   [180]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb2/igt@kms_psr2_sf@plane-move-sf-dmg-area.html

  * igt@kms_psr2_su@page_flip-p010:
    - shard-iclb:         [SKIP][181] ([fdo#109642] / [fdo#111068] / [i915#658]) -> [FAIL][182] ([i915#5939])
   [181]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-iclb3/igt@kms_psr2_su@page_flip-p010.html
   [182]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-iclb2/igt@kms_psr2_su@page_flip-p010.html

  * igt@runner@aborted:
    - shard-apl:          ([FAIL][183], [FAIL][184], [FAIL][185], [FAIL][186]) ([i915#180] / [i915#3002] / [i915#4312] / [i915#5257]) -> ([FAIL][187], [FAIL][188], [FAIL][189], [FAIL][190], [FAIL][191], [FAIL][192]) ([fdo#109271] / [i915#180] / [i915#3002] / [i915#4312] / [i915#5257])
   [183]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-apl1/igt@runner@aborted.html
   [184]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-apl7/igt@runner@aborted.html
   [185]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-apl8/igt@runner@aborted.html
   [186]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6586/shard-apl2/igt@runner@aborted.html
   [187]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-apl8/igt@runner@aborted.html
   [188]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-apl8/igt@runner@aborted.html
   [189]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-apl1/igt@runner@aborted.html
   [190]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-apl3/igt@runner@aborted.html
   [191]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-apl8/igt@runner@aborted.html
   [192]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/shard-apl7/igt@runner@aborted.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
  [fdo#109283]: https://bugs.freedesktop.org/show_bug.cgi?id=109283
  [fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291
  [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
  [fdo#109300]: https://bugs.freedesktop.org/show_bug.cgi?id=109300
  [fdo#109302]: https://bugs.freedesktop.org/show_bug.cgi?id=109302
  [fdo#109307]: https://bugs.freedesktop.org/show_bug.cgi?id=109307
  [fdo#109309]: https://bugs.freedesktop.org/show_bug.cgi?id=109309
  [fdo#109312]: https://bugs.freedesktop.org/show_bug.cgi?id=109312
  [fdo#109313]: https://bugs.freedesktop.org/show_bug.cgi?id=109313
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506
  [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
  [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
  [fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723
  [fdo#111066]: https://bugs.freedesktop.org/show_bug.cgi?id=111066
  [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
  [fdo#111314]: https://bugs.freedesktop.org/show_bug.cgi?id=111314
  [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
  [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
  [fdo#111644]: https://bugs.freedesktop.org/show_bug.cgi?id=111644
  [fdo#111656]: https://bugs.freedesktop.org/show_bug.cgi?id=111656
  [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#1063]: https://gitlab.freedesktop.org/drm/intel/issues/1063
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1099]: https://gitlab.freedesktop.org/drm/intel/issues/1099
  [i915#1155]: https://gitlab.freedesktop.org/drm/intel/issues/1155
  [i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
  [i915#1188]: https://gitlab.freedesktop.org/drm/intel/issues/1188
  [i915#1319]: https://gitlab.freedesktop.org/drm/intel/issues/1319
  [i915#132]: https://gitlab.freedesktop.org/drm/intel/issues/132
  [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
  [i915#160]: https://gitlab.freedesktop.org/drm/intel/issues/160
  [i915#1769]: https://gitlab.freedesktop.org/drm/intel/issues/1769
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
  [i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839
  [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
  [i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849
  [i915#1888]: https://gitlab.freedesktop.org/drm/intel/issues/1888
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
  [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
  [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
  [i915#2530]: https://gitlab.freedesktop.org/drm/intel/issues/2530
  [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
  [i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265
  [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
  [i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681
  [i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705
  [i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280
  [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
  [i915#2846]: https://gitlab.freedesktop.org/drm/intel/issues/2846
  [i915#2849]: https://gitlab.freedesktop.org/drm/intel/issues/2849
  [i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
  [i915#2898]: https://gitlab.freedesktop.org/drm/intel/issues/2898
  [i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920
  [i915#2994]: https://gitlab.freedesktop.org/drm/intel/issues/2994
  [i915#3002]: https://gitlab.freedesktop.org/drm/intel/issues/3002
  [i915#3012]: https://gitlab.freedesktop.org/drm/intel/issues/3012
  [i915#3063]: https://gitlab.freedesktop.org/drm/intel/issues/3063
  [i915#3116]: https://gitlab.freedesktop.org/drm/intel/issues/3116
  [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
  [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
  [i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291
  [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
  [i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299
  [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
  [i915#3323]: https://gitlab.freedesktop.org/drm/intel/issues/3323
  [i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
  [i915#3361]: https://gitlab.freedesktop.org/drm/intel/issues/3361
  [i915#3467]: https://gitlab.freedesktop.org/drm/intel/issues/3467
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3558]: https://gitlab.freedesktop.org/drm/intel/issues/3558
  [i915#3591]: https://gitlab.freedesktop.org/drm/intel/issues/3591
  [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
  [i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
  [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#3734]: https://gitlab.freedesktop.org/drm/intel/issues/3734
  [i915#3742]: https://gitlab.freedesktop.org/drm/intel/issues/3742
  [i915#3828]: https://gitlab.freedesktop.org/drm/intel/issues/3828
  [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
  [i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955
  [i915#3966]: https://gitlab.freedesktop.org/drm/intel/issues/3966
  [i915#4016]: https://gitlab.freedesktop.org/drm/intel/issues/4016
  [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
  [i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4171]: https://gitlab.freedesktop.org/drm/intel/issues/4171
  [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
  [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
  [i915#4369]: https://gitlab.freedesktop.org/drm/intel/issues/4369
  [i915#4387]: https://gitlab.freedesktop.org/drm/intel/issues/4387
  [i915#4462]: https://gitlab.freedesktop.org/drm/intel/issues/4462
  [i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525
  [i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4941]: https://gitlab.freedesktop.org/drm/intel/issues/4941
  [i915#4998]: https://gitlab.freedesktop.org/drm/intel/issues/4998
  [i915#5160]: https://gitlab.freedesktop.org/drm/intel/issues/5160
  [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
  [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
  [i915#5257]: https://gitlab.freedesktop.org/drm/intel/issues/5257
  [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
  [i915#5287]: https://gitlab.freedesktop.org/drm/intel/issues/5287
  [i915#5288]: https://gitlab.freedesktop.org/drm/intel/issues/5288
  [i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
  [i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325
  [i915#5327]: https://gitlab.freedesktop.org/drm/intel/issues/5327
  [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
  [i915#5461]: https://gitlab.freedesktop.org/drm/intel/issues/5461
  [i915#5639]: https://gitlab.freedesktop.org/drm/intel/issues/5639
  [i915#5723]: https://gitlab.freedesktop.org/drm/intel/issues/5723
  [i915#5939]: https://gitlab.freedesktop.org/drm/intel/issues/5939
  [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
  [i915#6117]: https://gitlab.freedesktop.org/drm/intel/issues/6117
  [i915#6227]: https://gitlab.freedesktop.org/drm/intel/issues/6227
  [i915#6247]: https://gitlab.freedesktop.org/drm/intel/issues/6247
  [i915#6248]: https://gitlab.freedesktop.org/drm/intel/issues/6248
  [i915#6251]: https://gitlab.freedesktop.org/drm/intel/issues/6251
  [i915#6252]: https://gitlab.freedesktop.org/drm/intel/issues/6252
  [i915#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268
  [i915#6335]: https://gitlab.freedesktop.org/drm/intel/issues/6335
  [i915#6405]: https://gitlab.freedesktop.org/drm/intel/issues/6405
  [i915#6412]: https://gitlab.freedesktop.org/drm/intel/issues/6412
  [i915#6433]: https://gitlab.freedesktop.org/drm/intel/issues/6433
  [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
  [i915#768]: https://gitlab.freedesktop.org/drm/intel/issues/768


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_6586 -> IGTPW_7529

  CI-20190529: 20190529
  CI_DRM_11900: 5218ea24682b8edb1d629323dce5c88a44e225b0 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_7529: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/index.html
  IGT_6586: 0e5931f66eb283ba404b07394840b8e0b0c5e621 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7529/index.html

[-- Attachment #2: Type: text/html, Size: 55451 bytes --]

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

* Re: [igt-dev] [PATCH i-g-t 01/14] tools/intel_vbt_decode: Simplify fast link training lane count
  2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 01/14] tools/intel_vbt_decode: Simplify fast link training lane count Ville Syrjala
@ 2022-08-04 10:03   ` Jani Nikula
  0 siblings, 0 replies; 19+ messages in thread
From: Jani Nikula @ 2022-08-04 10:03 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

On Fri, 15 Jul 2022, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Get rid of the pointless switch statement and decode the
> fast link training lane count as just <val>+1. We already
> do the same for the DSI lane count.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

> ---
>  tools/intel_vbt_decode.c | 18 ++----------------
>  1 file changed, 2 insertions(+), 16 deletions(-)
>
> diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
> index 5494a34bdca3..1ed03745bd05 100644
> --- a/tools/intel_vbt_decode.c
> +++ b/tools/intel_vbt_decode.c
> @@ -1420,22 +1420,8 @@ static void dump_edp(struct context *context,
>  			       edp->fast_link_params[i].rate);
>  			break;
>  		}
> -		printf("\t\t\tlanes: ");
> -		switch (edp->fast_link_params[i].lanes) {
> -		case EDP_LANE_1:
> -			printf("x1 mode\n");
> -			break;
> -		case EDP_LANE_2:
> -			printf("x2 mode\n");
> -			break;
> -		case EDP_LANE_4:
> -			printf("x4 mode\n");
> -			break;
> -		default:
> -			printf("(unknown value %d)\n",
> -			       edp->fast_link_params[i].lanes);
> -			break;
> -		}
> +		printf("\t\t\tlanes: X%d",
> +		       edp->fast_link_params[i].lanes + 1);
>  		printf("\t\t\tpre-emphasis: ");
>  		switch (edp->fast_link_params[i].preemphasis) {
>  		case EDP_PREEMPHASIS_NONE:

-- 
Jani Nikula, Intel Open Source Graphics Center

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

* Re: [igt-dev] [PATCH i-g-t 02/14] tools/intel_vbt_decode: Extract dp_vswing()/dp_preemph()
  2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 02/14] tools/intel_vbt_decode: Extract dp_vswing()/dp_preemph() Ville Syrjala
@ 2022-08-04 10:05   ` Jani Nikula
  0 siblings, 0 replies; 19+ messages in thread
From: Jani Nikula @ 2022-08-04 10:05 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

On Fri, 15 Jul 2022, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> A bunch of places need to decode the DP vswing/preemph values.
> Fortunately all of them use the the same format so we can
> extract this stuff into a few helpers.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  tools/intel_vbt_decode.c | 110 ++++++++++++---------------------------
>  1 file changed, 34 insertions(+), 76 deletions(-)
>
> diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
> index 1ed03745bd05..13e927edd17f 100644
> --- a/tools/intel_vbt_decode.c
> +++ b/tools/intel_vbt_decode.c
> @@ -855,6 +855,28 @@ static void dump_dp_max_link_rate(uint16_t version, uint8_t dp_max_link_rate)
>  		       link_rate / 100.0f, dp_max_link_rate);
>  }
>  
> +static const char *dp_vswing(u8 vswing)
> +{
> +	switch (vswing) {
> +	case 0: return "0.4V";
> +	case 1: return "0.6V";
> +	case 2: return "0.8V";
> +	case 3: return "1.2V";
> +	default: return "<unknown>";
> +	}
> +}
> +
> +static const char *dp_preemph(u8 preemph)
> +{
> +	switch (preemph) {
> +	case 0: return "0dB";
> +	case 1: return "3.5dB";
> +	case 2: return "6dB";
> +	case 3: return "9.5dB";
> +	default: return "<unknown>";
> +	}
> +}
> +
>  static void dump_child_device(struct context *context,
>  			      const struct child_device_config *child)
>  {
> @@ -1422,44 +1444,12 @@ static void dump_edp(struct context *context,
>  		}
>  		printf("\t\t\tlanes: X%d",
>  		       edp->fast_link_params[i].lanes + 1);
> -		printf("\t\t\tpre-emphasis: ");
> -		switch (edp->fast_link_params[i].preemphasis) {
> -		case EDP_PREEMPHASIS_NONE:
> -			printf("none\n");
> -			break;
> -		case EDP_PREEMPHASIS_3_5dB:
> -			printf("3.5dB\n");
> -			break;
> -		case EDP_PREEMPHASIS_6dB:
> -			printf("6dB\n");
> -			break;
> -		case EDP_PREEMPHASIS_9_5dB:
> -			printf("9.5dB\n");
> -			break;
> -		default:
> -			printf("(unknown value %d)\n",
> -			       edp->fast_link_params[i].preemphasis);
> -			break;
> -		}
> -		printf("\t\t\tvswing: ");
> -		switch (edp->fast_link_params[i].vswing) {
> -		case EDP_VSWING_0_4V:
> -			printf("0.4V\n");
> -			break;
> -		case EDP_VSWING_0_6V:
> -			printf("0.6V\n");
> -			break;
> -		case EDP_VSWING_0_8V:
> -			printf("0.8V\n");
> -			break;
> -		case EDP_VSWING_1_2V:
> -			printf("1.2V\n");
> -			break;
> -		default:
> -			printf("(unknown value %d)\n",
> -			       edp->fast_link_params[i].vswing);
> -			break;
> -		}
> +		printf("\t\t\tpre-emphasis: %s (0x%x)\n",
> +		       dp_preemph(edp->fast_link_params[i].preemphasis),
> +		       edp->fast_link_params[i].preemphasis);
> +		printf("\t\t\tvswing: %s (0x%x)\n",
> +		       dp_preemph(edp->fast_link_params[i].vswing),

Copy-paste fail, should be dp_vswing().

Otherwise,

Reviewed-by: Jani Nikula <jani.nikula@intel.com>


> +		       edp->fast_link_params[i].vswing);
>  
>  		if (context->bdb->version >= 162) {
>  			bool val = (edp->edp_s3d_feature >> i) & 1;
> @@ -1511,44 +1501,12 @@ static void dump_edp(struct context *context,
>  
>  			printf("\t\tFull link params provided: %s\n", YESNO(val));
>  			printf("\t\tFull link params:\n");
> -			printf("\t\t\tpre-emphasis: ");
> -			switch (edp->full_link_params[i].preemphasis) {
> -			case EDP_PREEMPHASIS_NONE:
> -				printf("none\n");
> -				break;
> -			case EDP_PREEMPHASIS_3_5dB:
> -				printf("3.5dB\n");
> -				break;
> -			case EDP_PREEMPHASIS_6dB:
> -				printf("6dB\n");
> -				break;
> -			case EDP_PREEMPHASIS_9_5dB:
> -				printf("9.5dB\n");
> -				break;
> -			default:
> -				printf("(unknown value %d)\n",
> -				       edp->full_link_params[i].preemphasis);
> -				break;
> -			}
> -			printf("\t\t\tvswing: ");
> -			switch (edp->full_link_params[i].vswing) {
> -			case EDP_VSWING_0_4V:
> -				printf("0.4V\n");
> -				break;
> -			case EDP_VSWING_0_6V:
> -				printf("0.6V\n");
> -				break;
> -			case EDP_VSWING_0_8V:
> -				printf("0.8V\n");
> -				break;
> -			case EDP_VSWING_1_2V:
> -				printf("1.2V\n");
> -				break;
> -			default:
> -				printf("(unknown value %d)\n",
> -				       edp->full_link_params[i].vswing);
> -				break;
> -			}
> +			printf("\t\t\tpre-emphasis: %s (0x%x)\n",
> +			       dp_preemph(edp->full_link_params[i].preemphasis),
> +			       edp->full_link_params[i].preemphasis);
> +			printf("\t\t\tvswing: %s (0x%x)\n",
> +			       dp_vswing(edp->full_link_params[i].vswing),
> +			       edp->full_link_params[i].vswing);
>  		}
>  
>  		if (context->bdb->version >= 224) {

-- 
Jani Nikula, Intel Open Source Graphics Center

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

end of thread, other threads:[~2022-08-04 10:05 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-15 20:25 [igt-dev] [PATCH i-g-t 00/14] tools/intel_vbt_decode: Improve VBT decoder Ville Syrjala
2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 01/14] tools/intel_vbt_decode: Simplify fast link training lane count Ville Syrjala
2022-08-04 10:03   ` Jani Nikula
2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 02/14] tools/intel_vbt_decode: Extract dp_vswing()/dp_preemph() Ville Syrjala
2022-08-04 10:05   ` Jani Nikula
2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 03/14] tools/intel_vbt_decode: update vbt defs from kernel Ville Syrjala
2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 04/14] tools/intel_vbt_decode: Introduce panel_bits()/panel_bool() Ville Syrjala
2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 05/14] tools/intel_vbt_decode: Remove pointless variables Ville Syrjala
2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 06/14] tools/intel_vbt_decode: Extract lvds_config[] Ville Syrjala
2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 07/14] tools/intel_vbt_decode: Extract panel_fitting[] Ville Syrjala
2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 08/14] tools/intel_vbt_decode: Parse HDMI FRL rate Ville Syrjala
2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 09/14] tools/intel_vbt_decode: Decode the "use VBT vswing tables" flag Ville Syrjala
2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 10/14] tools/intel_vbt_decode: Decode eDP/DP max lane count Ville Syrjala
2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 11/14] tools/intel_vbt_decode: Clean up driver features block decoding Ville Syrjala
2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 12/14] tools/intel_vbt_decode: Decode AUX CH Ville Syrjala
2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 13/14] tools/intel_vbt_decode: Adjust DVO port printing Ville Syrjala
2022-07-15 20:25 ` [igt-dev] [PATCH i-g-t 14/14] tools/intel_vbt_decode: Dump the compression structure index as decimal Ville Syrjala
2022-07-16 17:08 ` [igt-dev] ✓ Fi.CI.BAT: success for tools/intel_vbt_decode: Improve VBT decoder Patchwork
2022-07-16 19:57 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork

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