Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-gfx] [PATCH v2 0/6] Add DSC PPS readout
@ 2023-07-13  6:29 Suraj Kandpal
  2023-07-13  6:29 ` [Intel-gfx] [PATCH v2 1/6] drm/i915/vdsc: Refactor dsc register field macro Suraj Kandpal
                   ` (10 more replies)
  0 siblings, 11 replies; 19+ messages in thread
From: Suraj Kandpal @ 2023-07-13  6:29 UTC (permalink / raw)
  To: intel-gfx

Up until now we only verified one or two of the dsc pps
params like bits_per_component and bits_per_pixel this
patch series aim to readout almost all PPS param and get
them compared.
Along with that some work on making a common function to
read and write PPS param regiters is also done.

--v2
-Remove duplicated code and create function that fetches register
and reuse that [Jani]
-move WARN_ON one abstraction layer up [Jani]
-Split patch so that refactor and a new functionality is not added
in the same patch [Jani]
-Add a new refactor patch so that bit shifting can be done in a
clean way [Jani]

Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>

Suraj Kandpal (6):
  drm/i915/vdsc: Refactor dsc register field macro
  drm/i915/vdsc: Add a check for dsc split cases
  drm/i915/vdsc: Add function to read any PPS register
  drm/i915/vdsc: Add function to write in PPS register
  drm/i915/vdsc: Fill the intel_dsc_get_pps_config function
  drm/i915/display: Compare the readout dsc pps params

 drivers/gpu/drm/i915/display/intel_display.c  |  31 +
 drivers/gpu/drm/i915/display/intel_vdsc.c     | 622 ++++++++++--------
 .../gpu/drm/i915/display/intel_vdsc_regs.h    | 101 ++-
 3 files changed, 463 insertions(+), 291 deletions(-)

-- 
2.25.1


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

* [Intel-gfx] [PATCH v2 1/6] drm/i915/vdsc: Refactor dsc register field macro
  2023-07-13  6:29 [Intel-gfx] [PATCH v2 0/6] Add DSC PPS readout Suraj Kandpal
@ 2023-07-13  6:29 ` Suraj Kandpal
  2023-07-13  6:29 ` [Intel-gfx] [PATCH v2 2/6] drm/i915/vdsc: Add a check for dsc split cases Suraj Kandpal
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 19+ messages in thread
From: Suraj Kandpal @ 2023-07-13  6:29 UTC (permalink / raw)
  To: intel-gfx

This patch refactors dsc register related macros that prepares
the values to be written in the register. The current bit shifting
looks bad and going forward will not serve our purpose to readout
dsc register field values the change was suggested by Jani Nikula.

Cc: Jani Nikula <jani.nikula@linux.intel.com>
Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
---
 .../gpu/drm/i915/display/intel_vdsc_regs.h    | 98 +++++++++++++------
 1 file changed, 70 insertions(+), 28 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_vdsc_regs.h b/drivers/gpu/drm/i915/display/intel_vdsc_regs.h
index b71f00b5c761..8945eb1d493a 100644
--- a/drivers/gpu/drm/i915/display/intel_vdsc_regs.h
+++ b/drivers/gpu/drm/i915/display/intel_vdsc_regs.h
@@ -57,7 +57,8 @@
 #define MTL_DSC1_PICTURE_PARAMETER_SET_17(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
 							   _MTL_DSC1_PICTURE_PARAMETER_SET_17_PB, \
 							   _MTL_DSC1_PICTURE_PARAMETER_SET_17_PC)
-#define DSC_SL_BPG_OFFSET(offset)		((offset) << 27)
+#define DSC_SL_BPG_OFFSET_MASK			REG_GENMASK(31, 27)
+#define DSC_SL_BPG_OFFSET(offset)		REG_FIELD_PREP(DSC_SL_BPG_OFFSET_MASK, offset)
 
 #define _MTL_DSC0_PICTURE_PARAMETER_SET_18_PB	0x782B8
 #define _MTL_DSC1_PICTURE_PARAMETER_SET_18_PB	0x783B8
@@ -69,8 +70,10 @@
 #define MTL_DSC1_PICTURE_PARAMETER_SET_18(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
 							   _MTL_DSC1_PICTURE_PARAMETER_SET_18_PB, \
 							   _MTL_DSC1_PICTURE_PARAMETER_SET_18_PC)
-#define DSC_NSL_BPG_OFFSET(offset)		((offset) << 16)
-#define DSC_SL_OFFSET_ADJ(offset)		((offset) << 0)
+#define DSC_NSL_BPG_OFFSET_MASK			REG_GENMASK(31, 16)
+#define DSC_SL_OFFSET_ADJ_MASK			REG_GENMASK(15, 0)
+#define DSC_NSL_BPG_OFFSET(offset)		REG_FIELD_PREP(DSC_NSL_BPG_OFFSET_MASK, offset)
+#define DSC_SL_OFFSET_ADJ(offset)		REG_FIELD_PREP(DSC_SL_OFFSET_ADJ_MASK, offset)
 
 /* Icelake Display Stream Compression Registers */
 #define DSCA_PICTURE_PARAMETER_SET_0		_MMIO(0x6B200)
@@ -123,8 +126,10 @@
 #define ICL_DSC1_PICTURE_PARAMETER_SET_2(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
 					    _ICL_DSC1_PICTURE_PARAMETER_SET_2_PB, \
 					    _ICL_DSC1_PICTURE_PARAMETER_SET_2_PC)
-#define  DSC_PIC_WIDTH(pic_width)	((pic_width) << 16)
-#define  DSC_PIC_HEIGHT(pic_height)	((pic_height) << 0)
+#define  DSC_PIC_WIDTH_MASK		REG_GENMASK(31, 16)
+#define  DSC_PIC_HEIGHT_MASK		REG_GENMASK(15, 0)
+#define  DSC_PIC_WIDTH(pic_width)	REG_FIELD_PREP(DSC_PIC_WIDTH_MASK, pic_width)
+#define  DSC_PIC_HEIGHT(pic_height)	REG_FIELD_PREP(DSC_PIC_HEIGHT_MASK, pic_height)
 
 #define DSCA_PICTURE_PARAMETER_SET_3		_MMIO(0x6B20C)
 #define DSCC_PICTURE_PARAMETER_SET_3		_MMIO(0x6BA0C)
@@ -138,8 +143,10 @@
 #define ICL_DSC1_PICTURE_PARAMETER_SET_3(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
 							   _ICL_DSC1_PICTURE_PARAMETER_SET_3_PB, \
 							   _ICL_DSC1_PICTURE_PARAMETER_SET_3_PC)
-#define  DSC_SLICE_WIDTH(slice_width)   ((slice_width) << 16)
-#define  DSC_SLICE_HEIGHT(slice_height) ((slice_height) << 0)
+#define  DSC_SLICE_WIDTH_MASK			REG_GENMASK(31, 16)
+#define  DSC_SLICE_HEIGHT_MASK			REG_GENMASK(15, 0)
+#define  DSC_SLICE_WIDTH(slice_width)		REG_FIELD_PREP(DSC_SLICE_WIDTH_MASK, slice_width)
+#define  DSC_SLICE_HEIGHT(slice_height)		REG_FIELD_PREP(DSC_SLICE_HEIGHT_MASK, slice_height)
 
 #define DSCA_PICTURE_PARAMETER_SET_4		_MMIO(0x6B210)
 #define DSCC_PICTURE_PARAMETER_SET_4		_MMIO(0x6BA10)
@@ -153,8 +160,12 @@
 #define ICL_DSC1_PICTURE_PARAMETER_SET_4(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
 							   _ICL_DSC1_PICTURE_PARAMETER_SET_4_PB, \
 							   _ICL_DSC1_PICTURE_PARAMETER_SET_4_PC)
-#define  DSC_INITIAL_DEC_DELAY(dec_delay)       ((dec_delay) << 16)
-#define  DSC_INITIAL_XMIT_DELAY(xmit_delay)     ((xmit_delay) << 0)
+#define  DSC_INITIAL_DEC_DELAY_MASK		REG_GENMASK(31, 16)
+#define  DSC_INITIAL_XMIT_DELAY_MASK		REG_GENMASK(9, 0)
+#define  DSC_INITIAL_DEC_DELAY(dec_delay)       REG_FIELD_PREP(DSC_INITIAL_DEC_DELAY_MASK, \
+							       dec_delay)
+#define  DSC_INITIAL_XMIT_DELAY(xmit_delay)     REG_FIELD_PREP(DSC_INITIAL_XMIT_DELAY_MASK, \
+							       xmit_delay)
 
 #define DSCA_PICTURE_PARAMETER_SET_5		_MMIO(0x6B214)
 #define DSCC_PICTURE_PARAMETER_SET_5		_MMIO(0x6BA14)
@@ -168,8 +179,10 @@
 #define ICL_DSC1_PICTURE_PARAMETER_SET_5(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
 							   _ICL_DSC1_PICTURE_PARAMETER_SET_5_PB, \
 							   _ICL_DSC1_PICTURE_PARAMETER_SET_5_PC)
-#define  DSC_SCALE_DEC_INT(scale_dec)	((scale_dec) << 16)
-#define  DSC_SCALE_INC_INT(scale_inc)		((scale_inc) << 0)
+#define  DSC_SCALE_DEC_INT_MASK			REG_GENMASK(27, 16)
+#define  DSC_SCALE_INC_INT_MASK			REG_GENMASK(15, 0)
+#define  DSC_SCALE_DEC_INT(scale_dec)		REG_FIELD_PREP(DSC_SCALE_DEC_INT_MASK, scale_dec)
+#define  DSC_SCALE_INC_INT(scale_inc)		REG_FIELD_PREP(DSC_SCALE_INC_INT_MASK, scale_inc)
 
 #define DSCA_PICTURE_PARAMETER_SET_6		_MMIO(0x6B218)
 #define DSCC_PICTURE_PARAMETER_SET_6		_MMIO(0x6BA18)
@@ -183,10 +196,16 @@
 #define ICL_DSC1_PICTURE_PARAMETER_SET_6(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
 							   _ICL_DSC1_PICTURE_PARAMETER_SET_6_PB, \
 							   _ICL_DSC1_PICTURE_PARAMETER_SET_6_PC)
-#define  DSC_FLATNESS_MAX_QP(max_qp)		((max_qp) << 24)
-#define  DSC_FLATNESS_MIN_QP(min_qp)		((min_qp) << 16)
-#define  DSC_FIRST_LINE_BPG_OFFSET(offset)	((offset) << 8)
-#define  DSC_INITIAL_SCALE_VALUE(value)		((value) << 0)
+#define  DSC_FLATNESS_MAX_QP_MASK		REG_GENMASK(28, 24)
+#define  DSC_FLATNESS_MIN_QP_MASK		REG_GENMASK(20, 16)
+#define  DSC_FIRST_LINE_BPG_OFFSET_MASK		REG_GENMASK(12, 8)
+#define  DSC_INITIAL_SCALE_VALUE_MASK		REG_GENMASK(5, 0)
+#define  DSC_FLATNESS_MAX_QP(max_qp)		REG_FIELD_PREP(DSC_FLATNESS_MAX_QP_MASK, max_qp)
+#define  DSC_FLATNESS_MIN_QP(min_qp)		REG_FIELD_PREP(DSC_FLATNESS_MIN_QP_MASK, min_qp)
+#define  DSC_FIRST_LINE_BPG_OFFSET(offset)	REG_FIELD_PREP(DSC_FIRST_LINE_BPG_OFFSET_MASK, \
+							       offset)
+#define  DSC_INITIAL_SCALE_VALUE(value)		REG_FIELD_PREP(DSC_INITIAL_SCALE_VALUE_MASK, \
+							       value)
 
 #define DSCA_PICTURE_PARAMETER_SET_7		_MMIO(0x6B21C)
 #define DSCC_PICTURE_PARAMETER_SET_7		_MMIO(0x6BA1C)
@@ -200,8 +219,11 @@
 #define ICL_DSC1_PICTURE_PARAMETER_SET_7(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
 							    _ICL_DSC1_PICTURE_PARAMETER_SET_7_PB, \
 							    _ICL_DSC1_PICTURE_PARAMETER_SET_7_PC)
-#define  DSC_NFL_BPG_OFFSET(bpg_offset)		((bpg_offset) << 16)
-#define  DSC_SLICE_BPG_OFFSET(bpg_offset)	((bpg_offset) << 0)
+#define  DSC_NFL_BPG_OFFSET_MASK		REG_GENMASK(31, 16)
+#define  DSC_SLICE_BPG_OFFSET_MASK		REG_GENMASK(15, 0)
+#define  DSC_NFL_BPG_OFFSET(bpg_offset)		REG_FIELD_PREP(DSC_NFL_BPG_OFFSET_MASK, bpg_offset)
+#define  DSC_SLICE_BPG_OFFSET(bpg_offset)	REG_FIELD_PREP(DSC_SLICE_BPG_OFFSET_MASK, \
+							       bpg_offset)
 
 #define DSCA_PICTURE_PARAMETER_SET_8		_MMIO(0x6B220)
 #define DSCC_PICTURE_PARAMETER_SET_8		_MMIO(0x6BA20)
@@ -215,8 +237,12 @@
 #define ICL_DSC1_PICTURE_PARAMETER_SET_8(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
 							   _ICL_DSC1_PICTURE_PARAMETER_SET_8_PB, \
 							   _ICL_DSC1_PICTURE_PARAMETER_SET_8_PC)
-#define  DSC_INITIAL_OFFSET(initial_offset)		((initial_offset) << 16)
-#define  DSC_FINAL_OFFSET(final_offset)			((final_offset) << 0)
+#define  DSC_INITIAL_OFFSET_MASK		REG_GENMASK(31, 16)
+#define  DSC_FINAL_OFFSET_MASK			REG_GENMASK(15, 0)
+#define  DSC_INITIAL_OFFSET(initial_offset)	REG_FIELD_PREP(DSC_INITIAL_OFFSET_MASK, \
+							       initial_offset)
+#define  DSC_FINAL_OFFSET(final_offset)		REG_FIELD_PREP(DSC_FINAL_OFFSET_MASK, \
+							       final_offset)
 
 #define DSCA_PICTURE_PARAMETER_SET_9		_MMIO(0x6B224)
 #define DSCC_PICTURE_PARAMETER_SET_9		_MMIO(0x6BA24)
@@ -230,8 +256,12 @@
 #define ICL_DSC1_PICTURE_PARAMETER_SET_9(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
 							   _ICL_DSC1_PICTURE_PARAMETER_SET_9_PB, \
 							   _ICL_DSC1_PICTURE_PARAMETER_SET_9_PC)
-#define  DSC_RC_EDGE_FACTOR(rc_edge_fact)	((rc_edge_fact) << 16)
-#define  DSC_RC_MODEL_SIZE(rc_model_size)	((rc_model_size) << 0)
+#define  DSC_RC_EDGE_FACTOR_MASK		REG_GENMASK(19, 16)
+#define  DSC_RC_MODEL_SIZE_MASK			REG_GENMASK(15, 0)
+#define  DSC_RC_EDGE_FACTOR(rc_edge_fact)	REG_FIELD_PREP(DSC_RC_EDGE_FACTOR_MASK, \
+							       rc_edge_fact)
+#define  DSC_RC_MODEL_SIZE(rc_model_size)	REG_FIELD_PREP(DSC_RC_MODEL_SIZE_MASK, \
+							       rc_model_size)
 
 #define DSCA_PICTURE_PARAMETER_SET_10		_MMIO(0x6B228)
 #define DSCC_PICTURE_PARAMETER_SET_10		_MMIO(0x6BA28)
@@ -245,10 +275,16 @@
 #define ICL_DSC1_PICTURE_PARAMETER_SET_10(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
 							   _ICL_DSC1_PICTURE_PARAMETER_SET_10_PB, \
 							   _ICL_DSC1_PICTURE_PARAMETER_SET_10_PC)
-#define  DSC_RC_TARGET_OFF_LOW(rc_tgt_off_low)		((rc_tgt_off_low) << 20)
-#define  DSC_RC_TARGET_OFF_HIGH(rc_tgt_off_high)	((rc_tgt_off_high) << 16)
-#define  DSC_RC_QUANT_INC_LIMIT1(lim)			((lim) << 8)
-#define  DSC_RC_QUANT_INC_LIMIT0(lim)			((lim) << 0)
+#define  DSC_RC_TARGET_OFF_LOW_MASK			REG_GENMASK(23, 20)
+#define  DSC_RC_TARGET_OFF_HIGH_MASK			REG_GENMASK(19, 16)
+#define  DSC_RC_QUANT_INC_LIMIT1_MASK			REG_GENMASK(12, 8)
+#define  DSC_RC_QUANT_INC_LIMIT0_MASK			REG_GENMASK(4, 0)
+#define  DSC_RC_TARGET_OFF_LOW(rc_tgt_off_low)		REG_FIELD_PREP(DSC_RC_TARGET_OFF_LOW_MASK, \
+								       rc_tgt_off_low)
+#define  DSC_RC_TARGET_OFF_HIGH(rc_tgt_off_high)	REG_FIELD_PREP(DSC_RC_TARGET_OFF_HIGH_MASK, \
+								       rc_tgt_off_high)
+#define  DSC_RC_QUANT_INC_LIMIT1(lim)		REG_FIELD_PREP(DSC_RC_QUANT_INC_LIMIT1_MASK, lim)
+#define  DSC_RC_QUANT_INC_LIMIT0(lim)		REG_FIELD_PREP(DSC_RC_QUANT_INC_LIMIT0_MASK, lim)
 
 #define DSCA_PICTURE_PARAMETER_SET_11		_MMIO(0x6B22C)
 #define DSCC_PICTURE_PARAMETER_SET_11		_MMIO(0x6BA2C)
@@ -327,9 +363,15 @@
 #define ICL_DSC1_PICTURE_PARAMETER_SET_16(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
 							   _ICL_DSC1_PICTURE_PARAMETER_SET_16_PB, \
 							   _ICL_DSC1_PICTURE_PARAMETER_SET_16_PC)
-#define  DSC_SLICE_ROW_PER_FRAME(slice_row_per_frame)	((slice_row_per_frame) << 20)
-#define  DSC_SLICE_PER_LINE(slice_per_line)		((slice_per_line) << 16)
-#define  DSC_SLICE_CHUNK_SIZE(slice_chunk_size)		((slice_chunk_size) << 0)
+#define  DSC_SLICE_ROW_PER_FRAME_MASK			REG_GENMASK(31, 20)
+#define  DSC_SLICE_PER_LINE_MASK			REG_GENMASK(18, 16)
+#define  DSC_SLICE_CHUNK_SIZE_MASK			REG_GENMASK(15, 0)
+#define  DSC_SLICE_ROW_PER_FRAME(slice_row_per_frame)	REG_FIELD_PREP(DSC_SLICE_ROW_PER_FRAME_MASK, \
+								       slice_row_per_frame)
+#define  DSC_SLICE_PER_LINE(slice_per_line)		REG_FIELD_PREP(DSC_SLICE_PER_LINE_MASK, \
+								       slice_per_line)
+#define  DSC_SLICE_CHUNK_SIZE(slice_chunk_size)		REG_FIELD_PREP(DSC_SLICE_CHUNK_SIZE_MASK, \
+								       slice_chunk_size)
 
 /* Icelake Rate Control Buffer Threshold Registers */
 #define DSCA_RC_BUF_THRESH_0			_MMIO(0x6B230)
-- 
2.25.1


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

* [Intel-gfx] [PATCH v2 2/6] drm/i915/vdsc: Add a check for dsc split cases
  2023-07-13  6:29 [Intel-gfx] [PATCH v2 0/6] Add DSC PPS readout Suraj Kandpal
  2023-07-13  6:29 ` [Intel-gfx] [PATCH v2 1/6] drm/i915/vdsc: Refactor dsc register field macro Suraj Kandpal
@ 2023-07-13  6:29 ` Suraj Kandpal
  2023-07-13 12:29   ` Jani Nikula
  2023-07-13  6:29 ` [Intel-gfx] [PATCH v2 3/6] drm/i915/vdsc: Add function to read any PPS register Suraj Kandpal
                   ` (8 subsequent siblings)
  10 siblings, 1 reply; 19+ messages in thread
From: Suraj Kandpal @ 2023-07-13  6:29 UTC (permalink / raw)
  To: intel-gfx

In intel_vdsc_get_config we only read the primary dsc engine register
and not take into account if the other dsc engine is in use and if
both registers have the same value or not this patche fixes that by
adding a check.

Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
---
 drivers/gpu/drm/i915/display/intel_vdsc.c | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.c b/drivers/gpu/drm/i915/display/intel_vdsc.c
index 530f3c08a172..d48b8306bfc3 100644
--- a/drivers/gpu/drm/i915/display/intel_vdsc.c
+++ b/drivers/gpu/drm/i915/display/intel_vdsc.c
@@ -939,7 +939,7 @@ void intel_dsc_get_config(struct intel_crtc_state *crtc_state)
 	enum pipe pipe = crtc->pipe;
 	enum intel_display_power_domain power_domain;
 	intel_wakeref_t wakeref;
-	u32 dss_ctl1, dss_ctl2, pps0 = 0, pps1 = 0;
+	u32 dss_ctl1, dss_ctl2, pps0 = 0, pps1 = 0, pps_temp0 = 0, pps_temp1 = 1;
 
 	if (!intel_dsc_source_support(crtc_state))
 		return;
@@ -965,11 +965,24 @@ void intel_dsc_get_config(struct intel_crtc_state *crtc_state)
 	/* PPS0 & PPS1 */
 	if (!is_pipe_dsc(crtc, cpu_transcoder)) {
 		pps1 = intel_de_read(dev_priv, DSCA_PICTURE_PARAMETER_SET_1);
+		if (crtc_state->dsc.dsc_split) {
+			pps_temp1 = intel_de_read(dev_priv, DSCC_PICTURE_PARAMETER_SET_1);
+			drm_WARN_ON(&dev_priv->drm, pps1 != pps_temp1);
+		}
+
 	} else {
 		pps0 = intel_de_read(dev_priv,
 				     ICL_DSC0_PICTURE_PARAMETER_SET_0(pipe));
 		pps1 = intel_de_read(dev_priv,
 				     ICL_DSC0_PICTURE_PARAMETER_SET_1(pipe));
+		if (crtc_state->dsc.dsc_split) {
+			pps_temp0 = intel_de_read(dev_priv,
+						  ICL_DSC0_PICTURE_PARAMETER_SET_0(pipe));
+			pps_temp1 = intel_de_read(dev_priv,
+						  ICL_DSC0_PICTURE_PARAMETER_SET_1(pipe));
+			drm_WARN_ON(&dev_priv->drm, pps0 != pps_temp0);
+			drm_WARN_ON(&dev_priv->drm, pps1 != pps_temp1);
+		}
 	}
 
 	vdsc_cfg->bits_per_pixel = pps1;
-- 
2.25.1


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

* [Intel-gfx] [PATCH v2 3/6] drm/i915/vdsc: Add function to read any PPS register
  2023-07-13  6:29 [Intel-gfx] [PATCH v2 0/6] Add DSC PPS readout Suraj Kandpal
  2023-07-13  6:29 ` [Intel-gfx] [PATCH v2 1/6] drm/i915/vdsc: Refactor dsc register field macro Suraj Kandpal
  2023-07-13  6:29 ` [Intel-gfx] [PATCH v2 2/6] drm/i915/vdsc: Add a check for dsc split cases Suraj Kandpal
@ 2023-07-13  6:29 ` Suraj Kandpal
  2023-07-13 12:38   ` Jani Nikula
  2023-07-13 12:47   ` Jani Nikula
  2023-07-13  6:29 ` [Intel-gfx] [PATCH v2 4/6] drm/i915/vdsc: Add function to write in " Suraj Kandpal
                   ` (7 subsequent siblings)
  10 siblings, 2 replies; 19+ messages in thread
From: Suraj Kandpal @ 2023-07-13  6:29 UTC (permalink / raw)
  To: intel-gfx

Add function to read any PPS register based on the
intel_dsc_pps enum provided. Add a function which will call the
new pps read function and place it in crtc state. Only PPS0 and
PPS1 are readout the rest of the registers will be read in upcoming
patches.

--v2
-Changes in read function as PPS enum is removed
-Initialize pps_val as 0 in pps_read func itself [Jani]
-Create a function that gets the required register and call that
in the common read function [Jani]
-Move the drm_WARN_ON one abstraction layer above [Jani]

Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
---
 drivers/gpu/drm/i915/display/intel_vdsc.c | 276 +++++++++++++++++++---
 1 file changed, 242 insertions(+), 34 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.c b/drivers/gpu/drm/i915/display/intel_vdsc.c
index d48b8306bfc3..48273a3618c5 100644
--- a/drivers/gpu/drm/i915/display/intel_vdsc.c
+++ b/drivers/gpu/drm/i915/display/intel_vdsc.c
@@ -303,6 +303,196 @@ int intel_dsc_get_num_vdsc_instances(const struct intel_crtc_state *crtc_state)
 	return num_vdsc_instances;
 }
 
+static void intel_dsc_get_pps_reg(struct intel_crtc_state *crtc_state, int pps,
+				  int dsc_eng_no, i915_reg_t *dsc_reg)
+{
+	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
+	enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
+	struct drm_i915_private *i915 = to_i915(crtc->base.dev);
+	enum pipe pipe = crtc->pipe;
+	bool pipe_dsc;
+
+	pipe_dsc = is_pipe_dsc(crtc, cpu_transcoder);
+
+	switch (pps) {
+	case 0:
+		if (pipe_dsc) {
+			if (dsc_eng_no == 2)
+				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_0(pipe);
+			else
+				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_0(pipe);
+		} else {
+			if (dsc_eng_no == 2)
+				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_0;
+			else
+				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_0;
+		}
+		break;
+	case 1:
+		if (pipe_dsc) {
+			if (dsc_eng_no == 2)
+				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_1(pipe);
+			else
+				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_1(pipe);
+		} else {
+			if (dsc_eng_no == 2)
+				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_1;
+			else
+				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_1;
+		}
+		break;
+	case 2:
+		if (pipe_dsc) {
+			if (dsc_eng_no == 2)
+				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_2(pipe);
+			else
+				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_2(pipe);
+		} else {
+			if (dsc_eng_no == 2)
+				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_2;
+			else
+				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_2;
+		}
+		break;
+	case 3:
+		if (pipe_dsc) {
+			if (dsc_eng_no == 2)
+				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_3(pipe);
+			else
+				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_3(pipe);
+		} else {
+			if (dsc_eng_no == 2)
+				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_3;
+			else
+				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_3;
+		}
+		break;
+	case 4:
+		if (pipe_dsc) {
+			if (dsc_eng_no == 2)
+				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_4(pipe);
+			else
+				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_4(pipe);
+		} else {
+			if (dsc_eng_no == 2)
+				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_4;
+			else
+				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_4;
+		}
+		break;
+	case 5:
+		if (pipe_dsc) {
+			if (dsc_eng_no == 2)
+				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_5(pipe);
+			else
+				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_5(pipe);
+		} else {
+			if (dsc_eng_no == 2)
+				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_5;
+			else
+				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_5;
+		}
+		break;
+	case 6:
+		if (pipe_dsc) {
+			if (dsc_eng_no == 2)
+				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_6(pipe);
+			else
+				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_6(pipe);
+		} else {
+			if (dsc_eng_no == 2)
+				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_6;
+			else
+				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_6;
+		}
+		break;
+	case 7:
+		if (pipe_dsc) {
+			if (dsc_eng_no == 2)
+				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_7(pipe);
+			else
+				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_7(pipe);
+		} else {
+			if (dsc_eng_no == 2)
+				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_7;
+			else
+				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_7;
+		}
+		break;
+	case 8:
+		if (pipe_dsc) {
+			if (dsc_eng_no == 2)
+				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_8(pipe);
+			else
+				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_8(pipe);
+		} else {
+			if (dsc_eng_no == 2)
+				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_8;
+			else
+				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_8;
+		}
+		break;
+	case 9:
+		if (pipe_dsc) {
+			if (dsc_eng_no == 2)
+				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_9(pipe);
+			else
+				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_9(pipe);
+		} else {
+			if (dsc_eng_no == 2)
+				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_9;
+			else
+				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_9;
+		}
+		break;
+	case 10:
+		if (pipe_dsc) {
+			if (dsc_eng_no == 2)
+				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_10(pipe);
+			else
+				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_10(pipe);
+		} else {
+			if (dsc_eng_no == 2)
+				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_10;
+			else
+				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_10;
+		}
+		break;
+	case 16:
+		if (pipe_dsc) {
+			if (dsc_eng_no == 2)
+				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_16(pipe);
+			else
+				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_16(pipe);
+		} else {
+			if (dsc_eng_no == 2)
+				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_16;
+			else
+				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_16;
+		}
+		break;
+	/*
+	 * Since PPS_17 and PPS_18 were introduced from MTL dsc check
+	 * need not be done
+	 */
+	case 17:
+		if (dsc_eng_no == 2)
+			*dsc_reg = MTL_DSC1_PICTURE_PARAMETER_SET_17(pipe);
+		else
+			*dsc_reg = MTL_DSC0_PICTURE_PARAMETER_SET_17(pipe);
+		break;
+	case 18:
+		if (dsc_eng_no == 2)
+			*dsc_reg = MTL_DSC1_PICTURE_PARAMETER_SET_18(pipe);
+		else
+			*dsc_reg = MTL_DSC0_PICTURE_PARAMETER_SET_18(pipe);
+		break;
+	default:
+		drm_err(&i915->drm, "PPS register does not exist\n");
+		break;
+	}
+}
+
 static void intel_dsc_pps_configure(const struct intel_crtc_state *crtc_state)
 {
 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
@@ -930,16 +1120,64 @@ void intel_dsc_disable(const struct intel_crtc_state *old_crtc_state)
 	}
 }
 
+static bool intel_dsc_read_pps_reg(struct intel_crtc_state *crtc_state,
+				   int pps, u32 *pps_val)
+{
+	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
+	struct drm_i915_private *i915 = to_i915(crtc->base.dev);
+	int num_vdsc_instances = intel_dsc_get_num_vdsc_instances(crtc_state);
+	i915_reg_t dsc_reg;
+	u32 pps_temp;
+
+	*pps_val = 0;
+
+	intel_dsc_get_pps_reg(crtc_state, pps, 0, &dsc_reg);
+	*pps_val = intel_de_read(i915, dsc_reg);
+	if (num_vdsc_instances > 1) {
+		intel_dsc_get_pps_reg(crtc_state, pps, 2, &dsc_reg);
+		pps_temp = intel_de_read(i915, dsc_reg);
+		if (*pps_val != pps_temp)
+			return true;
+	}
+	return false;
+}
+
+static void intel_dsc_read_and_verify_pps_reg(struct intel_crtc_state *crtc_state,
+					      int pps, u32 *pps_val)
+{
+	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
+	struct drm_i915_private *i915 = to_i915(crtc->base.dev);
+	bool is_dsc_diff;
+
+	is_dsc_diff = intel_dsc_read_pps_reg(crtc_state, pps, pps_val);
+	drm_WARN_ON(&i915->drm, is_dsc_diff);
+}
+
+static void intel_dsc_get_pps_config(struct intel_crtc_state *crtc_state)
+{
+	struct drm_dsc_config *vdsc_cfg = &crtc_state->dsc.config;
+	u32 pps_temp1, pps_temp2;
+
+	/* Readout PPS_0 and PPS_1 registers */
+	intel_dsc_read_and_verify_pps_reg(crtc_state, 0, &pps_temp1);
+	intel_dsc_read_and_verify_pps_reg(crtc_state, 1, &pps_temp2);
+
+	vdsc_cfg->bits_per_pixel = pps_temp2;
+
+	if (pps_temp1 & DSC_NATIVE_420_ENABLE)
+		vdsc_cfg->bits_per_pixel >>= 1;
+
+	crtc_state->dsc.compressed_bpp = vdsc_cfg->bits_per_pixel >> 4;
+}
+
 void intel_dsc_get_config(struct intel_crtc_state *crtc_state)
 {
 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
-	struct drm_dsc_config *vdsc_cfg = &crtc_state->dsc.config;
 	enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
-	enum pipe pipe = crtc->pipe;
 	enum intel_display_power_domain power_domain;
 	intel_wakeref_t wakeref;
-	u32 dss_ctl1, dss_ctl2, pps0 = 0, pps1 = 0, pps_temp0 = 0, pps_temp1 = 1;
+	u32 dss_ctl1, dss_ctl2;
 
 	if (!intel_dsc_source_support(crtc_state))
 		return;
@@ -960,37 +1198,7 @@ void intel_dsc_get_config(struct intel_crtc_state *crtc_state)
 	crtc_state->dsc.dsc_split = (dss_ctl2 & RIGHT_BRANCH_VDSC_ENABLE) &&
 		(dss_ctl1 & JOINER_ENABLE);
 
-	/* FIXME: add more state readout as needed */
-
-	/* PPS0 & PPS1 */
-	if (!is_pipe_dsc(crtc, cpu_transcoder)) {
-		pps1 = intel_de_read(dev_priv, DSCA_PICTURE_PARAMETER_SET_1);
-		if (crtc_state->dsc.dsc_split) {
-			pps_temp1 = intel_de_read(dev_priv, DSCC_PICTURE_PARAMETER_SET_1);
-			drm_WARN_ON(&dev_priv->drm, pps1 != pps_temp1);
-		}
-
-	} else {
-		pps0 = intel_de_read(dev_priv,
-				     ICL_DSC0_PICTURE_PARAMETER_SET_0(pipe));
-		pps1 = intel_de_read(dev_priv,
-				     ICL_DSC0_PICTURE_PARAMETER_SET_1(pipe));
-		if (crtc_state->dsc.dsc_split) {
-			pps_temp0 = intel_de_read(dev_priv,
-						  ICL_DSC0_PICTURE_PARAMETER_SET_0(pipe));
-			pps_temp1 = intel_de_read(dev_priv,
-						  ICL_DSC0_PICTURE_PARAMETER_SET_1(pipe));
-			drm_WARN_ON(&dev_priv->drm, pps0 != pps_temp0);
-			drm_WARN_ON(&dev_priv->drm, pps1 != pps_temp1);
-		}
-	}
-
-	vdsc_cfg->bits_per_pixel = pps1;
-
-	if (pps0 & DSC_NATIVE_420_ENABLE)
-		vdsc_cfg->bits_per_pixel >>= 1;
-
-	crtc_state->dsc.compressed_bpp = vdsc_cfg->bits_per_pixel >> 4;
+	intel_dsc_get_pps_config(crtc_state);
 out:
 	intel_display_power_put(dev_priv, power_domain, wakeref);
 }
-- 
2.25.1


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

* [Intel-gfx] [PATCH v2 4/6] drm/i915/vdsc: Add function to write in PPS register
  2023-07-13  6:29 [Intel-gfx] [PATCH v2 0/6] Add DSC PPS readout Suraj Kandpal
                   ` (2 preceding siblings ...)
  2023-07-13  6:29 ` [Intel-gfx] [PATCH v2 3/6] drm/i915/vdsc: Add function to read any PPS register Suraj Kandpal
@ 2023-07-13  6:29 ` Suraj Kandpal
  2023-07-13  6:29 ` [Intel-gfx] [PATCH v2 5/6] drm/i915/vdsc: Fill the intel_dsc_get_pps_config function Suraj Kandpal
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 19+ messages in thread
From: Suraj Kandpal @ 2023-07-13  6:29 UTC (permalink / raw)
  To: intel-gfx

Now that we have a function that reads any PPS register based
on intel_dsc_pps enum provided lets create a function that can
write on any PPS.

--v2
-Changes need as PPS enum was dropped
-Remove duplicated code in intel_dsc_write_pps_reg [Jani]

Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
---
 drivers/gpu/drm/i915/display/intel_vdsc.c | 274 +++-------------------
 1 file changed, 31 insertions(+), 243 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.c b/drivers/gpu/drm/i915/display/intel_vdsc.c
index 48273a3618c5..9d885fce9428 100644
--- a/drivers/gpu/drm/i915/display/intel_vdsc.c
+++ b/drivers/gpu/drm/i915/display/intel_vdsc.c
@@ -303,7 +303,7 @@ int intel_dsc_get_num_vdsc_instances(const struct intel_crtc_state *crtc_state)
 	return num_vdsc_instances;
 }
 
-static void intel_dsc_get_pps_reg(struct intel_crtc_state *crtc_state, int pps,
+static void intel_dsc_get_pps_reg(const struct intel_crtc_state *crtc_state, int pps,
 				  int dsc_eng_no, i915_reg_t *dsc_reg)
 {
 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
@@ -493,6 +493,22 @@ static void intel_dsc_get_pps_reg(struct intel_crtc_state *crtc_state, int pps,
 	}
 }
 
+static void intel_dsc_write_pps_reg(const struct intel_crtc_state *crtc_state,
+				    int pps, u32 pps_val)
+{
+	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
+	struct drm_i915_private *i915 = to_i915(crtc->base.dev);
+	int num_vdsc_instances = intel_dsc_get_num_vdsc_instances(crtc_state);
+	i915_reg_t dsc_reg;
+
+	intel_dsc_get_pps_reg(crtc_state, pps, 0, &dsc_reg);
+	intel_de_write(i915, dsc_reg, pps_val);
+	if (num_vdsc_instances > 1) {
+		intel_dsc_get_pps_reg(crtc_state, pps, 2, &dsc_reg);
+		intel_de_write(i915, dsc_reg, pps_val);
+	}
+}
+
 static void intel_dsc_pps_configure(const struct intel_crtc_state *crtc_state)
 {
 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
@@ -527,149 +543,41 @@ static void intel_dsc_pps_configure(const struct intel_crtc_state *crtc_state)
 	if (vdsc_cfg->vbr_enable)
 		pps_val |= DSC_VBR_ENABLE;
 	drm_dbg_kms(&dev_priv->drm, "PPS0 = 0x%08x\n", pps_val);
-	if (!is_pipe_dsc(crtc, cpu_transcoder)) {
-		intel_de_write(dev_priv, DSCA_PICTURE_PARAMETER_SET_0,
-			       pps_val);
-		/*
-		 * If 2 VDSC instances are needed, configure PPS for second
-		 * VDSC
-		 */
-		if (crtc_state->dsc.dsc_split)
-			intel_de_write(dev_priv, DSCC_PICTURE_PARAMETER_SET_0,
-				       pps_val);
-	} else {
-		intel_de_write(dev_priv,
-			       ICL_DSC0_PICTURE_PARAMETER_SET_0(pipe),
-			       pps_val);
-		if (crtc_state->dsc.dsc_split)
-			intel_de_write(dev_priv,
-				       ICL_DSC1_PICTURE_PARAMETER_SET_0(pipe),
-				       pps_val);
-	}
+	intel_dsc_write_pps_reg(crtc_state, 0, pps_val);
 
 	/* Populate PICTURE_PARAMETER_SET_1 registers */
 	pps_val = 0;
 	pps_val |= DSC_BPP(vdsc_cfg->bits_per_pixel);
 	drm_dbg_kms(&dev_priv->drm, "PPS1 = 0x%08x\n", pps_val);
-	if (!is_pipe_dsc(crtc, cpu_transcoder)) {
-		intel_de_write(dev_priv, DSCA_PICTURE_PARAMETER_SET_1,
-			       pps_val);
-		/*
-		 * If 2 VDSC instances are needed, configure PPS for second
-		 * VDSC
-		 */
-		if (crtc_state->dsc.dsc_split)
-			intel_de_write(dev_priv, DSCC_PICTURE_PARAMETER_SET_1,
-				       pps_val);
-	} else {
-		intel_de_write(dev_priv,
-			       ICL_DSC0_PICTURE_PARAMETER_SET_1(pipe),
-			       pps_val);
-		if (crtc_state->dsc.dsc_split)
-			intel_de_write(dev_priv,
-				       ICL_DSC1_PICTURE_PARAMETER_SET_1(pipe),
-				       pps_val);
-	}
+	intel_dsc_write_pps_reg(crtc_state, 1, pps_val);
 
 	/* Populate PICTURE_PARAMETER_SET_2 registers */
 	pps_val = 0;
 	pps_val |= DSC_PIC_HEIGHT(vdsc_cfg->pic_height) |
 		DSC_PIC_WIDTH(vdsc_cfg->pic_width / num_vdsc_instances);
 	drm_dbg_kms(&dev_priv->drm, "PPS2 = 0x%08x\n", pps_val);
-	if (!is_pipe_dsc(crtc, cpu_transcoder)) {
-		intel_de_write(dev_priv, DSCA_PICTURE_PARAMETER_SET_2,
-			       pps_val);
-		/*
-		 * If 2 VDSC instances are needed, configure PPS for second
-		 * VDSC
-		 */
-		if (crtc_state->dsc.dsc_split)
-			intel_de_write(dev_priv, DSCC_PICTURE_PARAMETER_SET_2,
-				       pps_val);
-	} else {
-		intel_de_write(dev_priv,
-			       ICL_DSC0_PICTURE_PARAMETER_SET_2(pipe),
-			       pps_val);
-		if (crtc_state->dsc.dsc_split)
-			intel_de_write(dev_priv,
-				       ICL_DSC1_PICTURE_PARAMETER_SET_2(pipe),
-				       pps_val);
-	}
+	intel_dsc_write_pps_reg(crtc_state, 2, pps_val);
 
 	/* Populate PICTURE_PARAMETER_SET_3 registers */
 	pps_val = 0;
 	pps_val |= DSC_SLICE_HEIGHT(vdsc_cfg->slice_height) |
 		DSC_SLICE_WIDTH(vdsc_cfg->slice_width);
 	drm_dbg_kms(&dev_priv->drm, "PPS3 = 0x%08x\n", pps_val);
-	if (!is_pipe_dsc(crtc, cpu_transcoder)) {
-		intel_de_write(dev_priv, DSCA_PICTURE_PARAMETER_SET_3,
-			       pps_val);
-		/*
-		 * If 2 VDSC instances are needed, configure PPS for second
-		 * VDSC
-		 */
-		if (crtc_state->dsc.dsc_split)
-			intel_de_write(dev_priv, DSCC_PICTURE_PARAMETER_SET_3,
-				       pps_val);
-	} else {
-		intel_de_write(dev_priv,
-			       ICL_DSC0_PICTURE_PARAMETER_SET_3(pipe),
-			       pps_val);
-		if (crtc_state->dsc.dsc_split)
-			intel_de_write(dev_priv,
-				       ICL_DSC1_PICTURE_PARAMETER_SET_3(pipe),
-				       pps_val);
-	}
+	intel_dsc_write_pps_reg(crtc_state, 3, pps_val);
 
 	/* Populate PICTURE_PARAMETER_SET_4 registers */
 	pps_val = 0;
 	pps_val |= DSC_INITIAL_XMIT_DELAY(vdsc_cfg->initial_xmit_delay) |
 		DSC_INITIAL_DEC_DELAY(vdsc_cfg->initial_dec_delay);
 	drm_dbg_kms(&dev_priv->drm, "PPS4 = 0x%08x\n", pps_val);
-	if (!is_pipe_dsc(crtc, cpu_transcoder)) {
-		intel_de_write(dev_priv, DSCA_PICTURE_PARAMETER_SET_4,
-			       pps_val);
-		/*
-		 * If 2 VDSC instances are needed, configure PPS for second
-		 * VDSC
-		 */
-		if (crtc_state->dsc.dsc_split)
-			intel_de_write(dev_priv, DSCC_PICTURE_PARAMETER_SET_4,
-				       pps_val);
-	} else {
-		intel_de_write(dev_priv,
-			       ICL_DSC0_PICTURE_PARAMETER_SET_4(pipe),
-			       pps_val);
-		if (crtc_state->dsc.dsc_split)
-			intel_de_write(dev_priv,
-				       ICL_DSC1_PICTURE_PARAMETER_SET_4(pipe),
-				       pps_val);
-	}
+	intel_dsc_write_pps_reg(crtc_state, 4, pps_val);
 
 	/* Populate PICTURE_PARAMETER_SET_5 registers */
 	pps_val = 0;
 	pps_val |= DSC_SCALE_INC_INT(vdsc_cfg->scale_increment_interval) |
 		DSC_SCALE_DEC_INT(vdsc_cfg->scale_decrement_interval);
 	drm_dbg_kms(&dev_priv->drm, "PPS5 = 0x%08x\n", pps_val);
-	if (!is_pipe_dsc(crtc, cpu_transcoder)) {
-		intel_de_write(dev_priv, DSCA_PICTURE_PARAMETER_SET_5,
-			       pps_val);
-		/*
-		 * If 2 VDSC instances are needed, configure PPS for second
-		 * VDSC
-		 */
-		if (crtc_state->dsc.dsc_split)
-			intel_de_write(dev_priv, DSCC_PICTURE_PARAMETER_SET_5,
-				       pps_val);
-	} else {
-		intel_de_write(dev_priv,
-			       ICL_DSC0_PICTURE_PARAMETER_SET_5(pipe),
-			       pps_val);
-		if (crtc_state->dsc.dsc_split)
-			intel_de_write(dev_priv,
-				       ICL_DSC1_PICTURE_PARAMETER_SET_5(pipe),
-				       pps_val);
-	}
+	intel_dsc_write_pps_reg(crtc_state, 5, pps_val);
 
 	/* Populate PICTURE_PARAMETER_SET_6 registers */
 	pps_val = 0;
@@ -678,100 +586,28 @@ static void intel_dsc_pps_configure(const struct intel_crtc_state *crtc_state)
 		DSC_FLATNESS_MIN_QP(vdsc_cfg->flatness_min_qp) |
 		DSC_FLATNESS_MAX_QP(vdsc_cfg->flatness_max_qp);
 	drm_dbg_kms(&dev_priv->drm, "PPS6 = 0x%08x\n", pps_val);
-	if (!is_pipe_dsc(crtc, cpu_transcoder)) {
-		intel_de_write(dev_priv, DSCA_PICTURE_PARAMETER_SET_6,
-			       pps_val);
-		/*
-		 * If 2 VDSC instances are needed, configure PPS for second
-		 * VDSC
-		 */
-		if (crtc_state->dsc.dsc_split)
-			intel_de_write(dev_priv, DSCC_PICTURE_PARAMETER_SET_6,
-				       pps_val);
-	} else {
-		intel_de_write(dev_priv,
-			       ICL_DSC0_PICTURE_PARAMETER_SET_6(pipe),
-			       pps_val);
-		if (crtc_state->dsc.dsc_split)
-			intel_de_write(dev_priv,
-				       ICL_DSC1_PICTURE_PARAMETER_SET_6(pipe),
-				       pps_val);
-	}
+	intel_dsc_write_pps_reg(crtc_state, 6, pps_val);
 
 	/* Populate PICTURE_PARAMETER_SET_7 registers */
 	pps_val = 0;
 	pps_val |= DSC_SLICE_BPG_OFFSET(vdsc_cfg->slice_bpg_offset) |
 		DSC_NFL_BPG_OFFSET(vdsc_cfg->nfl_bpg_offset);
 	drm_dbg_kms(&dev_priv->drm, "PPS7 = 0x%08x\n", pps_val);
-	if (!is_pipe_dsc(crtc, cpu_transcoder)) {
-		intel_de_write(dev_priv, DSCA_PICTURE_PARAMETER_SET_7,
-			       pps_val);
-		/*
-		 * If 2 VDSC instances are needed, configure PPS for second
-		 * VDSC
-		 */
-		if (crtc_state->dsc.dsc_split)
-			intel_de_write(dev_priv, DSCC_PICTURE_PARAMETER_SET_7,
-				       pps_val);
-	} else {
-		intel_de_write(dev_priv,
-			       ICL_DSC0_PICTURE_PARAMETER_SET_7(pipe),
-			       pps_val);
-		if (crtc_state->dsc.dsc_split)
-			intel_de_write(dev_priv,
-				       ICL_DSC1_PICTURE_PARAMETER_SET_7(pipe),
-				       pps_val);
-	}
+	intel_dsc_write_pps_reg(crtc_state, 7, pps_val);
 
 	/* Populate PICTURE_PARAMETER_SET_8 registers */
 	pps_val = 0;
 	pps_val |= DSC_FINAL_OFFSET(vdsc_cfg->final_offset) |
 		DSC_INITIAL_OFFSET(vdsc_cfg->initial_offset);
 	drm_dbg_kms(&dev_priv->drm, "PPS8 = 0x%08x\n", pps_val);
-	if (!is_pipe_dsc(crtc, cpu_transcoder)) {
-		intel_de_write(dev_priv, DSCA_PICTURE_PARAMETER_SET_8,
-			       pps_val);
-		/*
-		 * If 2 VDSC instances are needed, configure PPS for second
-		 * VDSC
-		 */
-		if (crtc_state->dsc.dsc_split)
-			intel_de_write(dev_priv, DSCC_PICTURE_PARAMETER_SET_8,
-				       pps_val);
-	} else {
-		intel_de_write(dev_priv,
-			       ICL_DSC0_PICTURE_PARAMETER_SET_8(pipe),
-			       pps_val);
-		if (crtc_state->dsc.dsc_split)
-			intel_de_write(dev_priv,
-				       ICL_DSC1_PICTURE_PARAMETER_SET_8(pipe),
-				       pps_val);
-	}
+	intel_dsc_write_pps_reg(crtc_state, 8, pps_val);
 
 	/* Populate PICTURE_PARAMETER_SET_9 registers */
 	pps_val = 0;
 	pps_val |= DSC_RC_MODEL_SIZE(vdsc_cfg->rc_model_size) |
 		DSC_RC_EDGE_FACTOR(DSC_RC_EDGE_FACTOR_CONST);
 	drm_dbg_kms(&dev_priv->drm, "PPS9 = 0x%08x\n", pps_val);
-	if (!is_pipe_dsc(crtc, cpu_transcoder)) {
-		intel_de_write(dev_priv, DSCA_PICTURE_PARAMETER_SET_9,
-			       pps_val);
-		/*
-		 * If 2 VDSC instances are needed, configure PPS for second
-		 * VDSC
-		 */
-		if (crtc_state->dsc.dsc_split)
-			intel_de_write(dev_priv, DSCC_PICTURE_PARAMETER_SET_9,
-				       pps_val);
-	} else {
-		intel_de_write(dev_priv,
-			       ICL_DSC0_PICTURE_PARAMETER_SET_9(pipe),
-			       pps_val);
-		if (crtc_state->dsc.dsc_split)
-			intel_de_write(dev_priv,
-				       ICL_DSC1_PICTURE_PARAMETER_SET_9(pipe),
-				       pps_val);
-	}
+	intel_dsc_write_pps_reg(crtc_state, 9, pps_val);
 
 	/* Populate PICTURE_PARAMETER_SET_10 registers */
 	pps_val = 0;
@@ -780,25 +616,7 @@ static void intel_dsc_pps_configure(const struct intel_crtc_state *crtc_state)
 		DSC_RC_TARGET_OFF_HIGH(DSC_RC_TGT_OFFSET_HI_CONST) |
 		DSC_RC_TARGET_OFF_LOW(DSC_RC_TGT_OFFSET_LO_CONST);
 	drm_dbg_kms(&dev_priv->drm, "PPS10 = 0x%08x\n", pps_val);
-	if (!is_pipe_dsc(crtc, cpu_transcoder)) {
-		intel_de_write(dev_priv, DSCA_PICTURE_PARAMETER_SET_10,
-			       pps_val);
-		/*
-		 * If 2 VDSC instances are needed, configure PPS for second
-		 * VDSC
-		 */
-		if (crtc_state->dsc.dsc_split)
-			intel_de_write(dev_priv,
-				       DSCC_PICTURE_PARAMETER_SET_10, pps_val);
-	} else {
-		intel_de_write(dev_priv,
-			       ICL_DSC0_PICTURE_PARAMETER_SET_10(pipe),
-			       pps_val);
-		if (crtc_state->dsc.dsc_split)
-			intel_de_write(dev_priv,
-				       ICL_DSC1_PICTURE_PARAMETER_SET_10(pipe),
-				       pps_val);
-	}
+	intel_dsc_write_pps_reg(crtc_state, 10, pps_val);
 
 	/* Populate Picture parameter set 16 */
 	pps_val = 0;
@@ -808,51 +626,21 @@ static void intel_dsc_pps_configure(const struct intel_crtc_state *crtc_state)
 		DSC_SLICE_ROW_PER_FRAME(vdsc_cfg->pic_height /
 					vdsc_cfg->slice_height);
 	drm_dbg_kms(&dev_priv->drm, "PPS16 = 0x%08x\n", pps_val);
-	if (!is_pipe_dsc(crtc, cpu_transcoder)) {
-		intel_de_write(dev_priv, DSCA_PICTURE_PARAMETER_SET_16,
-			       pps_val);
-		/*
-		 * If 2 VDSC instances are needed, configure PPS for second
-		 * VDSC
-		 */
-		if (crtc_state->dsc.dsc_split)
-			intel_de_write(dev_priv,
-				       DSCC_PICTURE_PARAMETER_SET_16, pps_val);
-	} else {
-		intel_de_write(dev_priv,
-			       ICL_DSC0_PICTURE_PARAMETER_SET_16(pipe),
-			       pps_val);
-		if (crtc_state->dsc.dsc_split)
-			intel_de_write(dev_priv,
-				       ICL_DSC1_PICTURE_PARAMETER_SET_16(pipe),
-				       pps_val);
-	}
+	intel_dsc_write_pps_reg(crtc_state, 16, pps_val);
 
 	if (DISPLAY_VER(dev_priv) >= 14) {
 		/* Populate PICTURE_PARAMETER_SET_17 registers */
 		pps_val = 0;
 		pps_val |= DSC_SL_BPG_OFFSET(vdsc_cfg->second_line_bpg_offset);
 		drm_dbg_kms(&dev_priv->drm, "PPS17 = 0x%08x\n", pps_val);
-		intel_de_write(dev_priv,
-			       MTL_DSC0_PICTURE_PARAMETER_SET_17(pipe),
-			       pps_val);
-		if (crtc_state->dsc.dsc_split)
-			intel_de_write(dev_priv,
-				       MTL_DSC1_PICTURE_PARAMETER_SET_17(pipe),
-				       pps_val);
+		intel_dsc_write_pps_reg(crtc_state, 17, pps_val);
 
 		/* Populate PICTURE_PARAMETER_SET_18 registers */
 		pps_val = 0;
 		pps_val |= DSC_NSL_BPG_OFFSET(vdsc_cfg->nsl_bpg_offset) |
 			   DSC_SL_OFFSET_ADJ(vdsc_cfg->second_line_offset_adj);
 		drm_dbg_kms(&dev_priv->drm, "PPS18 = 0x%08x\n", pps_val);
-		intel_de_write(dev_priv,
-			       MTL_DSC0_PICTURE_PARAMETER_SET_18(pipe),
-			       pps_val);
-		if (crtc_state->dsc.dsc_split)
-			intel_de_write(dev_priv,
-				       MTL_DSC1_PICTURE_PARAMETER_SET_18(pipe),
-				       pps_val);
+		intel_dsc_write_pps_reg(crtc_state, 18, pps_val);
 	}
 
 	/* Populate the RC_BUF_THRESH registers */
-- 
2.25.1


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

* [Intel-gfx] [PATCH v2 5/6] drm/i915/vdsc: Fill the intel_dsc_get_pps_config function
  2023-07-13  6:29 [Intel-gfx] [PATCH v2 0/6] Add DSC PPS readout Suraj Kandpal
                   ` (3 preceding siblings ...)
  2023-07-13  6:29 ` [Intel-gfx] [PATCH v2 4/6] drm/i915/vdsc: Add function to write in " Suraj Kandpal
@ 2023-07-13  6:29 ` Suraj Kandpal
  2023-07-13  6:29 ` [Intel-gfx] [PATCH v2 6/6] drm/i915/display: Compare the readout dsc pps params Suraj Kandpal
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 19+ messages in thread
From: Suraj Kandpal @ 2023-07-13  6:29 UTC (permalink / raw)
  To: intel-gfx

We have setup both the read and write functions so we can
move ahead and fill in all the readout state from PPS register
into the crtc_state so we can send it for comparision.

--v2
-Shorten comment to just PPSX rather than having the whole
"Readout PPSX register" [Jani]
-Remove pps_temp reinitialization as its being initialized in
the read function [Jani]
-Use REG_FIELD_GET to readout certain fields of dsc registers
[Jani]

Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
---
 drivers/gpu/drm/i915/display/intel_vdsc.c     | 99 +++++++++++++++++--
 .../gpu/drm/i915/display/intel_vdsc_regs.h    |  3 +
 2 files changed, 96 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.c b/drivers/gpu/drm/i915/display/intel_vdsc.c
index 9d885fce9428..29978fca8d97 100644
--- a/drivers/gpu/drm/i915/display/intel_vdsc.c
+++ b/drivers/gpu/drm/i915/display/intel_vdsc.c
@@ -944,18 +944,105 @@ static void intel_dsc_read_and_verify_pps_reg(struct intel_crtc_state *crtc_stat
 static void intel_dsc_get_pps_config(struct intel_crtc_state *crtc_state)
 {
 	struct drm_dsc_config *vdsc_cfg = &crtc_state->dsc.config;
-	u32 pps_temp1, pps_temp2;
+	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
+	struct drm_i915_private *i915 = to_i915(crtc->base.dev);
+	u32 pps_temp;
+
+	/* PPS_0 */
+	intel_dsc_read_and_verify_pps_reg(crtc_state, 0, &pps_temp);
 
-	/* Readout PPS_0 and PPS_1 registers */
-	intel_dsc_read_and_verify_pps_reg(crtc_state, 0, &pps_temp1);
-	intel_dsc_read_and_verify_pps_reg(crtc_state, 1, &pps_temp2);
+	vdsc_cfg->bits_per_component = (pps_temp & DSC_BPC_MASK) >> DSC_BPC_SHIFT;
+	vdsc_cfg->line_buf_depth =
+		(pps_temp & DSC_LINE_BUF_DEPTH_MASK) >> DSC_LINE_BUF_DEPTH_SHIFT;
+	vdsc_cfg->block_pred_enable = pps_temp & DSC_BLOCK_PREDICTION;
+	vdsc_cfg->convert_rgb = pps_temp & DSC_COLOR_SPACE_CONVERSION;
+	vdsc_cfg->simple_422 = pps_temp & DSC_422_ENABLE;
+	vdsc_cfg->native_422 = pps_temp & DSC_NATIVE_422_ENABLE;
+	vdsc_cfg->native_420 = pps_temp & DSC_NATIVE_420_ENABLE;
+	vdsc_cfg->vbr_enable = pps_temp & DSC_VBR_ENABLE;
 
-	vdsc_cfg->bits_per_pixel = pps_temp2;
+	/* PPS_1 */
+	intel_dsc_read_and_verify_pps_reg(crtc_state, 1, &pps_temp);
 
-	if (pps_temp1 & DSC_NATIVE_420_ENABLE)
+	vdsc_cfg->bits_per_pixel = pps_temp;
+
+	if (vdsc_cfg->native_420)
 		vdsc_cfg->bits_per_pixel >>= 1;
 
 	crtc_state->dsc.compressed_bpp = vdsc_cfg->bits_per_pixel >> 4;
+
+	/* PPS_2 */
+	intel_dsc_read_and_verify_pps_reg(crtc_state, 2, &pps_temp);
+
+	vdsc_cfg->pic_width = REG_FIELD_GET(DSC_PIC_WIDTH_MASK, pps_temp);
+	vdsc_cfg->pic_height = REG_FIELD_GET(DSC_PIC_HEIGHT_MASK, pps_temp);
+
+	/* PPS_3 */
+	intel_dsc_read_and_verify_pps_reg(crtc_state, 3, &pps_temp);
+
+	vdsc_cfg->slice_width = REG_FIELD_GET(DSC_SLICE_WIDTH_MASK, pps_temp);
+	vdsc_cfg->slice_height = REG_FIELD_GET(DSC_SLICE_HEIGHT_MASK, pps_temp);
+
+	/* PPS_4 */
+	intel_dsc_read_and_verify_pps_reg(crtc_state, 4, &pps_temp);
+
+	vdsc_cfg->initial_dec_delay = REG_FIELD_GET(DSC_INITIAL_DEC_DELAY_MASK, pps_temp);
+	vdsc_cfg->initial_xmit_delay = REG_FIELD_GET(DSC_INITIAL_XMIT_DELAY_MASK, pps_temp);
+
+	/* PPS_5 */
+	intel_dsc_read_and_verify_pps_reg(crtc_state, 5, &pps_temp);
+
+	vdsc_cfg->scale_decrement_interval = REG_FIELD_GET(DSC_SCALE_DEC_INT_MASK, pps_temp);
+	vdsc_cfg->scale_increment_interval = REG_FIELD_GET(DSC_SCALE_INC_INT_MASK, pps_temp);
+
+	/* PPS_6 */
+	intel_dsc_read_and_verify_pps_reg(crtc_state, 6, &pps_temp);
+
+	vdsc_cfg->initial_scale_value = REG_FIELD_GET(DSC_INITIAL_SCALE_VALUE_MASK, pps_temp);
+	vdsc_cfg->first_line_bpg_offset = REG_FIELD_GET(DSC_FIRST_LINE_BPG_OFFSET_MASK, pps_temp);
+	vdsc_cfg->flatness_min_qp = REG_FIELD_GET(DSC_FLATNESS_MIN_QP_MASK, pps_temp);
+	vdsc_cfg->flatness_max_qp = REG_FIELD_GET(DSC_FLATNESS_MAX_QP_MASK, pps_temp);
+
+	/* PPS_7 */
+	intel_dsc_read_and_verify_pps_reg(crtc_state, 7, &pps_temp);
+
+	vdsc_cfg->nfl_bpg_offset = REG_FIELD_GET(DSC_NFL_BPG_OFFSET_MASK, pps_temp);
+	vdsc_cfg->slice_bpg_offset = REG_FIELD_GET(DSC_SLICE_BPG_OFFSET_MASK, pps_temp);
+
+	/* PPS_8 */
+	intel_dsc_read_and_verify_pps_reg(crtc_state, 8, &pps_temp);
+
+	vdsc_cfg->initial_offset = REG_FIELD_GET(DSC_INITIAL_OFFSET_MASK, pps_temp);
+	vdsc_cfg->final_offset = REG_FIELD_GET(DSC_FINAL_OFFSET_MASK, pps_temp);
+
+	/* PPS_9 */
+	intel_dsc_read_and_verify_pps_reg(crtc_state, 9, &pps_temp);
+
+	vdsc_cfg->rc_model_size = REG_FIELD_GET(DSC_RC_MODEL_SIZE_MASK, pps_temp);
+
+	/* PPS_10 */
+	intel_dsc_read_and_verify_pps_reg(crtc_state, 10, &pps_temp);
+
+	vdsc_cfg->rc_quant_incr_limit0 = REG_FIELD_GET(DSC_RC_QUANT_INC_LIMIT0_MASK, pps_temp);
+	vdsc_cfg->rc_quant_incr_limit1 = REG_FIELD_GET(DSC_RC_QUANT_INC_LIMIT1_MASK, pps_temp);
+
+	/* PPS_16 */
+	intel_dsc_read_and_verify_pps_reg(crtc_state, 16, &pps_temp);
+
+	vdsc_cfg->slice_chunk_size = REG_FIELD_GET(DSC_SLICE_CHUNK_SIZE_MASK, pps_temp);
+
+	if (DISPLAY_VER(i915) >= 14) {
+		/* PPS_17 */
+		intel_dsc_read_and_verify_pps_reg(crtc_state, 17, &pps_temp);
+
+		vdsc_cfg->second_line_bpg_offset = REG_FIELD_GET(DSC_SL_BPG_OFFSET_MASK, pps_temp);
+
+		/* PPS_18 */
+		intel_dsc_read_and_verify_pps_reg(crtc_state, 18, &pps_temp);
+
+		vdsc_cfg->nsl_bpg_offset = REG_FIELD_GET(DSC_NSL_BPG_OFFSET_MASK, pps_temp);
+		vdsc_cfg->second_line_offset_adj = REG_FIELD_GET(DSC_SL_OFFSET_ADJ_MASK, pps_temp);
+	}
 }
 
 void intel_dsc_get_config(struct intel_crtc_state *crtc_state)
diff --git a/drivers/gpu/drm/i915/display/intel_vdsc_regs.h b/drivers/gpu/drm/i915/display/intel_vdsc_regs.h
index 8945eb1d493a..8605d36253ab 100644
--- a/drivers/gpu/drm/i915/display/intel_vdsc_regs.h
+++ b/drivers/gpu/drm/i915/display/intel_vdsc_regs.h
@@ -99,6 +99,9 @@
 #define  DSC_BPC_SHIFT			8
 #define  DSC_VER_MIN_SHIFT		4
 #define  DSC_VER_MAJ			(0x1 << 0)
+#define  DSC_LINE_BUF_DEPTH_MASK	REG_GENMASK(15, 12)
+#define  DSC_BPC_MASK			REG_GENMASK(11, 8)
+
 
 #define DSCA_PICTURE_PARAMETER_SET_1		_MMIO(0x6B204)
 #define DSCC_PICTURE_PARAMETER_SET_1		_MMIO(0x6BA04)
-- 
2.25.1


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

* [Intel-gfx] [PATCH v2 6/6] drm/i915/display: Compare the readout dsc pps params
  2023-07-13  6:29 [Intel-gfx] [PATCH v2 0/6] Add DSC PPS readout Suraj Kandpal
                   ` (4 preceding siblings ...)
  2023-07-13  6:29 ` [Intel-gfx] [PATCH v2 5/6] drm/i915/vdsc: Fill the intel_dsc_get_pps_config function Suraj Kandpal
@ 2023-07-13  6:29 ` Suraj Kandpal
  2023-07-13  9:36 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Add DSC PPS readout (rev2) Patchwork
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 19+ messages in thread
From: Suraj Kandpal @ 2023-07-13  6:29 UTC (permalink / raw)
  To: intel-gfx

With the dsc config being readout and filled in crtc_state add
macros and use them to compare current and previous PPS param in
DSC.

--v2
-Remove version check [Jani]
-Remove dupe macro for dsc pipe compare and use the existing ones
[Jani]

Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
---
 drivers/gpu/drm/i915/display/intel_display.c | 31 ++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 43cba98f7753..9c407ceb082e 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -5376,6 +5376,37 @@ intel_pipe_config_compare(const struct intel_crtc_state *current_config,
 	PIPE_CONF_CHECK_I(master_transcoder);
 	PIPE_CONF_CHECK_X(bigjoiner_pipes);
 
+	PIPE_CONF_CHECK_BOOL(dsc.config.block_pred_enable);
+	PIPE_CONF_CHECK_BOOL(dsc.config.convert_rgb);
+	PIPE_CONF_CHECK_BOOL(dsc.config.simple_422);
+	PIPE_CONF_CHECK_BOOL(dsc.config.native_422);
+	PIPE_CONF_CHECK_BOOL(dsc.config.native_420);
+	PIPE_CONF_CHECK_BOOL(dsc.config.vbr_enable);
+	PIPE_CONF_CHECK_I(dsc.config.line_buf_depth);
+	PIPE_CONF_CHECK_I(dsc.config.bits_per_component);
+	PIPE_CONF_CHECK_I(dsc.config.pic_width);
+	PIPE_CONF_CHECK_I(dsc.config.pic_height);
+	PIPE_CONF_CHECK_I(dsc.config.slice_width);
+	PIPE_CONF_CHECK_I(dsc.config.slice_height);
+	PIPE_CONF_CHECK_I(dsc.config.initial_dec_delay);
+	PIPE_CONF_CHECK_I(dsc.config.initial_xmit_delay);
+	PIPE_CONF_CHECK_I(dsc.config.scale_decrement_interval);
+	PIPE_CONF_CHECK_I(dsc.config.scale_increment_interval);
+	PIPE_CONF_CHECK_I(dsc.config.initial_scale_value);
+	PIPE_CONF_CHECK_I(dsc.config.first_line_bpg_offset);
+	PIPE_CONF_CHECK_I(dsc.config.flatness_min_qp);
+	PIPE_CONF_CHECK_I(dsc.config.flatness_max_qp);
+	PIPE_CONF_CHECK_I(dsc.config.slice_bpg_offset);
+	PIPE_CONF_CHECK_I(dsc.config.nfl_bpg_offset);
+	PIPE_CONF_CHECK_I(dsc.config.initial_offset);
+	PIPE_CONF_CHECK_I(dsc.config.final_offset);
+	PIPE_CONF_CHECK_I(dsc.config.rc_model_size);
+	PIPE_CONF_CHECK_I(dsc.config.rc_quant_incr_limit0);
+	PIPE_CONF_CHECK_I(dsc.config.rc_quant_incr_limit1);
+	PIPE_CONF_CHECK_I(dsc.config.slice_chunk_size);
+	PIPE_CONF_CHECK_I(dsc.config.second_line_bpg_offset);
+	PIPE_CONF_CHECK_I(dsc.config.nsl_bpg_offset);
+
 	PIPE_CONF_CHECK_I(dsc.compression_enable);
 	PIPE_CONF_CHECK_I(dsc.dsc_split);
 	PIPE_CONF_CHECK_I(dsc.compressed_bpp);
-- 
2.25.1


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

* [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Add DSC PPS readout (rev2)
  2023-07-13  6:29 [Intel-gfx] [PATCH v2 0/6] Add DSC PPS readout Suraj Kandpal
                   ` (5 preceding siblings ...)
  2023-07-13  6:29 ` [Intel-gfx] [PATCH v2 6/6] drm/i915/display: Compare the readout dsc pps params Suraj Kandpal
@ 2023-07-13  9:36 ` Patchwork
  2023-07-13  9:36 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 19+ messages in thread
From: Patchwork @ 2023-07-13  9:36 UTC (permalink / raw)
  To: Suraj Kandpal; +Cc: intel-gfx

== Series Details ==

Series: Add DSC PPS readout (rev2)
URL   : https://patchwork.freedesktop.org/series/120456/
State : warning

== Summary ==

Error: dim checkpatch failed
522b07084859 drm/i915/vdsc: Refactor dsc register field macro
-:174: WARNING:LONG_LINE: line length of 101 exceeds 100 columns
#174: FILE: drivers/gpu/drm/i915/display/intel_vdsc_regs.h:284:
+#define  DSC_RC_TARGET_OFF_HIGH(rc_tgt_off_high)	REG_FIELD_PREP(DSC_RC_TARGET_OFF_HIGH_MASK, \

-:191: WARNING:LONG_LINE: line length of 102 exceeds 100 columns
#191: FILE: drivers/gpu/drm/i915/display/intel_vdsc_regs.h:369:
+#define  DSC_SLICE_ROW_PER_FRAME(slice_row_per_frame)	REG_FIELD_PREP(DSC_SLICE_ROW_PER_FRAME_MASK, \

total: 0 errors, 2 warnings, 0 checks, 170 lines checked
f292bef24a4f drm/i915/vdsc: Add a check for dsc split cases
3d1649bffa43 drm/i915/vdsc: Add function to read any PPS register
56955c412ac8 drm/i915/vdsc: Add function to write in PPS register
4783180b2833 drm/i915/vdsc: Fill the intel_dsc_get_pps_config function
6b6e60445265 drm/i915/display: Compare the readout dsc pps params



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

* [Intel-gfx] ✗ Fi.CI.SPARSE: warning for Add DSC PPS readout (rev2)
  2023-07-13  6:29 [Intel-gfx] [PATCH v2 0/6] Add DSC PPS readout Suraj Kandpal
                   ` (6 preceding siblings ...)
  2023-07-13  9:36 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Add DSC PPS readout (rev2) Patchwork
@ 2023-07-13  9:36 ` Patchwork
  2023-07-13  9:49 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 19+ messages in thread
From: Patchwork @ 2023-07-13  9:36 UTC (permalink / raw)
  To: Suraj Kandpal; +Cc: intel-gfx

== Series Details ==

Series: Add DSC PPS readout (rev2)
URL   : https://patchwork.freedesktop.org/series/120456/
State : warning

== Summary ==

Error: dim sparse failed
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:148:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:148:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:148:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:150:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:150:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:150:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:154:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:154:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:154:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:156:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:156:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:156:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:156:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:156:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:156:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:174:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:174:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:174:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:176:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:176:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:176:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:180:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:180:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:180:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:182:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:182:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:182:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:182:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:182:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:182:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:186:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:186:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:186:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:188:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:188:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:188:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:192:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:192:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:192:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:195:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:195:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:195:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:195:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:195:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:195:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:237:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:237:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:237:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:239:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:239:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:239:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+drivers/gpu/drm/i915/display/intel_display_types.h:1884:17: warning: unreplaced symbol 'encoder'
+drivers/gpu/drm/i915/display/intel_display_types.h:1884:9: warning: unreplaced symbol 'break'
+drivers/gpu/drm/i915/display/intel_display_types.h:1884:9: warning: unreplaced symbol 'case'
+drivers/gpu/drm/i915/display/intel_display_types.h:1885:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:1885:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:1886:9: warning: too many warnings
+drivers/gpu/drm/i915/display/intel_display_types.h:1886:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:1887:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:1888:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:1889:17: warning: unreplaced symbol 'return'
+drivers/gpu/drm/i915/display/intel_display_types.h:1890:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:1891:17: warning: unreplaced symbol 'return'
+drivers/gpu/drm/i915/display/intel_display_types.h:1910:9: warning: unreplaced symbol 'intel_encoder'
+drivers/gpu/drm/i915/display/intel_display_types.h:1957:24: warning: trying to copy expression type 31
+drivers/gpu/drm/i915/display/intel_display_types.h:1957:24: warning: trying to copy expression type 31
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:128:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:128:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:128:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:166:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:166:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:166:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:168:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:168:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:168:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:169:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:169:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:169:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:170:9: warning: unreplaced symbol 'val'
+./include/asm-generic/bitops/generic-non-atomic.h:170:9: warning: unreplaced symbol 'val'
+./include/asm-generic/bitops/generic-non-atomic.h:170:9: warning: unreplaced symbol 'val'
+./include/asm-generic/bitops/generic-non-atomic.h:172:19: warning: unreplaced symbol 'val'
+./include/asm-generic/bitops/generic-non-atomic.h:172:19: warning: unreplaced symbol 'val'
+./include/asm-generic/bitops/generic-non-atomic.h:172:19: warning: unreplaced symbol 'val'
+./include/asm-generic/bitops/generic-non-atomic.h:172:25: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:172:25: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:172:25: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:172:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:172:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:172:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:28:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:28:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:28:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:30:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:30:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:30:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:31:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:31:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:31:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:33:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:33:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:33:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:33:16: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:33:16: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:33:16: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:37:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:37:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:37:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:39:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:39:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:39:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:40:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:40:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:40:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:42:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:42:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:42:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:42:16: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:42:16: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:42:16: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:55:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:55:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:55:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:57:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:57:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:57:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:58:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:58:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:58:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:60:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:60:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:60:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:60:15: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:60:15: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:60:15: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:73:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:73:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:73:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:75:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:75:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:75:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:76:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:76:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:76:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:77:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:77:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:77:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:79:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:79:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:79:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:79:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:79:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:79:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:79:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:79:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:79:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:80:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:80:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:80:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:80:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:80:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:80:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:80:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:80:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:80:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:93:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:93:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:93:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:95:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:95:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:95:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:96:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:96:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:96:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:97:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:97:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:97:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:99:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:99:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:99:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:99:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:99:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:99:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:99:21: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:99:21: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:99:21: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/instrumented-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:112:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:112:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:112:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:115:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:115:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:115:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:127:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:127:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:127:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:130:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:130:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:130:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:139:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:139:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:139:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:142:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:142:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:142:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:26:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:26:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:26:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:42:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:42:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:42:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:58:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:58:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:58:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:97:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:97:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:97:1: warning: unreplaced symbol 'return'



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

* [Intel-gfx] ✓ Fi.CI.BAT: success for Add DSC PPS readout (rev2)
  2023-07-13  6:29 [Intel-gfx] [PATCH v2 0/6] Add DSC PPS readout Suraj Kandpal
                   ` (7 preceding siblings ...)
  2023-07-13  9:36 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
@ 2023-07-13  9:49 ` Patchwork
  2023-07-13 12:30 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
  2023-07-13 13:15 ` [Intel-gfx] [PATCH v2 0/6] Add DSC PPS readout Jani Nikula
  10 siblings, 0 replies; 19+ messages in thread
From: Patchwork @ 2023-07-13  9:49 UTC (permalink / raw)
  To: Suraj Kandpal; +Cc: intel-gfx

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

== Series Details ==

Series: Add DSC PPS readout (rev2)
URL   : https://patchwork.freedesktop.org/series/120456/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_13380 -> Patchwork_120456v2
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (18 -> 41)
------------------------------

  Additional (23): fi-kbl-soraka fi-rkl-11600 fi-apl-guc bat-rpls-1 fi-blb-e6850 bat-adlm-1 bat-dg2-9 fi-ilk-650 bat-atsm-1 fi-ivb-3770 bat-jsl-3 fi-skl-guc fi-glk-j4005 bat-jsl-1 bat-mtlp-8 bat-mtlp-6 bat-adlp-11 fi-tgl-1115g4 fi-cfl-guc fi-kbl-guc fi-kbl-x1275 fi-cfl-8109u fi-kbl-8809g 

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

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

### IGT changes ###

#### Issues hit ####

  * igt@core_auth@basic-auth:
    - bat-adlp-11:        NOTRUN -> [ABORT][1] ([i915#8011])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-adlp-11/igt@core_auth@basic-auth.html

  * igt@core_hotunplug@unbind-rebind:
    - fi-kbl-8809g:       NOTRUN -> [DMESG-WARN][2] ([i915#8298])
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-kbl-8809g/igt@core_hotunplug@unbind-rebind.html

  * igt@debugfs_test@basic-hwmon:
    - bat-mtlp-8:         NOTRUN -> [SKIP][3] ([i915#7456])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-8/igt@debugfs_test@basic-hwmon.html
    - fi-rkl-11600:       NOTRUN -> [SKIP][4] ([i915#7456])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-rkl-11600/igt@debugfs_test@basic-hwmon.html
    - bat-jsl-3:          NOTRUN -> [SKIP][5] ([i915#7456])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-jsl-3/igt@debugfs_test@basic-hwmon.html
    - bat-adlm-1:         NOTRUN -> [SKIP][6] ([i915#7456])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-adlm-1/igt@debugfs_test@basic-hwmon.html
    - bat-jsl-1:          NOTRUN -> [SKIP][7] ([i915#7456])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-jsl-1/igt@debugfs_test@basic-hwmon.html
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][8] ([i915#7456])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-tgl-1115g4/igt@debugfs_test@basic-hwmon.html
    - bat-rpls-1:         NOTRUN -> [SKIP][9] ([i915#7456])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-rpls-1/igt@debugfs_test@basic-hwmon.html
    - bat-mtlp-6:         NOTRUN -> [SKIP][10] ([i915#7456])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-6/igt@debugfs_test@basic-hwmon.html

  * igt@fbdev@eof:
    - bat-adlm-1:         NOTRUN -> [SKIP][11] ([i915#2582]) +3 similar issues
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-adlm-1/igt@fbdev@eof.html

  * igt@fbdev@info:
    - bat-dg2-9:          NOTRUN -> [SKIP][12] ([i915#1849] / [i915#2582])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-dg2-9/igt@fbdev@info.html
    - fi-kbl-x1275:       NOTRUN -> [SKIP][13] ([fdo#109271] / [i915#1849])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-kbl-x1275/igt@fbdev@info.html
    - fi-kbl-guc:         NOTRUN -> [SKIP][14] ([fdo#109271] / [i915#1849])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-kbl-guc/igt@fbdev@info.html
    - bat-rpls-1:         NOTRUN -> [SKIP][15] ([i915#1849] / [i915#2582])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-rpls-1/igt@fbdev@info.html
    - fi-kbl-8809g:       NOTRUN -> [SKIP][16] ([fdo#109271] / [i915#1849])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-kbl-8809g/igt@fbdev@info.html
    - bat-adlm-1:         NOTRUN -> [SKIP][17] ([i915#1849] / [i915#2582])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-adlm-1/igt@fbdev@info.html
    - bat-mtlp-6:         NOTRUN -> [SKIP][18] ([i915#1849] / [i915#2582])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-6/igt@fbdev@info.html

  * igt@fbdev@nullptr:
    - bat-dg2-9:          NOTRUN -> [SKIP][19] ([i915#2582]) +3 similar issues
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-dg2-9/igt@fbdev@nullptr.html

  * igt@fbdev@write:
    - bat-rpls-1:         NOTRUN -> [SKIP][20] ([i915#2582]) +3 similar issues
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-rpls-1/igt@fbdev@write.html
    - bat-mtlp-6:         NOTRUN -> [SKIP][21] ([i915#2582]) +3 similar issues
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-6/igt@fbdev@write.html

  * igt@gem_exec_suspend@basic-s0@smem:
    - bat-atsm-1:         NOTRUN -> [DMESG-WARN][22] ([i915#8841]) +3 similar issues
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-atsm-1/igt@gem_exec_suspend@basic-s0@smem.html

  * igt@gem_exec_suspend@basic-s3@lmem0:
    - bat-atsm-1:         NOTRUN -> [DMESG-WARN][23] ([i915#8504] / [i915#8841])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-atsm-1/igt@gem_exec_suspend@basic-s3@lmem0.html

  * igt@gem_huc_copy@huc-copy:
    - fi-cfl-8109u:       NOTRUN -> [SKIP][24] ([fdo#109271] / [i915#2190])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-cfl-8109u/igt@gem_huc_copy@huc-copy.html
    - fi-kbl-8809g:       NOTRUN -> [SKIP][25] ([fdo#109271] / [i915#2190])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-kbl-8809g/igt@gem_huc_copy@huc-copy.html
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][26] ([i915#2190])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-tgl-1115g4/igt@gem_huc_copy@huc-copy.html
    - bat-jsl-1:          NOTRUN -> [SKIP][27] ([i915#2190])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-jsl-1/igt@gem_huc_copy@huc-copy.html
    - fi-rkl-11600:       NOTRUN -> [SKIP][28] ([i915#2190])
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-rkl-11600/igt@gem_huc_copy@huc-copy.html
    - bat-jsl-3:          NOTRUN -> [SKIP][29] ([i915#2190])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-jsl-3/igt@gem_huc_copy@huc-copy.html
    - fi-glk-j4005:       NOTRUN -> [SKIP][30] ([fdo#109271] / [i915#2190])
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-glk-j4005/igt@gem_huc_copy@huc-copy.html
    - fi-kbl-x1275:       NOTRUN -> [SKIP][31] ([fdo#109271] / [i915#2190])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-kbl-x1275/igt@gem_huc_copy@huc-copy.html
    - fi-kbl-soraka:      NOTRUN -> [SKIP][32] ([fdo#109271] / [i915#2190])
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-kbl-soraka/igt@gem_huc_copy@huc-copy.html

  * igt@gem_lmem_swapping@basic:
    - fi-apl-guc:         NOTRUN -> [SKIP][33] ([fdo#109271] / [i915#4613]) +3 similar issues
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-apl-guc/igt@gem_lmem_swapping@basic.html
    - bat-jsl-3:          NOTRUN -> [SKIP][34] ([i915#4613]) +3 similar issues
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-jsl-3/igt@gem_lmem_swapping@basic.html
    - fi-glk-j4005:       NOTRUN -> [SKIP][35] ([fdo#109271] / [i915#4613]) +3 similar issues
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-glk-j4005/igt@gem_lmem_swapping@basic.html
    - fi-skl-guc:         NOTRUN -> [SKIP][36] ([fdo#109271] / [i915#4613]) +3 similar issues
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-skl-guc/igt@gem_lmem_swapping@basic.html
    - fi-kbl-soraka:      NOTRUN -> [SKIP][37] ([fdo#109271] / [i915#4613]) +3 similar issues
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-kbl-soraka/igt@gem_lmem_swapping@basic.html
    - fi-kbl-8809g:       NOTRUN -> [SKIP][38] ([fdo#109271] / [i915#4613]) +3 similar issues
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-kbl-8809g/igt@gem_lmem_swapping@basic.html

  * igt@gem_lmem_swapping@parallel-random-engines:
    - bat-adlm-1:         NOTRUN -> [SKIP][39] ([i915#4613]) +3 similar issues
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-adlm-1/igt@gem_lmem_swapping@parallel-random-engines.html
    - fi-rkl-11600:       NOTRUN -> [SKIP][40] ([i915#4613]) +3 similar issues
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-rkl-11600/igt@gem_lmem_swapping@parallel-random-engines.html
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][41] ([i915#4613]) +3 similar issues
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-tgl-1115g4/igt@gem_lmem_swapping@parallel-random-engines.html

  * igt@gem_lmem_swapping@random-engines:
    - bat-rpls-1:         NOTRUN -> [SKIP][42] ([i915#4613]) +3 similar issues
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-rpls-1/igt@gem_lmem_swapping@random-engines.html

  * igt@gem_lmem_swapping@verify-random:
    - fi-cfl-guc:         NOTRUN -> [SKIP][43] ([fdo#109271] / [i915#4613]) +3 similar issues
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-cfl-guc/igt@gem_lmem_swapping@verify-random.html
    - bat-mtlp-6:         NOTRUN -> [SKIP][44] ([i915#4613]) +3 similar issues
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-6/igt@gem_lmem_swapping@verify-random.html
    - fi-kbl-x1275:       NOTRUN -> [SKIP][45] ([fdo#109271] / [i915#4613]) +3 similar issues
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-kbl-x1275/igt@gem_lmem_swapping@verify-random.html
    - fi-cfl-8109u:       NOTRUN -> [SKIP][46] ([fdo#109271] / [i915#4613]) +3 similar issues
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-cfl-8109u/igt@gem_lmem_swapping@verify-random.html
    - bat-mtlp-8:         NOTRUN -> [SKIP][47] ([i915#4613]) +3 similar issues
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-8/igt@gem_lmem_swapping@verify-random.html
    - fi-kbl-guc:         NOTRUN -> [SKIP][48] ([fdo#109271] / [i915#4613]) +3 similar issues
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-kbl-guc/igt@gem_lmem_swapping@verify-random.html
    - bat-jsl-1:          NOTRUN -> [SKIP][49] ([i915#4613]) +3 similar issues
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-jsl-1/igt@gem_lmem_swapping@verify-random.html

  * igt@gem_mmap@basic:
    - bat-atsm-1:         NOTRUN -> [SKIP][50] ([i915#4083])
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-atsm-1/igt@gem_mmap@basic.html
    - bat-dg2-9:          NOTRUN -> [SKIP][51] ([i915#4083])
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-dg2-9/igt@gem_mmap@basic.html
    - bat-mtlp-8:         NOTRUN -> [SKIP][52] ([i915#4083])
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-8/igt@gem_mmap@basic.html
    - bat-mtlp-6:         NOTRUN -> [SKIP][53] ([i915#4083])
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-6/igt@gem_mmap@basic.html

  * igt@gem_mmap_gtt@basic:
    - bat-dg2-9:          NOTRUN -> [SKIP][54] ([i915#4077]) +2 similar issues
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-dg2-9/igt@gem_mmap_gtt@basic.html
    - bat-mtlp-8:         NOTRUN -> [SKIP][55] ([i915#4077]) +3 similar issues
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-8/igt@gem_mmap_gtt@basic.html

  * igt@gem_render_tiled_blits@basic:
    - bat-dg2-9:          NOTRUN -> [SKIP][56] ([i915#4079]) +1 similar issue
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-dg2-9/igt@gem_render_tiled_blits@basic.html
    - bat-mtlp-8:         NOTRUN -> [SKIP][57] ([i915#4079]) +1 similar issue
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-8/igt@gem_render_tiled_blits@basic.html

  * igt@gem_tiled_blits@basic:
    - bat-mtlp-6:         NOTRUN -> [SKIP][58] ([i915#4077]) +2 similar issues
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-6/igt@gem_tiled_blits@basic.html

  * igt@gem_tiled_fence_blits@basic:
    - bat-atsm-1:         NOTRUN -> [SKIP][59] ([i915#4077]) +2 similar issues
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-atsm-1/igt@gem_tiled_fence_blits@basic.html

  * igt@gem_tiled_pread_basic:
    - fi-rkl-11600:       NOTRUN -> [SKIP][60] ([i915#3282])
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-rkl-11600/igt@gem_tiled_pread_basic.html
    - bat-atsm-1:         NOTRUN -> [SKIP][61] ([i915#4079]) +1 similar issue
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-atsm-1/igt@gem_tiled_pread_basic.html
    - bat-adlm-1:         NOTRUN -> [SKIP][62] ([i915#3282])
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-adlm-1/igt@gem_tiled_pread_basic.html
    - bat-mtlp-6:         NOTRUN -> [SKIP][63] ([i915#4079]) +1 similar issue
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-6/igt@gem_tiled_pread_basic.html
    - bat-rpls-1:         NOTRUN -> [SKIP][64] ([i915#3282])
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-rpls-1/igt@gem_tiled_pread_basic.html

  * igt@i915_module_load@load:
    - bat-adlp-11:        NOTRUN -> [DMESG-WARN][65] ([i915#4423])
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-adlp-11/igt@i915_module_load@load.html

  * igt@i915_pm_backlight@basic-brightness:
    - bat-adlm-1:         NOTRUN -> [SKIP][66] ([i915#7561])
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-adlm-1/igt@i915_pm_backlight@basic-brightness.html
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][67] ([i915#3546] / [i915#7561])
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-tgl-1115g4/igt@i915_pm_backlight@basic-brightness.html
    - bat-rpls-1:         NOTRUN -> [SKIP][68] ([i915#7561])
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-rpls-1/igt@i915_pm_backlight@basic-brightness.html
    - bat-mtlp-6:         NOTRUN -> [SKIP][69] ([i915#3546])
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-6/igt@i915_pm_backlight@basic-brightness.html
    - fi-rkl-11600:       NOTRUN -> [SKIP][70] ([i915#7561])
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-rkl-11600/igt@i915_pm_backlight@basic-brightness.html
    - bat-dg2-9:          NOTRUN -> [SKIP][71] ([i915#5354] / [i915#7561])
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-dg2-9/igt@i915_pm_backlight@basic-brightness.html

  * igt@i915_pm_rpm@basic-pci-d3-state:
    - fi-kbl-guc:         NOTRUN -> [SKIP][72] ([fdo#109271]) +34 similar issues
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-kbl-guc/igt@i915_pm_rpm@basic-pci-d3-state.html
    - fi-cfl-8700k:       [PASS][73] -> [FAIL][74] ([i915#7940])
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/fi-cfl-8700k/igt@i915_pm_rpm@basic-pci-d3-state.html
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-cfl-8700k/igt@i915_pm_rpm@basic-pci-d3-state.html

  * igt@i915_pm_rpm@basic-rte:
    - fi-cfl-guc:         NOTRUN -> [FAIL][75] ([i915#7940]) +2 similar issues
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-cfl-guc/igt@i915_pm_rpm@basic-rte.html
    - fi-kbl-8809g:       NOTRUN -> [FAIL][76] ([i915#8843])
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-kbl-8809g/igt@i915_pm_rpm@basic-rte.html
    - fi-kbl-guc:         NOTRUN -> [FAIL][77] ([i915#7940])
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-kbl-guc/igt@i915_pm_rpm@basic-rte.html
    - fi-skl-guc:         NOTRUN -> [FAIL][78] ([i915#7940]) +1 similar issue
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-skl-guc/igt@i915_pm_rpm@basic-rte.html

  * igt@i915_pm_rpm@module-reload:
    - fi-blb-e6850:       NOTRUN -> [SKIP][79] ([fdo#109271]) +38 similar issues
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-blb-e6850/igt@i915_pm_rpm@module-reload.html
    - fi-rkl-11600:       NOTRUN -> [FAIL][80] ([i915#7940])
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-rkl-11600/igt@i915_pm_rpm@module-reload.html
    - fi-cfl-8109u:       NOTRUN -> [FAIL][81] ([i915#7940])
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-cfl-8109u/igt@i915_pm_rpm@module-reload.html
    - fi-tgl-1115g4:      NOTRUN -> [FAIL][82] ([i915#7940])
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-tgl-1115g4/igt@i915_pm_rpm@module-reload.html

  * igt@i915_pm_rps@basic-api:
    - bat-atsm-1:         NOTRUN -> [SKIP][83] ([i915#6621])
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-atsm-1/igt@i915_pm_rps@basic-api.html
    - bat-dg2-9:          NOTRUN -> [SKIP][84] ([i915#6621])
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-dg2-9/igt@i915_pm_rps@basic-api.html
    - bat-mtlp-8:         NOTRUN -> [SKIP][85] ([i915#6621])
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-8/igt@i915_pm_rps@basic-api.html
    - bat-adlm-1:         NOTRUN -> [SKIP][86] ([i915#6621])
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-adlm-1/igt@i915_pm_rps@basic-api.html
    - bat-rpls-1:         NOTRUN -> [SKIP][87] ([i915#6621])
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-rpls-1/igt@i915_pm_rps@basic-api.html
    - bat-mtlp-6:         NOTRUN -> [SKIP][88] ([i915#6621])
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-6/igt@i915_pm_rps@basic-api.html

  * igt@i915_selftest@live@gt_mocs:
    - bat-mtlp-8:         NOTRUN -> [DMESG-FAIL][89] ([i915#7059])
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-8/igt@i915_selftest@live@gt_mocs.html
    - bat-mtlp-6:         NOTRUN -> [DMESG-FAIL][90] ([i915#7059])
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-6/igt@i915_selftest@live@gt_mocs.html

  * igt@i915_selftest@live@gt_pm:
    - fi-kbl-soraka:      NOTRUN -> [DMESG-FAIL][91] ([i915#1886] / [i915#7913])
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-kbl-soraka/igt@i915_selftest@live@gt_pm.html

  * igt@i915_selftest@live@hangcheck:
    - bat-dg2-11:         [PASS][92] -> [ABORT][93] ([i915#7913])
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/bat-dg2-11/igt@i915_selftest@live@hangcheck.html
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-dg2-11/igt@i915_selftest@live@hangcheck.html

  * igt@i915_selftest@live@slpc:
    - bat-rpls-2:         NOTRUN -> [DMESG-WARN][94] ([i915#6367])
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-rpls-2/igt@i915_selftest@live@slpc.html

  * igt@i915_suspend@basic-s2idle-without-i915:
    - fi-ivb-3770:        NOTRUN -> [DMESG-WARN][95] ([i915#8841]) +6 similar issues
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-ivb-3770/igt@i915_suspend@basic-s2idle-without-i915.html

  * igt@i915_suspend@basic-s3-without-i915:
    - fi-tgl-1115g4:      NOTRUN -> [INCOMPLETE][96] ([i915#7443] / [i915#8102])
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-tgl-1115g4/igt@i915_suspend@basic-s3-without-i915.html
    - bat-atsm-1:         NOTRUN -> [SKIP][97] ([i915#6645])
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-atsm-1/igt@i915_suspend@basic-s3-without-i915.html
    - bat-mtlp-6:         NOTRUN -> [SKIP][98] ([i915#6645])
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-6/igt@i915_suspend@basic-s3-without-i915.html
    - bat-mtlp-8:         NOTRUN -> [SKIP][99] ([i915#6645])
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-8/igt@i915_suspend@basic-s3-without-i915.html
    - bat-rpls-1:         NOTRUN -> [ABORT][100] ([i915#6687] / [i915#7978] / [i915#8668])
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-rpls-1/igt@i915_suspend@basic-s3-without-i915.html

  * igt@kms_addfb_basic@addfb25-x-tiled-legacy:
    - bat-mtlp-6:         NOTRUN -> [SKIP][101] ([i915#4212]) +8 similar issues
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-6/igt@kms_addfb_basic@addfb25-x-tiled-legacy.html

  * igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
    - bat-dg2-9:          NOTRUN -> [SKIP][102] ([i915#5190])
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-dg2-9/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
    - bat-mtlp-8:         NOTRUN -> [SKIP][103] ([i915#5190])
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-8/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
    - bat-mtlp-6:         NOTRUN -> [SKIP][104] ([i915#5190])
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-6/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html

  * igt@kms_addfb_basic@basic-y-tiled-legacy:
    - bat-dg2-9:          NOTRUN -> [SKIP][105] ([i915#4215] / [i915#5190])
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-dg2-9/igt@kms_addfb_basic@basic-y-tiled-legacy.html
    - bat-mtlp-8:         NOTRUN -> [SKIP][106] ([i915#4212]) +8 similar issues
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-8/igt@kms_addfb_basic@basic-y-tiled-legacy.html

  * igt@kms_addfb_basic@framebuffer-vs-set-tiling:
    - bat-dg2-9:          NOTRUN -> [SKIP][107] ([i915#4212]) +7 similar issues
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-dg2-9/igt@kms_addfb_basic@framebuffer-vs-set-tiling.html

  * igt@kms_addfb_basic@size-max:
    - bat-atsm-1:         NOTRUN -> [SKIP][108] ([i915#6077]) +36 similar issues
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-atsm-1/igt@kms_addfb_basic@size-max.html

  * igt@kms_addfb_basic@too-high:
    - fi-kbl-8809g:       NOTRUN -> [FAIL][109] ([i915#8296]) +2 similar issues
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-kbl-8809g/igt@kms_addfb_basic@too-high.html

  * igt@kms_chamelium_edid@dp-edid-read:
    - fi-ilk-650:         NOTRUN -> [SKIP][110] ([fdo#109271]) +29 similar issues
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-ilk-650/igt@kms_chamelium_edid@dp-edid-read.html
    - bat-jsl-1:          NOTRUN -> [SKIP][111] ([i915#7828]) +8 similar issues
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-jsl-1/igt@kms_chamelium_edid@dp-edid-read.html
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][112] ([i915#7828]) +7 similar issues
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-tgl-1115g4/igt@kms_chamelium_edid@dp-edid-read.html

  * igt@kms_chamelium_edid@hdmi-edid-read:
    - fi-cfl-guc:         NOTRUN -> [SKIP][113] ([fdo#109271]) +18 similar issues
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-cfl-guc/igt@kms_chamelium_edid@hdmi-edid-read.html
    - bat-mtlp-6:         NOTRUN -> [SKIP][114] ([i915#7828]) +8 similar issues
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-6/igt@kms_chamelium_edid@hdmi-edid-read.html

  * igt@kms_chamelium_frames@dp-crc-fast:
    - bat-adlm-1:         NOTRUN -> [SKIP][115] ([i915#7828]) +8 similar issues
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-adlm-1/igt@kms_chamelium_frames@dp-crc-fast.html

  * igt@kms_chamelium_frames@hdmi-crc-fast:
    - fi-kbl-soraka:      NOTRUN -> [SKIP][116] ([fdo#109271]) +15 similar issues
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-kbl-soraka/igt@kms_chamelium_frames@hdmi-crc-fast.html
    - fi-cfl-8109u:       NOTRUN -> [SKIP][117] ([fdo#109271]) +18 similar issues
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-cfl-8109u/igt@kms_chamelium_frames@hdmi-crc-fast.html
    - bat-mtlp-8:         NOTRUN -> [SKIP][118] ([i915#7828]) +8 similar issues
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-8/igt@kms_chamelium_frames@hdmi-crc-fast.html

  * igt@kms_chamelium_hpd@common-hpd-after-suspend:
    - bat-rpls-2:         NOTRUN -> [SKIP][119] ([i915#7828])
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-rpls-2/igt@kms_chamelium_hpd@common-hpd-after-suspend.html

  * igt@kms_chamelium_hpd@dp-hpd-fast:
    - fi-rkl-11600:       NOTRUN -> [SKIP][120] ([i915#7828]) +8 similar issues
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-rkl-11600/igt@kms_chamelium_hpd@dp-hpd-fast.html

  * igt@kms_chamelium_hpd@hdmi-hpd-fast:
    - bat-rpls-1:         NOTRUN -> [SKIP][121] ([i915#7828]) +7 similar issues
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-rpls-1/igt@kms_chamelium_hpd@hdmi-hpd-fast.html

  * igt@kms_chamelium_hpd@vga-hpd-fast:
    - fi-apl-guc:         NOTRUN -> [SKIP][122] ([fdo#109271]) +22 similar issues
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-apl-guc/igt@kms_chamelium_hpd@vga-hpd-fast.html
    - bat-jsl-3:          NOTRUN -> [SKIP][123] ([i915#7828]) +8 similar issues
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-jsl-3/igt@kms_chamelium_hpd@vga-hpd-fast.html
    - bat-dg2-9:          NOTRUN -> [SKIP][124] ([i915#7828]) +8 similar issues
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-dg2-9/igt@kms_chamelium_hpd@vga-hpd-fast.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
    - fi-glk-j4005:       NOTRUN -> [SKIP][125] ([fdo#109271]) +18 similar issues
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-glk-j4005/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][126] ([i915#4103]) +1 similar issue
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-tgl-1115g4/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
    - fi-rkl-11600:       NOTRUN -> [SKIP][127] ([i915#4103]) +1 similar issue
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-rkl-11600/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
    - bat-jsl-3:          NOTRUN -> [SKIP][128] ([i915#4103]) +1 similar issue
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-jsl-3/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
    - bat-mtlp-8:         NOTRUN -> [SKIP][129] ([i915#4213]) +1 similar issue
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-8/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
    - bat-jsl-1:          NOTRUN -> [SKIP][130] ([i915#4103]) +1 similar issue
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-jsl-1/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html

  * igt@kms_cursor_legacy@basic-flip-after-cursor-atomic:
    - bat-atsm-1:         NOTRUN -> [SKIP][131] ([i915#6078]) +19 similar issues
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-atsm-1/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
    - bat-dg2-9:          NOTRUN -> [SKIP][132] ([i915#1845] / [i915#5354]) +13 similar issues
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-dg2-9/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html

  * igt@kms_cursor_legacy@basic-flip-after-cursor-legacy:
    - bat-rpls-1:         NOTRUN -> [SKIP][133] ([i915#1845]) +14 similar issues
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-rpls-1/igt@kms_cursor_legacy@basic-flip-after-cursor-legacy.html
    - bat-mtlp-6:         NOTRUN -> [SKIP][134] ([i915#1845]) +10 similar issues
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-6/igt@kms_cursor_legacy@basic-flip-after-cursor-legacy.html

  * igt@kms_cursor_legacy@basic-flip-after-cursor-varying-size:
    - bat-adlm-1:         NOTRUN -> [SKIP][135] ([i915#1845]) +15 similar issues
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-adlm-1/igt@kms_cursor_legacy@basic-flip-after-cursor-varying-size.html

  * igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size:
    - fi-kbl-guc:         NOTRUN -> [SKIP][136] ([fdo#109271] / [i915#1845]) +8 similar issues
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-kbl-guc/igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size.html

  * igt@kms_flip@basic-flip-vs-dpms:
    - bat-mtlp-6:         NOTRUN -> [SKIP][137] ([i915#3637]) +3 similar issues
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-6/igt@kms_flip@basic-flip-vs-dpms.html
    - bat-dg2-9:          NOTRUN -> [SKIP][138] ([i915#4098] / [i915#5354]) +3 similar issues
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-dg2-9/igt@kms_flip@basic-flip-vs-dpms.html

  * igt@kms_flip@basic-flip-vs-modeset:
    - bat-rpls-1:         NOTRUN -> [SKIP][139] ([i915#3637]) +3 similar issues
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-rpls-1/igt@kms_flip@basic-flip-vs-modeset.html

  * igt@kms_flip@basic-plain-flip:
    - bat-atsm-1:         NOTRUN -> [SKIP][140] ([i915#6166]) +3 similar issues
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-atsm-1/igt@kms_flip@basic-plain-flip.html
    - bat-adlm-1:         NOTRUN -> [SKIP][141] ([i915#3637]) +3 similar issues
   [141]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-adlm-1/igt@kms_flip@basic-plain-flip.html

  * igt@kms_force_connector_basic@force-connector-state:
    - fi-kbl-8809g:       NOTRUN -> [DMESG-FAIL][142] ([i915#8299])
   [142]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-kbl-8809g/igt@kms_force_connector_basic@force-connector-state.html

  * igt@kms_force_connector_basic@force-edid:
    - fi-kbl-8809g:       NOTRUN -> [CRASH][143] ([i915#8299])
   [143]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-kbl-8809g/igt@kms_force_connector_basic@force-edid.html

  * igt@kms_force_connector_basic@force-load-detect:
    - bat-adlm-1:         NOTRUN -> [SKIP][144] ([fdo#109285])
   [144]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-adlm-1/igt@kms_force_connector_basic@force-load-detect.html
    - fi-rkl-11600:       NOTRUN -> [SKIP][145] ([fdo#109285] / [i915#4098])
   [145]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-rkl-11600/igt@kms_force_connector_basic@force-load-detect.html
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][146] ([fdo#109285])
   [146]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-tgl-1115g4/igt@kms_force_connector_basic@force-load-detect.html
    - bat-mtlp-6:         NOTRUN -> [SKIP][147] ([fdo#109285])
   [147]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-6/igt@kms_force_connector_basic@force-load-detect.html
    - bat-jsl-3:          NOTRUN -> [SKIP][148] ([fdo#109285])
   [148]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-jsl-3/igt@kms_force_connector_basic@force-load-detect.html
    - bat-dg2-9:          NOTRUN -> [SKIP][149] ([fdo#109285])
   [149]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-dg2-9/igt@kms_force_connector_basic@force-load-detect.html
    - bat-mtlp-8:         NOTRUN -> [SKIP][150] ([fdo#109285])
   [150]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-8/igt@kms_force_connector_basic@force-load-detect.html
    - bat-jsl-1:          NOTRUN -> [SKIP][151] ([fdo#109285])
   [151]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-jsl-1/igt@kms_force_connector_basic@force-load-detect.html
    - bat-rpls-1:         NOTRUN -> [SKIP][152] ([fdo#109285])
   [152]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-rpls-1/igt@kms_force_connector_basic@force-load-detect.html

  * igt@kms_force_connector_basic@prune-stale-modes:
    - bat-atsm-1:         NOTRUN -> [SKIP][153] ([i915#6093]) +3 similar issues
   [153]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-atsm-1/igt@kms_force_connector_basic@prune-stale-modes.html
    - bat-dg2-9:          NOTRUN -> [SKIP][154] ([i915#5274])
   [154]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-dg2-9/igt@kms_force_connector_basic@prune-stale-modes.html
    - bat-mtlp-8:         NOTRUN -> [SKIP][155] ([i915#5274])
   [155]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-8/igt@kms_force_connector_basic@prune-stale-modes.html
    - bat-mtlp-6:         NOTRUN -> [SKIP][156] ([i915#5274])
   [156]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-6/igt@kms_force_connector_basic@prune-stale-modes.html

  * igt@kms_frontbuffer_tracking@basic:
    - bat-adlm-1:         NOTRUN -> [SKIP][157] ([i915#1849])
   [157]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-adlm-1/igt@kms_frontbuffer_tracking@basic.html
    - bat-rpls-1:         NOTRUN -> [SKIP][158] ([i915#1849])
   [158]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-rpls-1/igt@kms_frontbuffer_tracking@basic.html
    - bat-mtlp-6:         NOTRUN -> [SKIP][159] ([i915#4342])
   [159]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-6/igt@kms_frontbuffer_tracking@basic.html

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12:
    - bat-dg2-9:          NOTRUN -> [SKIP][160] ([i915#5354]) +2 similar issues
   [160]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-dg2-9/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12.html

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-a-hdmi-a-2:
    - fi-skl-guc:         NOTRUN -> [SKIP][161] ([fdo#109271]) +20 similar issues
   [161]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-skl-guc/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-a-hdmi-a-2.html

  * igt@kms_pipe_crc_basic@hang-read-crc:
    - bat-atsm-1:         NOTRUN -> [SKIP][162] ([i915#1836]) +6 similar issues
   [162]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-atsm-1/igt@kms_pipe_crc_basic@hang-read-crc.html

  * igt@kms_pipe_crc_basic@read-crc:
    - fi-kbl-x1275:       NOTRUN -> [SKIP][163] ([fdo#109271]) +43 similar issues
   [163]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-kbl-x1275/igt@kms_pipe_crc_basic@read-crc.html

  * igt@kms_pipe_crc_basic@suspend-read-crc:
    - bat-mtlp-6:         NOTRUN -> [SKIP][164] ([i915#1845] / [i915#4078]) +4 similar issues
   [164]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-6/igt@kms_pipe_crc_basic@suspend-read-crc.html
    - bat-rpls-2:         NOTRUN -> [SKIP][165] ([i915#1845])
   [165]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-rpls-2/igt@kms_pipe_crc_basic@suspend-read-crc.html

  * igt@kms_prop_blob@basic:
    - bat-atsm-1:         NOTRUN -> [SKIP][166] ([i915#7357])
   [166]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-atsm-1/igt@kms_prop_blob@basic.html

  * igt@kms_psr@cursor_plane_move:
    - fi-kbl-8809g:       NOTRUN -> [SKIP][167] ([fdo#109271]) +62 similar issues
   [167]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-kbl-8809g/igt@kms_psr@cursor_plane_move.html
    - fi-ivb-3770:        NOTRUN -> [SKIP][168] ([fdo#109271]) +27 similar issues
   [168]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-ivb-3770/igt@kms_psr@cursor_plane_move.html
    - bat-adlm-1:         NOTRUN -> [SKIP][169] ([i915#1072]) +3 similar issues
   [169]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-adlm-1/igt@kms_psr@cursor_plane_move.html
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][170] ([fdo#110189]) +3 similar issues
   [170]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-tgl-1115g4/igt@kms_psr@cursor_plane_move.html
    - bat-rpls-1:         NOTRUN -> [SKIP][171] ([i915#1072]) +3 similar issues
   [171]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-rpls-1/igt@kms_psr@cursor_plane_move.html
    - bat-mtlp-6:         NOTRUN -> [SKIP][172] ([i915#1072]) +3 similar issues
   [172]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-6/igt@kms_psr@cursor_plane_move.html

  * igt@kms_psr@primary_page_flip:
    - bat-rplp-1:         NOTRUN -> [SKIP][173] ([i915#1072]) +1 similar issue
   [173]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-rplp-1/igt@kms_psr@primary_page_flip.html

  * igt@kms_psr@sprite_plane_onoff:
    - fi-rkl-11600:       NOTRUN -> [SKIP][174] ([i915#1072]) +3 similar issues
   [174]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-rkl-11600/igt@kms_psr@sprite_plane_onoff.html
    - bat-atsm-1:         NOTRUN -> [SKIP][175] ([i915#1072]) +3 similar issues
   [175]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-atsm-1/igt@kms_psr@sprite_plane_onoff.html
    - bat-dg2-9:          NOTRUN -> [SKIP][176] ([i915#1072]) +3 similar issues
   [176]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-dg2-9/igt@kms_psr@sprite_plane_onoff.html
    - bat-rplp-1:         NOTRUN -> [ABORT][177] ([i915#8442] / [i915#8668] / [i915#8712])
   [177]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-rplp-1/igt@kms_psr@sprite_plane_onoff.html

  * igt@kms_setmode@basic-clone-single-crtc:
    - fi-rkl-11600:       NOTRUN -> [SKIP][178] ([i915#3555] / [i915#4098])
   [178]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-rkl-11600/igt@kms_setmode@basic-clone-single-crtc.html
    - bat-atsm-1:         NOTRUN -> [SKIP][179] ([i915#6094])
   [179]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-atsm-1/igt@kms_setmode@basic-clone-single-crtc.html
    - bat-jsl-3:          NOTRUN -> [SKIP][180] ([i915#3555])
   [180]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-jsl-3/igt@kms_setmode@basic-clone-single-crtc.html
    - bat-dg2-9:          NOTRUN -> [SKIP][181] ([i915#3555])
   [181]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-dg2-9/igt@kms_setmode@basic-clone-single-crtc.html
    - bat-mtlp-8:         NOTRUN -> [SKIP][182] ([i915#8809])
   [182]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-8/igt@kms_setmode@basic-clone-single-crtc.html
    - bat-adlm-1:         NOTRUN -> [SKIP][183] ([i915#3555])
   [183]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-adlm-1/igt@kms_setmode@basic-clone-single-crtc.html
    - bat-jsl-1:          NOTRUN -> [SKIP][184] ([i915#3555])
   [184]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-jsl-1/igt@kms_setmode@basic-clone-single-crtc.html
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][185] ([i915#3555])
   [185]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-tgl-1115g4/igt@kms_setmode@basic-clone-single-crtc.html
    - bat-rpls-1:         NOTRUN -> [SKIP][186] ([i915#3555])
   [186]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-rpls-1/igt@kms_setmode@basic-clone-single-crtc.html
    - bat-mtlp-6:         NOTRUN -> [SKIP][187] ([i915#8809])
   [187]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-6/igt@kms_setmode@basic-clone-single-crtc.html

  * igt@prime_vgem@basic-fence-flip:
    - bat-atsm-1:         NOTRUN -> [SKIP][188] ([fdo#109295] / [i915#6078])
   [188]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-atsm-1/igt@prime_vgem@basic-fence-flip.html
    - bat-dg2-9:          NOTRUN -> [SKIP][189] ([i915#3708] / [i915#5354])
   [189]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-dg2-9/igt@prime_vgem@basic-fence-flip.html
    - bat-adlm-1:         NOTRUN -> [SKIP][190] ([i915#1845] / [i915#3708])
   [190]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-adlm-1/igt@prime_vgem@basic-fence-flip.html
    - bat-rpls-1:         NOTRUN -> [SKIP][191] ([fdo#109295] / [i915#1845] / [i915#3708])
   [191]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-rpls-1/igt@prime_vgem@basic-fence-flip.html
    - bat-mtlp-6:         NOTRUN -> [SKIP][192] ([i915#1845] / [i915#3708])
   [192]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-6/igt@prime_vgem@basic-fence-flip.html

  * igt@prime_vgem@basic-fence-mmap:
    - bat-atsm-1:         NOTRUN -> [SKIP][193] ([fdo#109295] / [i915#4077]) +1 similar issue
   [193]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-atsm-1/igt@prime_vgem@basic-fence-mmap.html
    - bat-mtlp-6:         NOTRUN -> [SKIP][194] ([i915#3708] / [i915#4077]) +1 similar issue
   [194]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-6/igt@prime_vgem@basic-fence-mmap.html
    - bat-dg2-9:          NOTRUN -> [SKIP][195] ([i915#3708] / [i915#4077]) +1 similar issue
   [195]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-dg2-9/igt@prime_vgem@basic-fence-mmap.html
    - bat-mtlp-8:         NOTRUN -> [SKIP][196] ([i915#3708] / [i915#4077]) +1 similar issue
   [196]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-8/igt@prime_vgem@basic-fence-mmap.html

  * igt@prime_vgem@basic-fence-read:
    - bat-mtlp-8:         NOTRUN -> [SKIP][197] ([i915#3708]) +2 similar issues
   [197]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-8/igt@prime_vgem@basic-fence-read.html

  * igt@prime_vgem@basic-read:
    - fi-rkl-11600:       NOTRUN -> [SKIP][198] ([fdo#109295] / [i915#3291] / [i915#3708]) +2 similar issues
   [198]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-rkl-11600/igt@prime_vgem@basic-read.html

  * igt@prime_vgem@basic-write:
    - bat-atsm-1:         NOTRUN -> [SKIP][199] ([fdo#109295]) +2 similar issues
   [199]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-atsm-1/igt@prime_vgem@basic-write.html
    - bat-dg2-9:          NOTRUN -> [SKIP][200] ([i915#3291] / [i915#3708]) +2 similar issues
   [200]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-dg2-9/igt@prime_vgem@basic-write.html
    - bat-adlm-1:         NOTRUN -> [SKIP][201] ([i915#3708]) +2 similar issues
   [201]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-adlm-1/igt@prime_vgem@basic-write.html
    - bat-rpls-1:         NOTRUN -> [SKIP][202] ([fdo#109295] / [i915#3708]) +2 similar issues
   [202]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-rpls-1/igt@prime_vgem@basic-write.html
    - bat-mtlp-6:         NOTRUN -> [SKIP][203] ([i915#3708]) +2 similar issues
   [203]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-mtlp-6/igt@prime_vgem@basic-write.html

  
#### Possible fixes ####

  * igt@i915_pm_rpm@module-reload:
    - fi-cfl-8700k:       [FAIL][204] ([i915#7940]) -> [PASS][205]
   [204]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/fi-cfl-8700k/igt@i915_pm_rpm@module-reload.html
   [205]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/fi-cfl-8700k/igt@i915_pm_rpm@module-reload.html

  * igt@i915_selftest@live@requests:
    - bat-rpls-2:         [ABORT][206] ([i915#4983] / [i915#7913]) -> [PASS][207]
   [206]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/bat-rpls-2/igt@i915_selftest@live@requests.html
   [207]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-rpls-2/igt@i915_selftest@live@requests.html

  * igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-d-edp-1:
    - bat-rplp-1:         [ABORT][208] ([i915#8442] / [i915#8668]) -> [PASS][209]
   [208]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/bat-rplp-1/igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-d-edp-1.html
   [209]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/bat-rplp-1/igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-d-edp-1.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#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1836]: https://gitlab.freedesktop.org/drm/intel/issues/1836
  [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
  [i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849
  [i915#1886]: https://gitlab.freedesktop.org/drm/intel/issues/1886
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
  [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
  [i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291
  [i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
  [i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078
  [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
  [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
  [i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
  [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213
  [i915#4215]: https://gitlab.freedesktop.org/drm/intel/issues/4215
  [i915#4342]: https://gitlab.freedesktop.org/drm/intel/issues/4342
  [i915#4423]: https://gitlab.freedesktop.org/drm/intel/issues/4423
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
  [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#6077]: https://gitlab.freedesktop.org/drm/intel/issues/6077
  [i915#6078]: https://gitlab.freedesktop.org/drm/intel/issues/6078
  [i915#6093]: https://gitlab.freedesktop.org/drm/intel/issues/6093
  [i915#6094]: https://gitlab.freedesktop.org/drm/intel/issues/6094
  [i915#6166]: https://gitlab.freedesktop.org/drm/intel/issues/6166
  [i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367
  [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621
  [i915#6645]: https://gitlab.freedesktop.org/drm/intel/issues/6645
  [i915#6687]: https://gitlab.freedesktop.org/drm/intel/issues/6687
  [i915#7059]: https://gitlab.freedesktop.org/drm/intel/issues/7059
  [i915#7357]: https://gitlab.freedesktop.org/drm/intel/issues/7357
  [i915#7443]: https://gitlab.freedesktop.org/drm/intel/issues/7443
  [i915#7456]: https://gitlab.freedesktop.org/drm/intel/issues/7456
  [i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561
  [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
  [i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913
  [i915#7940]: https://gitlab.freedesktop.org/drm/intel/issues/7940
  [i915#7978]: https://gitlab.freedesktop.org/drm/intel/issues/7978
  [i915#8011]: https://gitlab.freedesktop.org/drm/intel/issues/8011
  [i915#8102]: https://gitlab.freedesktop.org/drm/intel/issues/8102
  [i915#8296]: https://gitlab.freedesktop.org/drm/intel/issues/8296
  [i915#8298]: https://gitlab.freedesktop.org/drm/intel/issues/8298
  [i915#8299]: https://gitlab.freedesktop.org/drm/intel/issues/8299
  [i915#8442]: https://gitlab.freedesktop.org/drm/intel/issues/8442
  [i915#8504]: https://gitlab.freedesktop.org/drm/intel/issues/8504
  [i915#8668]: https://gitlab.freedesktop.org/drm/intel/issues/8668
  [i915#8712]: https://gitlab.freedesktop.org/drm/intel/issues/8712
  [i915#8809]: https://gitlab.freedesktop.org/drm/intel/issues/8809
  [i915#8841]: https://gitlab.freedesktop.org/drm/intel/issues/8841
  [i915#8843]: https://gitlab.freedesktop.org/drm/intel/issues/8843


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

  * Linux: CI_DRM_13380 -> Patchwork_120456v2

  CI-20190529: 20190529
  CI_DRM_13380: c8d8bc62e682f5a569b3ded2b80848c47eb5c425 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_7383: e9d66ac434bd580af20b475ddbee01f5c042ed61 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_120456v2: c8d8bc62e682f5a569b3ded2b80848c47eb5c425 @ git://anongit.freedesktop.org/gfx-ci/linux


### Linux commits

17514812a517 drm/i915/display: Compare the readout dsc pps params
79f6128079f7 drm/i915/vdsc: Fill the intel_dsc_get_pps_config function
e59243479423 drm/i915/vdsc: Add function to write in PPS register
90ed61aa9ddc drm/i915/vdsc: Add function to read any PPS register
8ea2bd7b2554 drm/i915/vdsc: Add a check for dsc split cases
924f25c0a2a8 drm/i915/vdsc: Refactor dsc register field macro

== Logs ==

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

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

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

* Re: [Intel-gfx] [PATCH v2 2/6] drm/i915/vdsc: Add a check for dsc split cases
  2023-07-13  6:29 ` [Intel-gfx] [PATCH v2 2/6] drm/i915/vdsc: Add a check for dsc split cases Suraj Kandpal
@ 2023-07-13 12:29   ` Jani Nikula
  2023-07-13 13:03     ` Kandpal, Suraj
  0 siblings, 1 reply; 19+ messages in thread
From: Jani Nikula @ 2023-07-13 12:29 UTC (permalink / raw)
  To: Suraj Kandpal, intel-gfx

On Thu, 13 Jul 2023, Suraj Kandpal <suraj.kandpal@intel.com> wrote:
> In intel_vdsc_get_config we only read the primary dsc engine register
> and not take into account if the other dsc engine is in use and if
> both registers have the same value or not this patche fixes that by
> adding a check.
>
> Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_vdsc.c | 15 ++++++++++++++-
>  1 file changed, 14 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.c b/drivers/gpu/drm/i915/display/intel_vdsc.c
> index 530f3c08a172..d48b8306bfc3 100644
> --- a/drivers/gpu/drm/i915/display/intel_vdsc.c
> +++ b/drivers/gpu/drm/i915/display/intel_vdsc.c
> @@ -939,7 +939,7 @@ void intel_dsc_get_config(struct intel_crtc_state *crtc_state)
>  	enum pipe pipe = crtc->pipe;
>  	enum intel_display_power_domain power_domain;
>  	intel_wakeref_t wakeref;
> -	u32 dss_ctl1, dss_ctl2, pps0 = 0, pps1 = 0;
> +	u32 dss_ctl1, dss_ctl2, pps0 = 0, pps1 = 0, pps_temp0 = 0, pps_temp1 = 1;
>  
>  	if (!intel_dsc_source_support(crtc_state))
>  		return;
> @@ -965,11 +965,24 @@ void intel_dsc_get_config(struct intel_crtc_state *crtc_state)
>  	/* PPS0 & PPS1 */
>  	if (!is_pipe_dsc(crtc, cpu_transcoder)) {
>  		pps1 = intel_de_read(dev_priv, DSCA_PICTURE_PARAMETER_SET_1);
> +		if (crtc_state->dsc.dsc_split) {
> +			pps_temp1 = intel_de_read(dev_priv, DSCC_PICTURE_PARAMETER_SET_1);
> +			drm_WARN_ON(&dev_priv->drm, pps1 != pps_temp1);
> +		}
> +

Superfluous newline.

>  	} else {
>  		pps0 = intel_de_read(dev_priv,
>  				     ICL_DSC0_PICTURE_PARAMETER_SET_0(pipe));
>  		pps1 = intel_de_read(dev_priv,
>  				     ICL_DSC0_PICTURE_PARAMETER_SET_1(pipe));
> +		if (crtc_state->dsc.dsc_split) {
> +			pps_temp0 = intel_de_read(dev_priv,
> +						  ICL_DSC0_PICTURE_PARAMETER_SET_0(pipe));
> +			pps_temp1 = intel_de_read(dev_priv,
> +						  ICL_DSC0_PICTURE_PARAMETER_SET_1(pipe));

Those are the same two registers as above?

BR,
Jani.

> +			drm_WARN_ON(&dev_priv->drm, pps0 != pps_temp0);
> +			drm_WARN_ON(&dev_priv->drm, pps1 != pps_temp1);
> +		}
>  	}
>  
>  	vdsc_cfg->bits_per_pixel = pps1;

-- 
Jani Nikula, Intel Open Source Graphics Center

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

* [Intel-gfx] ✗ Fi.CI.IGT: failure for Add DSC PPS readout (rev2)
  2023-07-13  6:29 [Intel-gfx] [PATCH v2 0/6] Add DSC PPS readout Suraj Kandpal
                   ` (8 preceding siblings ...)
  2023-07-13  9:49 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
@ 2023-07-13 12:30 ` Patchwork
  2023-07-13 13:15 ` [Intel-gfx] [PATCH v2 0/6] Add DSC PPS readout Jani Nikula
  10 siblings, 0 replies; 19+ messages in thread
From: Patchwork @ 2023-07-13 12:30 UTC (permalink / raw)
  To: Suraj Kandpal; +Cc: intel-gfx

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

== Series Details ==

Series: Add DSC PPS readout (rev2)
URL   : https://patchwork.freedesktop.org/series/120456/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_13380_full -> Patchwork_120456v2_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with Patchwork_120456v2_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_120456v2_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Participating hosts (10 -> 11)
------------------------------

  Additional (1): pig-kbl-iris 

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_120456v2_full:

### IGT changes ###

#### Possible regressions ####

  * igt@kms_flip@flip-vs-panning-vs-hang@a-edp1:
    - shard-mtlp:         [PASS][1] -> [ABORT][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-mtlp-6/igt@kms_flip@flip-vs-panning-vs-hang@a-edp1.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-7/igt@kms_flip@flip-vs-panning-vs-hang@a-edp1.html

  
New tests
---------

  New tests have been introduced between CI_DRM_13380_full and Patchwork_120456v2_full:

### New IGT tests (1) ###

  * igt@kms_invalid_mode@int-max-clock@hdmi-a-2-pipe-d:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@device_reset@cold-reset-bound:
    - shard-rkl:          NOTRUN -> [SKIP][3] ([i915#7701])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-7/igt@device_reset@cold-reset-bound.html

  * igt@drm_fdinfo@most-busy-check-all@rcs0:
    - shard-rkl:          [PASS][4] -> [FAIL][5] ([i915#7742]) +1 similar issue
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-rkl-6/igt@drm_fdinfo@most-busy-check-all@rcs0.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-2/igt@drm_fdinfo@most-busy-check-all@rcs0.html

  * igt@drm_fdinfo@virtual-busy-all:
    - shard-mtlp:         NOTRUN -> [SKIP][6] ([i915#8414])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-5/igt@drm_fdinfo@virtual-busy-all.html

  * igt@feature_discovery@display-4x:
    - shard-mtlp:         NOTRUN -> [SKIP][7] ([i915#1839])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-5/igt@feature_discovery@display-4x.html

  * igt@gem_ccs@ctrl-surf-copy:
    - shard-mtlp:         NOTRUN -> [SKIP][8] ([i915#5325])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-5/igt@gem_ccs@ctrl-surf-copy.html

  * igt@gem_create@hog-create@smem0:
    - shard-dg2:          [PASS][9] -> [FAIL][10] ([i915#5892] / [i915#8758])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-dg2-3/igt@gem_create@hog-create@smem0.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-dg2-8/igt@gem_create@hog-create@smem0.html

  * igt@gem_ctx_exec@basic-nohangcheck:
    - shard-rkl:          [PASS][11] -> [FAIL][12] ([i915#6268])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-rkl-2/igt@gem_ctx_exec@basic-nohangcheck.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-1/igt@gem_ctx_exec@basic-nohangcheck.html

  * igt@gem_ctx_persistence@heartbeat-close:
    - shard-mtlp:         NOTRUN -> [SKIP][13] ([i915#8555])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-5/igt@gem_ctx_persistence@heartbeat-close.html

  * igt@gem_eio@kms:
    - shard-dg2:          [PASS][14] -> [FAIL][15] ([i915#5784])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-dg2-11/igt@gem_eio@kms.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-dg2-6/igt@gem_eio@kms.html

  * igt@gem_exec_fair@basic-none-rrul:
    - shard-mtlp:         NOTRUN -> [SKIP][16] ([i915#4473] / [i915#4771])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-5/igt@gem_exec_fair@basic-none-rrul.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
    - shard-rkl:          NOTRUN -> [FAIL][17] ([i915#2842])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-7/igt@gem_exec_fair@basic-pace-share@rcs0.html
    - shard-tglu:         [PASS][18] -> [FAIL][19] ([i915#2842])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-tglu-5/igt@gem_exec_fair@basic-pace-share@rcs0.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-tglu-10/igt@gem_exec_fair@basic-pace-share@rcs0.html

  * igt@gem_exec_reloc@basic-wc-gtt-noreloc:
    - shard-mtlp:         NOTRUN -> [SKIP][20] ([i915#3281]) +4 similar issues
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-7/igt@gem_exec_reloc@basic-wc-gtt-noreloc.html

  * igt@gem_exec_suspend@basic-s3@smem:
    - shard-apl:          [PASS][21] -> [ABORT][22] ([i915#180] / [i915#8213])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-apl6/igt@gem_exec_suspend@basic-s3@smem.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-apl4/igt@gem_exec_suspend@basic-s3@smem.html

  * igt@gem_exec_suspend@basic-s4-devices@smem:
    - shard-rkl:          NOTRUN -> [ABORT][23] ([i915#7975] / [i915#8213])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-7/igt@gem_exec_suspend@basic-s4-devices@smem.html
    - shard-tglu:         [PASS][24] -> [ABORT][25] ([i915#7975] / [i915#8213])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-tglu-5/igt@gem_exec_suspend@basic-s4-devices@smem.html
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-tglu-10/igt@gem_exec_suspend@basic-s4-devices@smem.html

  * igt@gem_fence_thrash@bo-write-verify-threaded-none:
    - shard-mtlp:         NOTRUN -> [SKIP][26] ([i915#4860])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-2/igt@gem_fence_thrash@bo-write-verify-threaded-none.html

  * igt@gem_lmem_swapping@parallel-random:
    - shard-rkl:          NOTRUN -> [SKIP][27] ([i915#4613])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-7/igt@gem_lmem_swapping@parallel-random.html

  * igt@gem_mmap_gtt@bad-object:
    - shard-mtlp:         NOTRUN -> [SKIP][28] ([i915#4077])
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-5/igt@gem_mmap_gtt@bad-object.html

  * igt@gem_mmap_gtt@basic:
    - shard-dg2:          NOTRUN -> [SKIP][29] ([i915#4077])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-dg2-12/igt@gem_mmap_gtt@basic.html

  * igt@gem_partial_pwrite_pread@reads-snoop:
    - shard-rkl:          NOTRUN -> [SKIP][30] ([i915#3282])
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-7/igt@gem_partial_pwrite_pread@reads-snoop.html

  * igt@gem_pxp@protected-encrypted-src-copy-not-readible:
    - shard-rkl:          NOTRUN -> [SKIP][31] ([i915#4270])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-7/igt@gem_pxp@protected-encrypted-src-copy-not-readible.html

  * igt@gem_pxp@verify-pxp-stale-ctx-execution:
    - shard-mtlp:         NOTRUN -> [SKIP][32] ([i915#4270]) +1 similar issue
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-5/igt@gem_pxp@verify-pxp-stale-ctx-execution.html

  * igt@gem_readwrite@write-bad-handle:
    - shard-mtlp:         NOTRUN -> [SKIP][33] ([i915#3282]) +2 similar issues
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-5/igt@gem_readwrite@write-bad-handle.html

  * igt@gem_render_copy@y-tiled-mc-ccs-to-vebox-y-tiled:
    - shard-mtlp:         NOTRUN -> [SKIP][34] ([i915#8428]) +1 similar issue
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-2/igt@gem_render_copy@y-tiled-mc-ccs-to-vebox-y-tiled.html

  * igt@gem_softpin@evict-snoop-interruptible:
    - shard-mtlp:         NOTRUN -> [SKIP][35] ([i915#4885])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-5/igt@gem_softpin@evict-snoop-interruptible.html

  * igt@gem_userptr_blits@dmabuf-unsync:
    - shard-mtlp:         NOTRUN -> [SKIP][36] ([i915#3297]) +2 similar issues
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-7/igt@gem_userptr_blits@dmabuf-unsync.html

  * igt@gen7_exec_parse@basic-allowed:
    - shard-mtlp:         NOTRUN -> [SKIP][37] ([fdo#109289]) +1 similar issue
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-5/igt@gen7_exec_parse@basic-allowed.html

  * igt@gen7_exec_parse@basic-offset:
    - shard-rkl:          NOTRUN -> [SKIP][38] ([fdo#109289])
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-7/igt@gen7_exec_parse@basic-offset.html

  * igt@gen9_exec_parse@basic-rejected:
    - shard-mtlp:         NOTRUN -> [SKIP][39] ([i915#2856]) +1 similar issue
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-2/igt@gen9_exec_parse@basic-rejected.html

  * igt@gen9_exec_parse@batch-invalid-length:
    - shard-rkl:          NOTRUN -> [SKIP][40] ([i915#2527])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-7/igt@gen9_exec_parse@batch-invalid-length.html

  * igt@i915_pm_rpm@gem-execbuf-stress-pc8:
    - shard-mtlp:         NOTRUN -> [SKIP][41] ([fdo#109293])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-5/igt@i915_pm_rpm@gem-execbuf-stress-pc8.html

  * igt@i915_pm_rpm@gem-execbuf@smem0:
    - shard-tglu:         [PASS][42] -> [FAIL][43] ([i915#7940])
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-tglu-7/igt@i915_pm_rpm@gem-execbuf@smem0.html
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-tglu-2/igt@i915_pm_rpm@gem-execbuf@smem0.html

  * igt@i915_pm_rpm@modeset-non-lpsp-stress:
    - shard-rkl:          [PASS][44] -> [SKIP][45] ([i915#1397])
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-rkl-2/igt@i915_pm_rpm@modeset-non-lpsp-stress.html
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-7/igt@i915_pm_rpm@modeset-non-lpsp-stress.html

  * igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait:
    - shard-dg2:          [PASS][46] -> [SKIP][47] ([i915#1397])
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-dg2-6/igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait.html
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-dg2-10/igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait.html

  * igt@i915_pm_rpm@system-suspend-execbuf:
    - shard-dg2:          [PASS][48] -> [FAIL][49] ([fdo#103375] / [i915#6121])
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-dg2-6/igt@i915_pm_rpm@system-suspend-execbuf.html
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-dg2-5/igt@i915_pm_rpm@system-suspend-execbuf.html

  * igt@i915_selftest@live@gt_heartbeat:
    - shard-apl:          [PASS][50] -> [DMESG-FAIL][51] ([i915#5334])
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-apl2/igt@i915_selftest@live@gt_heartbeat.html
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-apl3/igt@i915_selftest@live@gt_heartbeat.html

  * igt@i915_selftest@live@slpc:
    - shard-mtlp:         [PASS][52] -> [DMESG-WARN][53] ([i915#6367])
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-mtlp-6/igt@i915_selftest@live@slpc.html
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-8/igt@i915_selftest@live@slpc.html

  * igt@i915_suspend@basic-s3-without-i915:
    - shard-tglu:         NOTRUN -> [INCOMPLETE][54] ([i915#7443] / [i915#8102])
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-tglu-3/igt@i915_suspend@basic-s3-without-i915.html

  * igt@kms_addfb_basic@addfb25-framebuffer-vs-set-tiling:
    - shard-mtlp:         NOTRUN -> [SKIP][55] ([i915#4212])
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-2/igt@kms_addfb_basic@addfb25-framebuffer-vs-set-tiling.html

  * igt@kms_async_flips@crc@pipe-b-hdmi-a-1:
    - shard-rkl:          NOTRUN -> [FAIL][56] ([i915#8247]) +1 similar issue
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-7/igt@kms_async_flips@crc@pipe-b-hdmi-a-1.html

  * igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels:
    - shard-snb:          NOTRUN -> [SKIP][57] ([fdo#109271] / [i915#1769])
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-snb5/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels.html

  * igt@kms_big_fb@4-tiled-addfb-size-overflow:
    - shard-tglu:         NOTRUN -> [SKIP][58] ([i915#5286])
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-tglu-3/igt@kms_big_fb@4-tiled-addfb-size-overflow.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip:
    - shard-rkl:          NOTRUN -> [SKIP][59] ([i915#5286])
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-7/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip.html

  * igt@kms_big_fb@linear-16bpp-rotate-90:
    - shard-tglu:         NOTRUN -> [SKIP][60] ([fdo#111614])
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-tglu-3/igt@kms_big_fb@linear-16bpp-rotate-90.html

  * igt@kms_big_fb@linear-32bpp-rotate-90:
    - shard-mtlp:         NOTRUN -> [SKIP][61] ([fdo#111614]) +1 similar issue
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-7/igt@kms_big_fb@linear-32bpp-rotate-90.html

  * igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
    - shard-mtlp:         [PASS][62] -> [FAIL][63] ([i915#3743])
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-mtlp-2/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-3/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html

  * igt@kms_big_fb@yf-tiled-8bpp-rotate-0:
    - shard-rkl:          NOTRUN -> [SKIP][64] ([fdo#110723]) +1 similar issue
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-7/igt@kms_big_fb@yf-tiled-8bpp-rotate-0.html

  * igt@kms_big_fb@yf-tiled-8bpp-rotate-270:
    - shard-mtlp:         NOTRUN -> [SKIP][65] ([fdo#111615]) +3 similar issues
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-5/igt@kms_big_fb@yf-tiled-8bpp-rotate-270.html

  * igt@kms_ccs@pipe-a-bad-rotation-90-yf_tiled_ccs:
    - shard-snb:          NOTRUN -> [SKIP][66] ([fdo#109271]) +91 similar issues
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-snb5/igt@kms_ccs@pipe-a-bad-rotation-90-yf_tiled_ccs.html

  * igt@kms_ccs@pipe-a-missing-ccs-buffer-yf_tiled_ccs:
    - shard-rkl:          NOTRUN -> [SKIP][67] ([i915#3734] / [i915#5354] / [i915#6095]) +1 similar issue
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-7/igt@kms_ccs@pipe-a-missing-ccs-buffer-yf_tiled_ccs.html

  * igt@kms_ccs@pipe-b-bad-rotation-90-4_tiled_dg2_rc_ccs_cc:
    - shard-mtlp:         NOTRUN -> [SKIP][68] ([i915#6095]) +10 similar issues
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-2/igt@kms_ccs@pipe-b-bad-rotation-90-4_tiled_dg2_rc_ccs_cc.html

  * igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_gen12_mc_ccs:
    - shard-tglu:         NOTRUN -> [SKIP][69] ([i915#3689] / [i915#3886] / [i915#5354] / [i915#6095]) +1 similar issue
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-tglu-3/igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-b-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs:
    - shard-rkl:          NOTRUN -> [SKIP][70] ([i915#5354] / [i915#6095]) +3 similar issues
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-7/igt@kms_ccs@pipe-b-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs.html

  * igt@kms_ccs@pipe-b-random-ccs-data-y_tiled_gen12_mc_ccs:
    - shard-rkl:          NOTRUN -> [SKIP][71] ([i915#3886] / [i915#5354] / [i915#6095])
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-7/igt@kms_ccs@pipe-b-random-ccs-data-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-c-bad-pixel-format-y_tiled_ccs:
    - shard-tglu:         NOTRUN -> [SKIP][72] ([i915#3689] / [i915#5354] / [i915#6095])
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-tglu-3/igt@kms_ccs@pipe-c-bad-pixel-format-y_tiled_ccs.html

  * igt@kms_ccs@pipe-c-crc-primary-basic-4_tiled_mtl_rc_ccs:
    - shard-rkl:          NOTRUN -> [SKIP][73] ([i915#5354]) +6 similar issues
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-7/igt@kms_ccs@pipe-c-crc-primary-basic-4_tiled_mtl_rc_ccs.html

  * igt@kms_ccs@pipe-c-random-ccs-data-y_tiled_gen12_mc_ccs:
    - shard-mtlp:         NOTRUN -> [SKIP][74] ([i915#3886] / [i915#6095]) +3 similar issues
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-5/igt@kms_ccs@pipe-c-random-ccs-data-y_tiled_gen12_mc_ccs.html

  * igt@kms_cdclk@mode-transition@pipe-b-hdmi-a-1:
    - shard-dg2:          NOTRUN -> [SKIP][75] ([i915#4087] / [i915#7213]) +2 similar issues
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-dg2-10/igt@kms_cdclk@mode-transition@pipe-b-hdmi-a-1.html

  * igt@kms_cdclk@mode-transition@pipe-d-hdmi-a-1:
    - shard-dg2:          NOTRUN -> [SKIP][76] ([i915#7213])
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-dg2-10/igt@kms_cdclk@mode-transition@pipe-d-hdmi-a-1.html

  * igt@kms_cdclk@plane-scaling@pipe-c-hdmi-a-3:
    - shard-dg2:          NOTRUN -> [SKIP][77] ([i915#4087]) +3 similar issues
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-dg2-8/igt@kms_cdclk@plane-scaling@pipe-c-hdmi-a-3.html

  * igt@kms_chamelium_audio@hdmi-audio-edid:
    - shard-mtlp:         NOTRUN -> [SKIP][78] ([i915#7828]) +2 similar issues
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-2/igt@kms_chamelium_audio@hdmi-audio-edid.html

  * igt@kms_chamelium_color@ctm-negative:
    - shard-mtlp:         NOTRUN -> [SKIP][79] ([fdo#111827])
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-5/igt@kms_chamelium_color@ctm-negative.html

  * igt@kms_chamelium_frames@hdmi-cmp-planar-formats:
    - shard-tglu:         NOTRUN -> [SKIP][80] ([i915#7828]) +1 similar issue
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-tglu-3/igt@kms_chamelium_frames@hdmi-cmp-planar-formats.html

  * igt@kms_chamelium_frames@hdmi-crc-fast:
    - shard-rkl:          NOTRUN -> [SKIP][81] ([i915#7828]) +1 similar issue
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-7/igt@kms_chamelium_frames@hdmi-crc-fast.html

  * igt@kms_color@deep-color:
    - shard-rkl:          NOTRUN -> [SKIP][82] ([i915#3555])
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-2/igt@kms_color@deep-color.html

  * igt@kms_content_protection@atomic-dpms:
    - shard-mtlp:         NOTRUN -> [SKIP][83] ([i915#6944])
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-5/igt@kms_content_protection@atomic-dpms.html

  * igt@kms_content_protection@lic@pipe-a-dp-2:
    - shard-dg2:          NOTRUN -> [TIMEOUT][84] ([i915#7173])
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-dg2-12/igt@kms_content_protection@lic@pipe-a-dp-2.html

  * igt@kms_content_protection@uevent@pipe-a-dp-4:
    - shard-dg2:          NOTRUN -> [FAIL][85] ([i915#1339])
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-dg2-11/igt@kms_content_protection@uevent@pipe-a-dp-4.html

  * igt@kms_cursor_crc@cursor-offscreen-512x512:
    - shard-mtlp:         NOTRUN -> [SKIP][86] ([i915#3359])
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-7/igt@kms_cursor_crc@cursor-offscreen-512x512.html

  * igt@kms_cursor_crc@cursor-random-32x32:
    - shard-tglu:         NOTRUN -> [SKIP][87] ([i915#3555])
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-tglu-3/igt@kms_cursor_crc@cursor-random-32x32.html

  * igt@kms_cursor_legacy@cursorb-vs-flipb-varying-size:
    - shard-mtlp:         NOTRUN -> [SKIP][88] ([i915#3546]) +1 similar issue
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-5/igt@kms_cursor_legacy@cursorb-vs-flipb-varying-size.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
    - shard-mtlp:         NOTRUN -> [FAIL][89] ([i915#2346])
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-2/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html

  * igt@kms_dsc@dsc-with-formats:
    - shard-rkl:          NOTRUN -> [SKIP][90] ([i915#3555] / [i915#3840])
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-7/igt@kms_dsc@dsc-with-formats.html

  * igt@kms_dsc@dsc-with-output-formats:
    - shard-mtlp:         NOTRUN -> [SKIP][91] ([i915#3840])
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-7/igt@kms_dsc@dsc-with-output-formats.html

  * igt@kms_flip@2x-blocking-absolute-wf_vblank:
    - shard-rkl:          NOTRUN -> [SKIP][92] ([fdo#111825])
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-7/igt@kms_flip@2x-blocking-absolute-wf_vblank.html

  * igt@kms_flip@2x-flip-vs-expired-vblank:
    - shard-mtlp:         NOTRUN -> [SKIP][93] ([i915#3637]) +1 similar issue
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-5/igt@kms_flip@2x-flip-vs-expired-vblank.html

  * igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@bc-hdmi-a1-hdmi-a2:
    - shard-glk:          [PASS][94] -> [FAIL][95] ([i915#2122])
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-glk8/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@bc-hdmi-a1-hdmi-a2.html
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-glk1/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@bc-hdmi-a1-hdmi-a2.html

  * igt@kms_flip@blocking-wf_vblank@a-edp1:
    - shard-mtlp:         [PASS][96] -> [DMESG-WARN][97] ([i915#1982])
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-mtlp-3/igt@kms_flip@blocking-wf_vblank@a-edp1.html
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-5/igt@kms_flip@blocking-wf_vblank@a-edp1.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling@pipe-a-valid-mode:
    - shard-tglu:         NOTRUN -> [SKIP][98] ([i915#2587] / [i915#2672])
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-tglu-3/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling@pipe-a-default-mode:
    - shard-mtlp:         NOTRUN -> [SKIP][99] ([i915#2672]) +2 similar issues
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-5/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling@pipe-a-default-mode.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-plflip-blt:
    - shard-rkl:          NOTRUN -> [SKIP][100] ([fdo#111825] / [i915#1825]) +3 similar issues
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-7/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-blt:
    - shard-dg2:          NOTRUN -> [SKIP][101] ([i915#5354])
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-dg2-12/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-render:
    - shard-dg2:          NOTRUN -> [SKIP][102] ([i915#3458])
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-dg2-12/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-wc:
    - shard-mtlp:         NOTRUN -> [SKIP][103] ([i915#1825]) +13 similar issues
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-5/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-indfb-plflip-blt:
    - shard-tglu:         NOTRUN -> [SKIP][104] ([fdo#109280])
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-tglu-3/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-indfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-mmap-gtt:
    - shard-tglu:         NOTRUN -> [SKIP][105] ([fdo#110189])
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-tglu-3/igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-shrfb-draw-mmap-cpu:
    - shard-rkl:          NOTRUN -> [SKIP][106] ([i915#3023]) +4 similar issues
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-7/igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-shrfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-mmap-gtt:
    - shard-mtlp:         NOTRUN -> [SKIP][107] ([i915#8708]) +1 similar issue
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-2/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-mmap-gtt.html

  * igt@kms_hdr@bpc-switch:
    - shard-rkl:          NOTRUN -> [SKIP][108] ([i915#3555] / [i915#8228])
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-2/igt@kms_hdr@bpc-switch.html

  * igt@kms_hdr@static-swap:
    - shard-dg2:          NOTRUN -> [SKIP][109] ([i915#3555] / [i915#8228])
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-dg2-8/igt@kms_hdr@static-swap.html

  * igt@kms_hdr@static-toggle-suspend:
    - shard-mtlp:         NOTRUN -> [SKIP][110] ([i915#8228])
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-5/igt@kms_hdr@static-toggle-suspend.html

  * igt@kms_panel_fitting@legacy:
    - shard-tglu:         NOTRUN -> [SKIP][111] ([i915#6301])
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-tglu-3/igt@kms_panel_fitting@legacy.html

  * igt@kms_plane_scaling@intel-max-src-size@pipe-a-dp-2:
    - shard-dg2:          NOTRUN -> [FAIL][112] ([i915#8292])
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-dg2-12/igt@kms_plane_scaling@intel-max-src-size@pipe-a-dp-2.html

  * igt@kms_plane_scaling@plane-downscale-with-rotation-factor-0-25@pipe-a-dp-2:
    - shard-dg2:          NOTRUN -> [SKIP][113] ([i915#5176]) +3 similar issues
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-dg2-12/igt@kms_plane_scaling@plane-downscale-with-rotation-factor-0-25@pipe-a-dp-2.html

  * igt@kms_plane_scaling@plane-downscale-with-rotation-factor-0-25@pipe-c-edp-1:
    - shard-mtlp:         NOTRUN -> [SKIP][114] ([i915#5176]) +3 similar issues
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-2/igt@kms_plane_scaling@plane-downscale-with-rotation-factor-0-25@pipe-c-edp-1.html

  * igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation@pipe-b-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][115] ([i915#5176]) +3 similar issues
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-4/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation@pipe-b-hdmi-a-2.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-b-hdmi-a-1:
    - shard-rkl:          NOTRUN -> [SKIP][116] ([i915#5235]) +1 similar issue
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-7/igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-b-hdmi-a-1.html

  * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25@pipe-a-hdmi-a-3:
    - shard-dg2:          NOTRUN -> [SKIP][117] ([i915#5235]) +11 similar issues
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-dg2-8/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25@pipe-a-hdmi-a-3.html

  * igt@kms_prime@basic-crc-hybrid:
    - shard-rkl:          NOTRUN -> [SKIP][118] ([i915#6524])
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-7/igt@kms_prime@basic-crc-hybrid.html

  * igt@kms_rotation_crc@primary-y-tiled-reflect-x-0:
    - shard-mtlp:         NOTRUN -> [SKIP][119] ([i915#5289])
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-5/igt@kms_rotation_crc@primary-y-tiled-reflect-x-0.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270:
    - shard-rkl:          NOTRUN -> [SKIP][120] ([fdo#111615] / [i915#5289])
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-7/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270.html

  * igt@kms_setmode@basic-clone-single-crtc:
    - shard-rkl:          NOTRUN -> [SKIP][121] ([i915#3555] / [i915#4098])
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-7/igt@kms_setmode@basic-clone-single-crtc.html

  * igt@kms_vblank@pipe-c-query-forked:
    - shard-rkl:          NOTRUN -> [SKIP][122] ([i915#4070] / [i915#6768]) +1 similar issue
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-7/igt@kms_vblank@pipe-c-query-forked.html

  * igt@kms_vblank@pipe-d-query-idle:
    - shard-rkl:          NOTRUN -> [SKIP][123] ([i915#4070] / [i915#533] / [i915#6768])
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-7/igt@kms_vblank@pipe-d-query-idle.html

  * igt@kms_vrr@flipline:
    - shard-mtlp:         NOTRUN -> [SKIP][124] ([i915#8808]) +1 similar issue
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-5/igt@kms_vrr@flipline.html

  * igt@perf_pmu@busy-idle-check-all@vcs0:
    - shard-mtlp:         [PASS][125] -> [FAIL][126] ([i915#4521])
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-mtlp-7/igt@perf_pmu@busy-idle-check-all@vcs0.html
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-4/igt@perf_pmu@busy-idle-check-all@vcs0.html

  * igt@sysfs_heartbeat_interval@nopreempt@vcs1:
    - shard-mtlp:         [PASS][127] -> [FAIL][128] ([i915#6015])
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-mtlp-6/igt@sysfs_heartbeat_interval@nopreempt@vcs1.html
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-7/igt@sysfs_heartbeat_interval@nopreempt@vcs1.html

  * igt@v3d/v3d_submit_cl@multisync-out-syncs:
    - shard-rkl:          NOTRUN -> [SKIP][129] ([fdo#109315]) +2 similar issues
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-7/igt@v3d/v3d_submit_cl@multisync-out-syncs.html

  * igt@v3d/v3d_submit_cl@simple-flush-cache:
    - shard-mtlp:         NOTRUN -> [SKIP][130] ([i915#2575]) +1 similar issue
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-5/igt@v3d/v3d_submit_cl@simple-flush-cache.html

  * igt@vc4/vc4_mmap@mmap-bo:
    - shard-rkl:          NOTRUN -> [SKIP][131] ([i915#7711])
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-7/igt@vc4/vc4_mmap@mmap-bo.html

  * igt@vc4/vc4_purgeable_bo@mark-unpurgeable-check-retained:
    - shard-mtlp:         NOTRUN -> [SKIP][132] ([i915#7711])
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-5/igt@vc4/vc4_purgeable_bo@mark-unpurgeable-check-retained.html

  
#### Possible fixes ####

  * igt@drm_fdinfo@virtual-idle:
    - shard-rkl:          [FAIL][133] ([i915#7742]) -> [PASS][134]
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-rkl-6/igt@drm_fdinfo@virtual-idle.html
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-4/igt@drm_fdinfo@virtual-idle.html

  * igt@gem_barrier_race@remote-request@rcs0:
    - shard-dg2:          [ABORT][135] ([i915#7461] / [i915#8211] / [i915#8234]) -> [PASS][136]
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-dg2-10/igt@gem_barrier_race@remote-request@rcs0.html
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-dg2-12/igt@gem_barrier_race@remote-request@rcs0.html

  * igt@gem_eio@unwedge-stress:
    - {shard-dg1}:        [FAIL][137] ([i915#5784]) -> [PASS][138]
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-dg1-14/igt@gem_eio@unwedge-stress.html
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-dg1-17/igt@gem_eio@unwedge-stress.html

  * igt@gem_exec_fair@basic-deadline:
    - shard-glk:          [FAIL][139] ([i915#2846]) -> [PASS][140]
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-glk9/igt@gem_exec_fair@basic-deadline.html
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-glk4/igt@gem_exec_fair@basic-deadline.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
    - shard-glk:          [FAIL][141] ([i915#2842]) -> [PASS][142]
   [141]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-glk8/igt@gem_exec_fair@basic-pace-share@rcs0.html
   [142]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-glk2/igt@gem_exec_fair@basic-pace-share@rcs0.html

  * igt@gem_exec_fair@basic-pace@rcs0:
    - shard-rkl:          [FAIL][143] ([i915#2842]) -> [PASS][144]
   [143]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-rkl-3/igt@gem_exec_fair@basic-pace@rcs0.html
   [144]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-4/igt@gem_exec_fair@basic-pace@rcs0.html

  * igt@gem_exec_whisper@basic-contexts-forked-all:
    - shard-mtlp:         [TIMEOUT][145] ([i915#8628]) -> [PASS][146]
   [145]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-mtlp-7/igt@gem_exec_whisper@basic-contexts-forked-all.html
   [146]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-4/igt@gem_exec_whisper@basic-contexts-forked-all.html

  * igt@gem_exec_whisper@basic-fds-priority-all:
    - shard-tglu:         [INCOMPLETE][147] ([i915#6755] / [i915#7392]) -> [PASS][148]
   [147]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-tglu-9/igt@gem_exec_whisper@basic-fds-priority-all.html
   [148]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-tglu-3/igt@gem_exec_whisper@basic-fds-priority-all.html

  * igt@i915_module_load@reload-with-fault-injection:
    - shard-dg2:          [DMESG-WARN][149] ([i915#7061]) -> [PASS][150]
   [149]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-dg2-7/igt@i915_module_load@reload-with-fault-injection.html
   [150]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-dg2-7/igt@i915_module_load@reload-with-fault-injection.html
    - shard-mtlp:         [ABORT][151] ([i915#8489] / [i915#8668]) -> [PASS][152]
   [151]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-mtlp-2/igt@i915_module_load@reload-with-fault-injection.html
   [152]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-5/igt@i915_module_load@reload-with-fault-injection.html

  * igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-hdmi-a:
    - {shard-dg1}:        [SKIP][153] ([i915#1937]) -> [PASS][154]
   [153]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-dg1-15/igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-hdmi-a.html
   [154]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-dg1-19/igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-hdmi-a.html

  * igt@i915_pm_rpm@dpms-lpsp:
    - shard-rkl:          [SKIP][155] ([i915#1397]) -> [PASS][156] +1 similar issue
   [155]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-rkl-1/igt@i915_pm_rpm@dpms-lpsp.html
   [156]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-7/igt@i915_pm_rpm@dpms-lpsp.html

  * igt@i915_pm_rpm@gem-execbuf-stress@extra-wait-smem0:
    - shard-tglu:         [FAIL][157] ([i915#7940]) -> [PASS][158] +1 similar issue
   [157]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-tglu-3/igt@i915_pm_rpm@gem-execbuf-stress@extra-wait-smem0.html
   [158]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-tglu-5/igt@i915_pm_rpm@gem-execbuf-stress@extra-wait-smem0.html

  * igt@kms_big_fb@4-tiled-64bpp-rotate-180:
    - shard-mtlp:         [FAIL][159] ([i915#5138]) -> [PASS][160]
   [159]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-mtlp-5/igt@kms_big_fb@4-tiled-64bpp-rotate-180.html
   [160]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-1/igt@kms_big_fb@4-tiled-64bpp-rotate-180.html

  * igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy:
    - shard-glk:          [FAIL][161] ([i915#72]) -> [PASS][162]
   [161]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-glk7/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy.html
   [162]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-glk6/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
    - shard-mtlp:         [FAIL][163] ([i915#2346]) -> [PASS][164]
   [163]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-mtlp-3/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
   [164]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-5/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
    - shard-apl:          [FAIL][165] ([i915#2346]) -> [PASS][166]
   [165]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-apl6/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
   [166]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-apl2/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html

  * igt@kms_flip@2x-flip-vs-expired-vblank@ac-hdmi-a1-hdmi-a2:
    - shard-glk:          [FAIL][167] ([i915#79]) -> [PASS][168] +1 similar issue
   [167]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-glk9/igt@kms_flip@2x-flip-vs-expired-vblank@ac-hdmi-a1-hdmi-a2.html
   [168]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-glk2/igt@kms_flip@2x-flip-vs-expired-vblank@ac-hdmi-a1-hdmi-a2.html

  * igt@kms_plane_scaling@intel-max-src-size@pipe-a-hdmi-a-1:
    - shard-tglu:         [FAIL][169] ([i915#8292]) -> [PASS][170]
   [169]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-tglu-5/igt@kms_plane_scaling@intel-max-src-size@pipe-a-hdmi-a-1.html
   [170]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-tglu-9/igt@kms_plane_scaling@intel-max-src-size@pipe-a-hdmi-a-1.html

  * igt@perf@non-zero-reason@0-rcs0:
    - shard-dg2:          [FAIL][171] ([i915#7484]) -> [PASS][172]
   [171]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-dg2-2/igt@perf@non-zero-reason@0-rcs0.html
   [172]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-dg2-5/igt@perf@non-zero-reason@0-rcs0.html

  * igt@perf_pmu@most-busy-check-all@rcs0:
    - shard-rkl:          [FAIL][173] ([i915#4349]) -> [PASS][174]
   [173]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-rkl-3/igt@perf_pmu@most-busy-check-all@rcs0.html
   [174]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-4/igt@perf_pmu@most-busy-check-all@rcs0.html

  * igt@sysfs_heartbeat_interval@nopreempt@vcs0:
    - shard-mtlp:         [FAIL][175] ([i915#6015]) -> [PASS][176]
   [175]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-mtlp-6/igt@sysfs_heartbeat_interval@nopreempt@vcs0.html
   [176]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-7/igt@sysfs_heartbeat_interval@nopreempt@vcs0.html

  
#### Warnings ####

  * igt@gem_lmem_swapping@smem-oom@lmem0:
    - shard-dg2:          [DMESG-WARN][177] ([i915#4936] / [i915#5493]) -> [TIMEOUT][178] ([i915#5493])
   [177]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-dg2-1/igt@gem_lmem_swapping@smem-oom@lmem0.html
   [178]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-dg2-7/igt@gem_lmem_swapping@smem-oom@lmem0.html

  * igt@kms_content_protection@type1:
    - shard-dg2:          [SKIP][179] ([i915#7118] / [i915#7162]) -> [SKIP][180] ([i915#7118])
   [179]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-dg2-11/igt@kms_content_protection@type1.html
   [180]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-dg2-3/igt@kms_content_protection@type1.html

  * igt@kms_force_connector_basic@force-load-detect:
    - shard-rkl:          [SKIP][181] ([fdo#109285]) -> [SKIP][182] ([fdo#109285] / [i915#4098])
   [181]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-rkl-7/igt@kms_force_connector_basic@force-load-detect.html
   [182]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-4/igt@kms_force_connector_basic@force-load-detect.html

  * igt@kms_multipipe_modeset@basic-max-pipe-crc-check:
    - shard-rkl:          [SKIP][183] ([i915#4816]) -> [SKIP][184] ([i915#4070] / [i915#4816])
   [183]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-rkl-3/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html
   [184]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-rkl-6/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html

  * igt@prime_mmap@test_aperture_limit@test_aperture_limit-smem:
    - shard-dg2:          [INCOMPLETE][185] ([i915#5493]) -> [CRASH][186] ([i915#7331])
   [185]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-dg2-2/igt@prime_mmap@test_aperture_limit@test_aperture_limit-smem.html
   [186]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-dg2-11/igt@prime_mmap@test_aperture_limit@test_aperture_limit-smem.html

  * igt@sysfs_preempt_timeout@timeout@vecs0:
    - shard-mtlp:         [ABORT][187] ([i915#8521]) -> [TIMEOUT][188] ([i915#7947])
   [187]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13380/shard-mtlp-5/igt@sysfs_preempt_timeout@timeout@vecs0.html
   [188]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/shard-mtlp-2/igt@sysfs_preempt_timeout@timeout@vecs0.html

  

### Piglit changes ###

#### Issues hit ####

  * igt@i915_pm_rpm@module-reload:
    - pig-kbl-iris:       NOTRUN -> [FAIL][189] ([i915#5603])
   [189]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120456v2/pig-kbl-iris/igt@i915_pm_rpm@module-reload.html

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

  [fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109293]: https://bugs.freedesktop.org/show_bug.cgi?id=109293
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
  [fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723
  [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
  [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
  [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1339]: https://gitlab.freedesktop.org/drm/intel/issues/1339
  [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
  [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#1937]: https://gitlab.freedesktop.org/drm/intel/issues/1937
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122
  [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
  [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
  [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
  [i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
  [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
  [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
  [i915#2846]: https://gitlab.freedesktop.org/drm/intel/issues/2846
  [i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
  [i915#3023]: https://gitlab.freedesktop.org/drm/intel/issues/3023
  [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
  [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
  [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
  [i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
  [i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
  [i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3591]: https://gitlab.freedesktop.org/drm/intel/issues/3591
  [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
  [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#3743]: https://gitlab.freedesktop.org/drm/intel/issues/3743
  [i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840
  [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
  [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
  [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
  [i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078
  [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
  [i915#4087]: https://gitlab.freedesktop.org/drm/intel/issues/4087
  [i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
  [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213
  [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
  [i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349
  [i915#4423]: https://gitlab.freedesktop.org/drm/intel/issues/4423
  [i915#4473]: https://gitlab.freedesktop.org/drm/intel/issues/4473
  [i915#4521]: https://gitlab.freedesktop.org/drm/intel/issues/4521
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4771]: https://gitlab.freedesktop.org/drm/intel/issues/4771
  [i915#4816]: https://gitlab.freedesktop.org/drm/intel/issues/4816
  [i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
  [i915#4885]: https://gitlab.freedesktop.org/drm/intel/issues/4885
  [i915#4936]: https://gitlab.freedesktop.org/drm/intel/issues/4936
  [i915#5138]: https://gitlab.freedesktop.org/drm/intel/issues/5138
  [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
  [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
  [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
  [i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
  [i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325
  [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
  [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
  [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
  [i915#5493]: https://gitlab.freedesktop.org/drm/intel/issues/5493
  [i915#5603]: https://gitlab.freedesktop.org/drm/intel/issues/5603
  [i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
  [i915#5892]: https://gitlab.freedesktop.org/drm/intel/issues/5892
  [i915#6015]: https://gitlab.freedesktop.org/drm/intel/issues/6015
  [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
  [i915#6121]: https://gitlab.freedesktop.org/drm/intel/issues/6121
  [i915#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268
  [i915#6301]: https://gitlab.freedesktop.org/drm/intel/issues/6301
  [i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367
  [i915#6524]: https://gitlab.freedesktop.org/drm/intel/issues/6524
  [i915#6755]: https://gitlab.freedesktop.org/drm/intel/issues/6755
  [i915#6768]: https://gitlab.freedesktop.org/drm/intel/issues/6768
  [i915#6944]: https://gitlab.freedesktop.org/drm/intel/issues/6944
  [i915#7061]: https://gitlab.freedesktop.org/drm/intel/issues/7061
  [i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118
  [i915#7162]: https://gitlab.freedesktop.org/drm/intel/issues/7162
  [i915#7173]: https://gitlab.freedesktop.org/drm/intel/issues/7173
  [i915#72]: https://gitlab.freedesktop.org/drm/intel/issues/72
  [i915#7213]: https://gitlab.freedesktop.org/drm/intel/issues/7213
  [i915#7331]: https://gitlab.freedesktop.org/drm/intel/issues/7331
  [i915#7392]: https://gitlab.freedesktop.org/drm/intel/issues/7392
  [i915#7443]: https://gitlab.freedesktop.org/drm/intel/issues/7443
  [i915#7461]: https://gitlab.freedesktop.org/drm/intel/issues/7461
  [i915#7484]: https://gitlab.freedesktop.org/drm/intel/issues/7484
  [i915#7691]: https://gitlab.freedesktop.org/drm/intel/issues/7691
  [i915#7701]: https://gitlab.freedesktop.org/drm/intel/issues/7701
  [i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711
  [i915#7742]: https://gitlab.freedesktop.org/drm/intel/issues/7742
  [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
  [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
  [i915#7940]: https://gitlab.freedesktop.org/drm/intel/issues/7940
  [i915#7947]: https://gitlab.freedesktop.org/drm/intel/issues/7947
  [i915#7975]: https://gitlab.freedesktop.org/drm/intel/issues/7975
  [i915#8102]: https://gitlab.freedesktop.org/drm/intel/issues/8102
  [i915#8211]: https://gitlab.freedesktop.org/drm/intel/issues/8211
  [i915#8213]: https://gitlab.freedesktop.org/drm/intel/issues/8213
  [i915#8228]: https://gitlab.freedesktop.org/drm/intel/issues/8228
  [i915#8234]: https://gitlab.freedesktop.org/drm/intel/issues/8234
  [i915#8247]: https://gitlab.freedesktop.org/drm/intel/issues/8247
  [i915#8292]: https://gitlab.freedesktop.org/drm/intel/issues/8292
  [i915#8414]: https://gitlab.freedesktop.org/drm/intel/issues/8414
  [i915#8428]: https://gitlab.freedesktop.org/drm/intel/issues/8428
  [i915#8489]: https://gitlab.freedesktop.org/drm/intel/issues/8489
  [i915#8502]: https://gitlab.freedesktop.org/drm/intel/issues/8502
  [i915#8521]: https://gitlab.freedesktop.org/drm/intel/issues/8521
  [i915#8555]: https://gitlab.freedesktop.org/drm/intel/issues/8555
  [i915#8628]: https://gitlab.freedesktop.org/drm/intel/issues/8628
  [i915#8661]: https://gitlab.freedesktop.org/drm/intel/issues/8661
  [i915#8668]: https://gitlab.freedesktop.org/drm/intel/issues/8668
  [i915#8708]: https://gitlab.freedesktop.org/drm/intel/issues/8708
  [i915#8709]: https://gitlab.freedesktop.org/drm/intel/issues/8709
  [i915#8758]: https://gitlab.freedesktop.org/drm/intel/issues/8758
  [i915#8808]: https://gitlab.freedesktop.org/drm/intel/issues/8808


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

  * Linux: CI_DRM_13380 -> Patchwork_120456v2
  * Piglit: None -> piglit_4509

  CI-20190529: 20190529
  CI_DRM_13380: c8d8bc62e682f5a569b3ded2b80848c47eb5c425 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_7383: e9d66ac434bd580af20b475ddbee01f5c042ed61 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_120456v2: c8d8bc62e682f5a569b3ded2b80848c47eb5c425 @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

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

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

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

* Re: [Intel-gfx] [PATCH v2 3/6] drm/i915/vdsc: Add function to read any PPS register
  2023-07-13  6:29 ` [Intel-gfx] [PATCH v2 3/6] drm/i915/vdsc: Add function to read any PPS register Suraj Kandpal
@ 2023-07-13 12:38   ` Jani Nikula
  2023-07-13 12:42     ` Jani Nikula
  2023-07-13 12:47   ` Jani Nikula
  1 sibling, 1 reply; 19+ messages in thread
From: Jani Nikula @ 2023-07-13 12:38 UTC (permalink / raw)
  To: Suraj Kandpal, intel-gfx

On Thu, 13 Jul 2023, Suraj Kandpal <suraj.kandpal@intel.com> wrote:
> Add function to read any PPS register based on the
> intel_dsc_pps enum provided. Add a function which will call the
> new pps read function and place it in crtc state. Only PPS0 and
> PPS1 are readout the rest of the registers will be read in upcoming
> patches.
>
> --v2
> -Changes in read function as PPS enum is removed
> -Initialize pps_val as 0 in pps_read func itself [Jani]
> -Create a function that gets the required register and call that
> in the common read function [Jani]
> -Move the drm_WARN_ON one abstraction layer above [Jani]
>
> Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_vdsc.c | 276 +++++++++++++++++++---
>  1 file changed, 242 insertions(+), 34 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.c b/drivers/gpu/drm/i915/display/intel_vdsc.c
> index d48b8306bfc3..48273a3618c5 100644
> --- a/drivers/gpu/drm/i915/display/intel_vdsc.c
> +++ b/drivers/gpu/drm/i915/display/intel_vdsc.c
> @@ -303,6 +303,196 @@ int intel_dsc_get_num_vdsc_instances(const struct intel_crtc_state *crtc_state)
>  	return num_vdsc_instances;
>  }
>  
> +static void intel_dsc_get_pps_reg(struct intel_crtc_state *crtc_state, int pps,
> +				  int dsc_eng_no, i915_reg_t *dsc_reg)
> +{
> +	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> +	enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
> +	struct drm_i915_private *i915 = to_i915(crtc->base.dev);
> +	enum pipe pipe = crtc->pipe;
> +	bool pipe_dsc;
> +
> +	pipe_dsc = is_pipe_dsc(crtc, cpu_transcoder);
> +
> +	switch (pps) {
> +	case 0:
> +		if (pipe_dsc) {
> +			if (dsc_eng_no == 2)

What's "dsc_eng_no", and why is it 0 or 2?

> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_0(pipe);
> +			else
> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_0(pipe);
> +		} else {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_0;
> +			else
> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_0;
> +		}

I think the branches are backwards here. Above it's DSC1, DSC0 and here
it's DSCA, DSCC.

I think I'd prefer having

	if (dsc_eng_no == 0)
        else

ordering in both.

> +		break;
> +	case 1:
> +		if (pipe_dsc) {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_1(pipe);
> +			else
> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_1(pipe);
> +		} else {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_1;
> +			else
> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_1;
> +		}
> +		break;
> +	case 2:
> +		if (pipe_dsc) {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_2(pipe);
> +			else
> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_2(pipe);
> +		} else {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_2;
> +			else
> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_2;
> +		}
> +		break;
> +	case 3:
> +		if (pipe_dsc) {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_3(pipe);
> +			else
> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_3(pipe);
> +		} else {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_3;
> +			else
> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_3;
> +		}
> +		break;
> +	case 4:
> +		if (pipe_dsc) {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_4(pipe);
> +			else
> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_4(pipe);
> +		} else {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_4;
> +			else
> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_4;
> +		}
> +		break;
> +	case 5:
> +		if (pipe_dsc) {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_5(pipe);
> +			else
> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_5(pipe);
> +		} else {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_5;
> +			else
> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_5;
> +		}
> +		break;
> +	case 6:
> +		if (pipe_dsc) {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_6(pipe);
> +			else
> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_6(pipe);
> +		} else {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_6;
> +			else
> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_6;
> +		}
> +		break;
> +	case 7:
> +		if (pipe_dsc) {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_7(pipe);
> +			else
> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_7(pipe);
> +		} else {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_7;
> +			else
> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_7;
> +		}
> +		break;
> +	case 8:
> +		if (pipe_dsc) {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_8(pipe);
> +			else
> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_8(pipe);
> +		} else {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_8;
> +			else
> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_8;
> +		}
> +		break;
> +	case 9:
> +		if (pipe_dsc) {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_9(pipe);
> +			else
> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_9(pipe);
> +		} else {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_9;
> +			else
> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_9;
> +		}
> +		break;
> +	case 10:
> +		if (pipe_dsc) {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_10(pipe);
> +			else
> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_10(pipe);
> +		} else {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_10;
> +			else
> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_10;
> +		}
> +		break;
> +	case 16:
> +		if (pipe_dsc) {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_16(pipe);
> +			else
> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_16(pipe);
> +		} else {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_16;
> +			else
> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_16;
> +		}
> +		break;
> +	/*
> +	 * Since PPS_17 and PPS_18 were introduced from MTL dsc check
> +	 * need not be done
> +	 */
> +	case 17:
> +		if (dsc_eng_no == 2)
> +			*dsc_reg = MTL_DSC1_PICTURE_PARAMETER_SET_17(pipe);
> +		else
> +			*dsc_reg = MTL_DSC0_PICTURE_PARAMETER_SET_17(pipe);
> +		break;
> +	case 18:
> +		if (dsc_eng_no == 2)
> +			*dsc_reg = MTL_DSC1_PICTURE_PARAMETER_SET_18(pipe);
> +		else
> +			*dsc_reg = MTL_DSC0_PICTURE_PARAMETER_SET_18(pipe);
> +		break;
> +	default:
> +		drm_err(&i915->drm, "PPS register does not exist\n");

It's a programming error if we hit here. drm_WARN() or MISSING_CASE() or
something would be better to be loud about it.

> +		break;
> +	}
> +}
> +
>  static void intel_dsc_pps_configure(const struct intel_crtc_state *crtc_state)
>  {
>  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> @@ -930,16 +1120,64 @@ void intel_dsc_disable(const struct intel_crtc_state *old_crtc_state)
>  	}
>  }
>  
> +static bool intel_dsc_read_pps_reg(struct intel_crtc_state *crtc_state,
> +				   int pps, u32 *pps_val)
> +{
> +	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> +	struct drm_i915_private *i915 = to_i915(crtc->base.dev);
> +	int num_vdsc_instances = intel_dsc_get_num_vdsc_instances(crtc_state);
> +	i915_reg_t dsc_reg;
> +	u32 pps_temp;
> +
> +	*pps_val = 0;
> +
> +	intel_dsc_get_pps_reg(crtc_state, pps, 0, &dsc_reg);
> +	*pps_val = intel_de_read(i915, dsc_reg);
> +	if (num_vdsc_instances > 1) {
> +		intel_dsc_get_pps_reg(crtc_state, pps, 2, &dsc_reg);
> +		pps_temp = intel_de_read(i915, dsc_reg);
> +		if (*pps_val != pps_temp)
> +			return true;
> +	}
> +	return false;

I'd really like the dsc reg read function to return the register value,
instead of returning it through a pointer variable. Dunno how to make it
work nicely with the verification, though.

Usually functions returning int, ret == 0 means success, and for
functions returning bool, ret == true means success. Here, ret == true
means failure, which is kind of backwards.

> +}
> +
> +static void intel_dsc_read_and_verify_pps_reg(struct intel_crtc_state *crtc_state,
> +					      int pps, u32 *pps_val)
> +{
> +	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> +	struct drm_i915_private *i915 = to_i915(crtc->base.dev);
> +	bool is_dsc_diff;
> +
> +	is_dsc_diff = intel_dsc_read_pps_reg(crtc_state, pps, pps_val);
> +	drm_WARN_ON(&i915->drm, is_dsc_diff);
> +}
> +
> +static void intel_dsc_get_pps_config(struct intel_crtc_state *crtc_state)
> +{
> +	struct drm_dsc_config *vdsc_cfg = &crtc_state->dsc.config;
> +	u32 pps_temp1, pps_temp2;
> +
> +	/* Readout PPS_0 and PPS_1 registers */
> +	intel_dsc_read_and_verify_pps_reg(crtc_state, 0, &pps_temp1);
> +	intel_dsc_read_and_verify_pps_reg(crtc_state, 1, &pps_temp2);
> +
> +	vdsc_cfg->bits_per_pixel = pps_temp2;
> +
> +	if (pps_temp1 & DSC_NATIVE_420_ENABLE)
> +		vdsc_cfg->bits_per_pixel >>= 1;
> +
> +	crtc_state->dsc.compressed_bpp = vdsc_cfg->bits_per_pixel >> 4;
> +}
> +
>  void intel_dsc_get_config(struct intel_crtc_state *crtc_state)
>  {
>  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> -	struct drm_dsc_config *vdsc_cfg = &crtc_state->dsc.config;
>  	enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
> -	enum pipe pipe = crtc->pipe;
>  	enum intel_display_power_domain power_domain;
>  	intel_wakeref_t wakeref;
> -	u32 dss_ctl1, dss_ctl2, pps0 = 0, pps1 = 0, pps_temp0 = 0, pps_temp1 = 1;
> +	u32 dss_ctl1, dss_ctl2;
>  
>  	if (!intel_dsc_source_support(crtc_state))
>  		return;
> @@ -960,37 +1198,7 @@ void intel_dsc_get_config(struct intel_crtc_state *crtc_state)
>  	crtc_state->dsc.dsc_split = (dss_ctl2 & RIGHT_BRANCH_VDSC_ENABLE) &&
>  		(dss_ctl1 & JOINER_ENABLE);
>  
> -	/* FIXME: add more state readout as needed */
> -
> -	/* PPS0 & PPS1 */
> -	if (!is_pipe_dsc(crtc, cpu_transcoder)) {
> -		pps1 = intel_de_read(dev_priv, DSCA_PICTURE_PARAMETER_SET_1);
> -		if (crtc_state->dsc.dsc_split) {
> -			pps_temp1 = intel_de_read(dev_priv, DSCC_PICTURE_PARAMETER_SET_1);
> -			drm_WARN_ON(&dev_priv->drm, pps1 != pps_temp1);
> -		}
> -
> -	} else {
> -		pps0 = intel_de_read(dev_priv,
> -				     ICL_DSC0_PICTURE_PARAMETER_SET_0(pipe));
> -		pps1 = intel_de_read(dev_priv,
> -				     ICL_DSC0_PICTURE_PARAMETER_SET_1(pipe));
> -		if (crtc_state->dsc.dsc_split) {
> -			pps_temp0 = intel_de_read(dev_priv,
> -						  ICL_DSC0_PICTURE_PARAMETER_SET_0(pipe));
> -			pps_temp1 = intel_de_read(dev_priv,
> -						  ICL_DSC0_PICTURE_PARAMETER_SET_1(pipe));
> -			drm_WARN_ON(&dev_priv->drm, pps0 != pps_temp0);
> -			drm_WARN_ON(&dev_priv->drm, pps1 != pps_temp1);
> -		}
> -	}
> -
> -	vdsc_cfg->bits_per_pixel = pps1;
> -
> -	if (pps0 & DSC_NATIVE_420_ENABLE)
> -		vdsc_cfg->bits_per_pixel >>= 1;
> -
> -	crtc_state->dsc.compressed_bpp = vdsc_cfg->bits_per_pixel >> 4;
> +	intel_dsc_get_pps_config(crtc_state);
>  out:
>  	intel_display_power_put(dev_priv, power_domain, wakeref);
>  }

-- 
Jani Nikula, Intel Open Source Graphics Center

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

* Re: [Intel-gfx] [PATCH v2 3/6] drm/i915/vdsc: Add function to read any PPS register
  2023-07-13 12:38   ` Jani Nikula
@ 2023-07-13 12:42     ` Jani Nikula
  0 siblings, 0 replies; 19+ messages in thread
From: Jani Nikula @ 2023-07-13 12:42 UTC (permalink / raw)
  To: Suraj Kandpal, intel-gfx

On Thu, 13 Jul 2023, Jani Nikula <jani.nikula@linux.intel.com> wrote:
> On Thu, 13 Jul 2023, Suraj Kandpal <suraj.kandpal@intel.com> wrote:
>> Add function to read any PPS register based on the
>> intel_dsc_pps enum provided. Add a function which will call the
>> new pps read function and place it in crtc state. Only PPS0 and
>> PPS1 are readout the rest of the registers will be read in upcoming
>> patches.
>>
>> --v2
>> -Changes in read function as PPS enum is removed
>> -Initialize pps_val as 0 in pps_read func itself [Jani]
>> -Create a function that gets the required register and call that
>> in the common read function [Jani]
>> -Move the drm_WARN_ON one abstraction layer above [Jani]
>>
>> Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
>> ---
>>  drivers/gpu/drm/i915/display/intel_vdsc.c | 276 +++++++++++++++++++---
>>  1 file changed, 242 insertions(+), 34 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.c b/drivers/gpu/drm/i915/display/intel_vdsc.c
>> index d48b8306bfc3..48273a3618c5 100644
>> --- a/drivers/gpu/drm/i915/display/intel_vdsc.c
>> +++ b/drivers/gpu/drm/i915/display/intel_vdsc.c
>> @@ -303,6 +303,196 @@ int intel_dsc_get_num_vdsc_instances(const struct intel_crtc_state *crtc_state)
>>  	return num_vdsc_instances;
>>  }
>>  
>> +static void intel_dsc_get_pps_reg(struct intel_crtc_state *crtc_state, int pps,
>> +				  int dsc_eng_no, i915_reg_t *dsc_reg)
>> +{
>> +	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>> +	enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
>> +	struct drm_i915_private *i915 = to_i915(crtc->base.dev);
>> +	enum pipe pipe = crtc->pipe;
>> +	bool pipe_dsc;
>> +
>> +	pipe_dsc = is_pipe_dsc(crtc, cpu_transcoder);
>> +
>> +	switch (pps) {
>> +	case 0:
>> +		if (pipe_dsc) {
>> +			if (dsc_eng_no == 2)
>
> What's "dsc_eng_no", and why is it 0 or 2?
>
>> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_0(pipe);
>> +			else
>> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_0(pipe);
>> +		} else {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_0;
>> +			else
>> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_0;
>> +		}
>
> I think the branches are backwards here. Above it's DSC1, DSC0 and here
> it's DSCA, DSCC.
>
> I think I'd prefer having
>
> 	if (dsc_eng_no == 0)
>         else
>
> ordering in both.

Actually, reading the patches further, I think it might be better to
always return both registers here. Make this:

static void intel_dsc_get_pps_reg(struct intel_crtc_state *crtc_state,
				  int pps, i915_reg_t *dsc_reg0, i915_reg_t *dsc_reg1)

and it both simplifies and optimizes a lot of places later on.

BR,
Jani.


>
>> +		break;
>> +	case 1:
>> +		if (pipe_dsc) {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_1(pipe);
>> +			else
>> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_1(pipe);
>> +		} else {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_1;
>> +			else
>> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_1;
>> +		}
>> +		break;
>> +	case 2:
>> +		if (pipe_dsc) {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_2(pipe);
>> +			else
>> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_2(pipe);
>> +		} else {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_2;
>> +			else
>> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_2;
>> +		}
>> +		break;
>> +	case 3:
>> +		if (pipe_dsc) {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_3(pipe);
>> +			else
>> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_3(pipe);
>> +		} else {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_3;
>> +			else
>> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_3;
>> +		}
>> +		break;
>> +	case 4:
>> +		if (pipe_dsc) {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_4(pipe);
>> +			else
>> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_4(pipe);
>> +		} else {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_4;
>> +			else
>> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_4;
>> +		}
>> +		break;
>> +	case 5:
>> +		if (pipe_dsc) {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_5(pipe);
>> +			else
>> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_5(pipe);
>> +		} else {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_5;
>> +			else
>> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_5;
>> +		}
>> +		break;
>> +	case 6:
>> +		if (pipe_dsc) {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_6(pipe);
>> +			else
>> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_6(pipe);
>> +		} else {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_6;
>> +			else
>> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_6;
>> +		}
>> +		break;
>> +	case 7:
>> +		if (pipe_dsc) {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_7(pipe);
>> +			else
>> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_7(pipe);
>> +		} else {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_7;
>> +			else
>> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_7;
>> +		}
>> +		break;
>> +	case 8:
>> +		if (pipe_dsc) {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_8(pipe);
>> +			else
>> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_8(pipe);
>> +		} else {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_8;
>> +			else
>> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_8;
>> +		}
>> +		break;
>> +	case 9:
>> +		if (pipe_dsc) {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_9(pipe);
>> +			else
>> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_9(pipe);
>> +		} else {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_9;
>> +			else
>> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_9;
>> +		}
>> +		break;
>> +	case 10:
>> +		if (pipe_dsc) {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_10(pipe);
>> +			else
>> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_10(pipe);
>> +		} else {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_10;
>> +			else
>> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_10;
>> +		}
>> +		break;
>> +	case 16:
>> +		if (pipe_dsc) {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_16(pipe);
>> +			else
>> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_16(pipe);
>> +		} else {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_16;
>> +			else
>> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_16;
>> +		}
>> +		break;
>> +	/*
>> +	 * Since PPS_17 and PPS_18 were introduced from MTL dsc check
>> +	 * need not be done
>> +	 */
>> +	case 17:
>> +		if (dsc_eng_no == 2)
>> +			*dsc_reg = MTL_DSC1_PICTURE_PARAMETER_SET_17(pipe);
>> +		else
>> +			*dsc_reg = MTL_DSC0_PICTURE_PARAMETER_SET_17(pipe);
>> +		break;
>> +	case 18:
>> +		if (dsc_eng_no == 2)
>> +			*dsc_reg = MTL_DSC1_PICTURE_PARAMETER_SET_18(pipe);
>> +		else
>> +			*dsc_reg = MTL_DSC0_PICTURE_PARAMETER_SET_18(pipe);
>> +		break;
>> +	default:
>> +		drm_err(&i915->drm, "PPS register does not exist\n");
>
> It's a programming error if we hit here. drm_WARN() or MISSING_CASE() or
> something would be better to be loud about it.
>
>> +		break;
>> +	}
>> +}
>> +
>>  static void intel_dsc_pps_configure(const struct intel_crtc_state *crtc_state)
>>  {
>>  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>> @@ -930,16 +1120,64 @@ void intel_dsc_disable(const struct intel_crtc_state *old_crtc_state)
>>  	}
>>  }
>>  
>> +static bool intel_dsc_read_pps_reg(struct intel_crtc_state *crtc_state,
>> +				   int pps, u32 *pps_val)
>> +{
>> +	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>> +	struct drm_i915_private *i915 = to_i915(crtc->base.dev);
>> +	int num_vdsc_instances = intel_dsc_get_num_vdsc_instances(crtc_state);
>> +	i915_reg_t dsc_reg;
>> +	u32 pps_temp;
>> +
>> +	*pps_val = 0;
>> +
>> +	intel_dsc_get_pps_reg(crtc_state, pps, 0, &dsc_reg);
>> +	*pps_val = intel_de_read(i915, dsc_reg);
>> +	if (num_vdsc_instances > 1) {
>> +		intel_dsc_get_pps_reg(crtc_state, pps, 2, &dsc_reg);
>> +		pps_temp = intel_de_read(i915, dsc_reg);
>> +		if (*pps_val != pps_temp)
>> +			return true;
>> +	}
>> +	return false;
>
> I'd really like the dsc reg read function to return the register value,
> instead of returning it through a pointer variable. Dunno how to make it
> work nicely with the verification, though.
>
> Usually functions returning int, ret == 0 means success, and for
> functions returning bool, ret == true means success. Here, ret == true
> means failure, which is kind of backwards.
>
>> +}
>> +
>> +static void intel_dsc_read_and_verify_pps_reg(struct intel_crtc_state *crtc_state,
>> +					      int pps, u32 *pps_val)
>> +{
>> +	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>> +	struct drm_i915_private *i915 = to_i915(crtc->base.dev);
>> +	bool is_dsc_diff;
>> +
>> +	is_dsc_diff = intel_dsc_read_pps_reg(crtc_state, pps, pps_val);
>> +	drm_WARN_ON(&i915->drm, is_dsc_diff);
>> +}
>> +
>> +static void intel_dsc_get_pps_config(struct intel_crtc_state *crtc_state)
>> +{
>> +	struct drm_dsc_config *vdsc_cfg = &crtc_state->dsc.config;
>> +	u32 pps_temp1, pps_temp2;
>> +
>> +	/* Readout PPS_0 and PPS_1 registers */
>> +	intel_dsc_read_and_verify_pps_reg(crtc_state, 0, &pps_temp1);
>> +	intel_dsc_read_and_verify_pps_reg(crtc_state, 1, &pps_temp2);
>> +
>> +	vdsc_cfg->bits_per_pixel = pps_temp2;
>> +
>> +	if (pps_temp1 & DSC_NATIVE_420_ENABLE)
>> +		vdsc_cfg->bits_per_pixel >>= 1;
>> +
>> +	crtc_state->dsc.compressed_bpp = vdsc_cfg->bits_per_pixel >> 4;
>> +}
>> +
>>  void intel_dsc_get_config(struct intel_crtc_state *crtc_state)
>>  {
>>  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
>> -	struct drm_dsc_config *vdsc_cfg = &crtc_state->dsc.config;
>>  	enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
>> -	enum pipe pipe = crtc->pipe;
>>  	enum intel_display_power_domain power_domain;
>>  	intel_wakeref_t wakeref;
>> -	u32 dss_ctl1, dss_ctl2, pps0 = 0, pps1 = 0, pps_temp0 = 0, pps_temp1 = 1;
>> +	u32 dss_ctl1, dss_ctl2;
>>  
>>  	if (!intel_dsc_source_support(crtc_state))
>>  		return;
>> @@ -960,37 +1198,7 @@ void intel_dsc_get_config(struct intel_crtc_state *crtc_state)
>>  	crtc_state->dsc.dsc_split = (dss_ctl2 & RIGHT_BRANCH_VDSC_ENABLE) &&
>>  		(dss_ctl1 & JOINER_ENABLE);
>>  
>> -	/* FIXME: add more state readout as needed */
>> -
>> -	/* PPS0 & PPS1 */
>> -	if (!is_pipe_dsc(crtc, cpu_transcoder)) {
>> -		pps1 = intel_de_read(dev_priv, DSCA_PICTURE_PARAMETER_SET_1);
>> -		if (crtc_state->dsc.dsc_split) {
>> -			pps_temp1 = intel_de_read(dev_priv, DSCC_PICTURE_PARAMETER_SET_1);
>> -			drm_WARN_ON(&dev_priv->drm, pps1 != pps_temp1);
>> -		}
>> -
>> -	} else {
>> -		pps0 = intel_de_read(dev_priv,
>> -				     ICL_DSC0_PICTURE_PARAMETER_SET_0(pipe));
>> -		pps1 = intel_de_read(dev_priv,
>> -				     ICL_DSC0_PICTURE_PARAMETER_SET_1(pipe));
>> -		if (crtc_state->dsc.dsc_split) {
>> -			pps_temp0 = intel_de_read(dev_priv,
>> -						  ICL_DSC0_PICTURE_PARAMETER_SET_0(pipe));
>> -			pps_temp1 = intel_de_read(dev_priv,
>> -						  ICL_DSC0_PICTURE_PARAMETER_SET_1(pipe));
>> -			drm_WARN_ON(&dev_priv->drm, pps0 != pps_temp0);
>> -			drm_WARN_ON(&dev_priv->drm, pps1 != pps_temp1);
>> -		}
>> -	}
>> -
>> -	vdsc_cfg->bits_per_pixel = pps1;
>> -
>> -	if (pps0 & DSC_NATIVE_420_ENABLE)
>> -		vdsc_cfg->bits_per_pixel >>= 1;
>> -
>> -	crtc_state->dsc.compressed_bpp = vdsc_cfg->bits_per_pixel >> 4;
>> +	intel_dsc_get_pps_config(crtc_state);
>>  out:
>>  	intel_display_power_put(dev_priv, power_domain, wakeref);
>>  }

-- 
Jani Nikula, Intel Open Source Graphics Center

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

* Re: [Intel-gfx] [PATCH v2 3/6] drm/i915/vdsc: Add function to read any PPS register
  2023-07-13  6:29 ` [Intel-gfx] [PATCH v2 3/6] drm/i915/vdsc: Add function to read any PPS register Suraj Kandpal
  2023-07-13 12:38   ` Jani Nikula
@ 2023-07-13 12:47   ` Jani Nikula
  2023-07-13 13:06     ` Kandpal, Suraj
  2023-07-13 13:10     ` Nautiyal, Ankit K
  1 sibling, 2 replies; 19+ messages in thread
From: Jani Nikula @ 2023-07-13 12:47 UTC (permalink / raw)
  To: Suraj Kandpal, intel-gfx

On Thu, 13 Jul 2023, Suraj Kandpal <suraj.kandpal@intel.com> wrote:
> Add function to read any PPS register based on the
> intel_dsc_pps enum provided. Add a function which will call the
> new pps read function and place it in crtc state. Only PPS0 and
> PPS1 are readout the rest of the registers will be read in upcoming
> patches.
>
> --v2
> -Changes in read function as PPS enum is removed
> -Initialize pps_val as 0 in pps_read func itself [Jani]
> -Create a function that gets the required register and call that
> in the common read function [Jani]
> -Move the drm_WARN_ON one abstraction layer above [Jani]
>
> Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_vdsc.c | 276 +++++++++++++++++++---
>  1 file changed, 242 insertions(+), 34 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.c b/drivers/gpu/drm/i915/display/intel_vdsc.c
> index d48b8306bfc3..48273a3618c5 100644
> --- a/drivers/gpu/drm/i915/display/intel_vdsc.c
> +++ b/drivers/gpu/drm/i915/display/intel_vdsc.c
> @@ -303,6 +303,196 @@ int intel_dsc_get_num_vdsc_instances(const struct intel_crtc_state *crtc_state)
>  	return num_vdsc_instances;
>  }
>  
> +static void intel_dsc_get_pps_reg(struct intel_crtc_state *crtc_state, int pps,
> +				  int dsc_eng_no, i915_reg_t *dsc_reg)
> +{
> +	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> +	enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
> +	struct drm_i915_private *i915 = to_i915(crtc->base.dev);
> +	enum pipe pipe = crtc->pipe;
> +	bool pipe_dsc;
> +
> +	pipe_dsc = is_pipe_dsc(crtc, cpu_transcoder);
> +
> +	switch (pps) {
> +	case 0:
> +		if (pipe_dsc) {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_0(pipe);
> +			else
> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_0(pipe);
> +		} else {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_0;
> +			else
> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_0;
> +		}
> +		break;
> +	case 1:
> +		if (pipe_dsc) {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_1(pipe);
> +			else
> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_1(pipe);
> +		} else {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_1;
> +			else
> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_1;
> +		}
> +		break;
> +	case 2:
> +		if (pipe_dsc) {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_2(pipe);
> +			else
> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_2(pipe);
> +		} else {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_2;
> +			else
> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_2;
> +		}
> +		break;
> +	case 3:
> +		if (pipe_dsc) {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_3(pipe);
> +			else
> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_3(pipe);
> +		} else {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_3;
> +			else
> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_3;
> +		}
> +		break;
> +	case 4:
> +		if (pipe_dsc) {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_4(pipe);
> +			else
> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_4(pipe);
> +		} else {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_4;
> +			else
> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_4;
> +		}
> +		break;
> +	case 5:
> +		if (pipe_dsc) {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_5(pipe);
> +			else
> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_5(pipe);
> +		} else {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_5;
> +			else
> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_5;
> +		}
> +		break;
> +	case 6:
> +		if (pipe_dsc) {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_6(pipe);
> +			else
> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_6(pipe);
> +		} else {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_6;
> +			else
> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_6;
> +		}
> +		break;
> +	case 7:
> +		if (pipe_dsc) {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_7(pipe);
> +			else
> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_7(pipe);
> +		} else {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_7;
> +			else
> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_7;
> +		}
> +		break;
> +	case 8:
> +		if (pipe_dsc) {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_8(pipe);
> +			else
> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_8(pipe);
> +		} else {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_8;
> +			else
> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_8;
> +		}
> +		break;
> +	case 9:
> +		if (pipe_dsc) {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_9(pipe);
> +			else
> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_9(pipe);
> +		} else {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_9;
> +			else
> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_9;
> +		}
> +		break;
> +	case 10:
> +		if (pipe_dsc) {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_10(pipe);
> +			else
> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_10(pipe);
> +		} else {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_10;
> +			else
> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_10;
> +		}
> +		break;
> +	case 16:
> +		if (pipe_dsc) {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_16(pipe);
> +			else
> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_16(pipe);
> +		} else {
> +			if (dsc_eng_no == 2)
> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_16;
> +			else
> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_16;
> +		}
> +		break;
> +	/*
> +	 * Since PPS_17 and PPS_18 were introduced from MTL dsc check
> +	 * need not be done
> +	 */
> +	case 17:
> +		if (dsc_eng_no == 2)
> +			*dsc_reg = MTL_DSC1_PICTURE_PARAMETER_SET_17(pipe);
> +		else
> +			*dsc_reg = MTL_DSC0_PICTURE_PARAMETER_SET_17(pipe);
> +		break;
> +	case 18:
> +		if (dsc_eng_no == 2)
> +			*dsc_reg = MTL_DSC1_PICTURE_PARAMETER_SET_18(pipe);
> +		else
> +			*dsc_reg = MTL_DSC0_PICTURE_PARAMETER_SET_18(pipe);
> +		break;
> +	default:
> +		drm_err(&i915->drm, "PPS register does not exist\n");
> +		break;
> +	}
> +}
> +
>  static void intel_dsc_pps_configure(const struct intel_crtc_state *crtc_state)
>  {
>  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> @@ -930,16 +1120,64 @@ void intel_dsc_disable(const struct intel_crtc_state *old_crtc_state)
>  	}
>  }
>  
> +static bool intel_dsc_read_pps_reg(struct intel_crtc_state *crtc_state,
> +				   int pps, u32 *pps_val)
> +{
> +	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> +	struct drm_i915_private *i915 = to_i915(crtc->base.dev);
> +	int num_vdsc_instances = intel_dsc_get_num_vdsc_instances(crtc_state);
> +	i915_reg_t dsc_reg;
> +	u32 pps_temp;
> +
> +	*pps_val = 0;
> +
> +	intel_dsc_get_pps_reg(crtc_state, pps, 0, &dsc_reg);
> +	*pps_val = intel_de_read(i915, dsc_reg);
> +	if (num_vdsc_instances > 1) {

Btw going from (crtc_state->dsc.dsc_split) to if (num_vdsc_instances >
1) should also be a separate change, instead of baked into this one.

BR,
Jani.



> +		intel_dsc_get_pps_reg(crtc_state, pps, 2, &dsc_reg);
> +		pps_temp = intel_de_read(i915, dsc_reg);
> +		if (*pps_val != pps_temp)
> +			return true;
> +	}
> +	return false;
> +}
> +
> +static void intel_dsc_read_and_verify_pps_reg(struct intel_crtc_state *crtc_state,
> +					      int pps, u32 *pps_val)
> +{
> +	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> +	struct drm_i915_private *i915 = to_i915(crtc->base.dev);
> +	bool is_dsc_diff;
> +
> +	is_dsc_diff = intel_dsc_read_pps_reg(crtc_state, pps, pps_val);
> +	drm_WARN_ON(&i915->drm, is_dsc_diff);
> +}
> +
> +static void intel_dsc_get_pps_config(struct intel_crtc_state *crtc_state)
> +{
> +	struct drm_dsc_config *vdsc_cfg = &crtc_state->dsc.config;
> +	u32 pps_temp1, pps_temp2;
> +
> +	/* Readout PPS_0 and PPS_1 registers */
> +	intel_dsc_read_and_verify_pps_reg(crtc_state, 0, &pps_temp1);
> +	intel_dsc_read_and_verify_pps_reg(crtc_state, 1, &pps_temp2);
> +
> +	vdsc_cfg->bits_per_pixel = pps_temp2;
> +
> +	if (pps_temp1 & DSC_NATIVE_420_ENABLE)
> +		vdsc_cfg->bits_per_pixel >>= 1;
> +
> +	crtc_state->dsc.compressed_bpp = vdsc_cfg->bits_per_pixel >> 4;
> +}
> +
>  void intel_dsc_get_config(struct intel_crtc_state *crtc_state)
>  {
>  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> -	struct drm_dsc_config *vdsc_cfg = &crtc_state->dsc.config;
>  	enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
> -	enum pipe pipe = crtc->pipe;
>  	enum intel_display_power_domain power_domain;
>  	intel_wakeref_t wakeref;
> -	u32 dss_ctl1, dss_ctl2, pps0 = 0, pps1 = 0, pps_temp0 = 0, pps_temp1 = 1;
> +	u32 dss_ctl1, dss_ctl2;
>  
>  	if (!intel_dsc_source_support(crtc_state))
>  		return;
> @@ -960,37 +1198,7 @@ void intel_dsc_get_config(struct intel_crtc_state *crtc_state)
>  	crtc_state->dsc.dsc_split = (dss_ctl2 & RIGHT_BRANCH_VDSC_ENABLE) &&
>  		(dss_ctl1 & JOINER_ENABLE);
>  
> -	/* FIXME: add more state readout as needed */
> -
> -	/* PPS0 & PPS1 */
> -	if (!is_pipe_dsc(crtc, cpu_transcoder)) {
> -		pps1 = intel_de_read(dev_priv, DSCA_PICTURE_PARAMETER_SET_1);
> -		if (crtc_state->dsc.dsc_split) {
> -			pps_temp1 = intel_de_read(dev_priv, DSCC_PICTURE_PARAMETER_SET_1);
> -			drm_WARN_ON(&dev_priv->drm, pps1 != pps_temp1);
> -		}
> -
> -	} else {
> -		pps0 = intel_de_read(dev_priv,
> -				     ICL_DSC0_PICTURE_PARAMETER_SET_0(pipe));
> -		pps1 = intel_de_read(dev_priv,
> -				     ICL_DSC0_PICTURE_PARAMETER_SET_1(pipe));
> -		if (crtc_state->dsc.dsc_split) {
> -			pps_temp0 = intel_de_read(dev_priv,
> -						  ICL_DSC0_PICTURE_PARAMETER_SET_0(pipe));
> -			pps_temp1 = intel_de_read(dev_priv,
> -						  ICL_DSC0_PICTURE_PARAMETER_SET_1(pipe));
> -			drm_WARN_ON(&dev_priv->drm, pps0 != pps_temp0);
> -			drm_WARN_ON(&dev_priv->drm, pps1 != pps_temp1);
> -		}
> -	}
> -
> -	vdsc_cfg->bits_per_pixel = pps1;
> -
> -	if (pps0 & DSC_NATIVE_420_ENABLE)
> -		vdsc_cfg->bits_per_pixel >>= 1;
> -
> -	crtc_state->dsc.compressed_bpp = vdsc_cfg->bits_per_pixel >> 4;
> +	intel_dsc_get_pps_config(crtc_state);
>  out:
>  	intel_display_power_put(dev_priv, power_domain, wakeref);
>  }

-- 
Jani Nikula, Intel Open Source Graphics Center

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

* Re: [Intel-gfx] [PATCH v2 2/6] drm/i915/vdsc: Add a check for dsc split cases
  2023-07-13 12:29   ` Jani Nikula
@ 2023-07-13 13:03     ` Kandpal, Suraj
  0 siblings, 0 replies; 19+ messages in thread
From: Kandpal, Suraj @ 2023-07-13 13:03 UTC (permalink / raw)
  To: Jani Nikula, intel-gfx@lists.freedesktop.org

> On Thu, 13 Jul 2023, Suraj Kandpal <suraj.kandpal@intel.com> wrote:
> > In intel_vdsc_get_config we only read the primary dsc engine register
> > and not take into account if the other dsc engine is in use and if
> > both registers have the same value or not this patche fixes that by
> > adding a check.
> >
> > Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
> > ---
> >  drivers/gpu/drm/i915/display/intel_vdsc.c | 15 ++++++++++++++-
> >  1 file changed, 14 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.c
> > b/drivers/gpu/drm/i915/display/intel_vdsc.c
> > index 530f3c08a172..d48b8306bfc3 100644
> > --- a/drivers/gpu/drm/i915/display/intel_vdsc.c
> > +++ b/drivers/gpu/drm/i915/display/intel_vdsc.c
> > @@ -939,7 +939,7 @@ void intel_dsc_get_config(struct intel_crtc_state
> *crtc_state)
> >  	enum pipe pipe = crtc->pipe;
> >  	enum intel_display_power_domain power_domain;
> >  	intel_wakeref_t wakeref;
> > -	u32 dss_ctl1, dss_ctl2, pps0 = 0, pps1 = 0;
> > +	u32 dss_ctl1, dss_ctl2, pps0 = 0, pps1 = 0, pps_temp0 = 0, pps_temp1
> > += 1;
> >
> >  	if (!intel_dsc_source_support(crtc_state))
> >  		return;
> > @@ -965,11 +965,24 @@ void intel_dsc_get_config(struct intel_crtc_state
> *crtc_state)
> >  	/* PPS0 & PPS1 */
> >  	if (!is_pipe_dsc(crtc, cpu_transcoder)) {
> >  		pps1 = intel_de_read(dev_priv,
> DSCA_PICTURE_PARAMETER_SET_1);
> > +		if (crtc_state->dsc.dsc_split) {
> > +			pps_temp1 = intel_de_read(dev_priv,
> DSCC_PICTURE_PARAMETER_SET_1);
> > +			drm_WARN_ON(&dev_priv->drm, pps1 !=
> pps_temp1);
> > +		}
> > +
> 
> Superfluous newline.
> 

Thanks for the review will fix that 

> >  	} else {
> >  		pps0 = intel_de_read(dev_priv,
> >
> ICL_DSC0_PICTURE_PARAMETER_SET_0(pipe));
> >  		pps1 = intel_de_read(dev_priv,
> >
> ICL_DSC0_PICTURE_PARAMETER_SET_1(pipe));
> > +		if (crtc_state->dsc.dsc_split) {
> > +			pps_temp0 = intel_de_read(dev_priv,
> > +
> ICL_DSC0_PICTURE_PARAMETER_SET_0(pipe));
> > +			pps_temp1 = intel_de_read(dev_priv,
> > +
> ICL_DSC0_PICTURE_PARAMETER_SET_1(pipe));
> 
> Those are the same two registers as above?
> 

Yes they are should have been _DSC1_instead

Regards,
Suraj Kandpal

> BR,
> Jani.
> 
> > +			drm_WARN_ON(&dev_priv->drm, pps0 !=
> pps_temp0);
> > +			drm_WARN_ON(&dev_priv->drm, pps1 !=
> pps_temp1);
> > +		}
> >  	}
> >
> >  	vdsc_cfg->bits_per_pixel = pps1;
> 
> --
> Jani Nikula, Intel Open Source Graphics Center

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

* Re: [Intel-gfx] [PATCH v2 3/6] drm/i915/vdsc: Add function to read any PPS register
  2023-07-13 12:47   ` Jani Nikula
@ 2023-07-13 13:06     ` Kandpal, Suraj
  2023-07-13 13:10     ` Nautiyal, Ankit K
  1 sibling, 0 replies; 19+ messages in thread
From: Kandpal, Suraj @ 2023-07-13 13:06 UTC (permalink / raw)
  To: Jani Nikula, intel-gfx@lists.freedesktop.org

 
> On Thu, 13 Jul 2023, Suraj Kandpal <suraj.kandpal@intel.com> wrote:
> > Add function to read any PPS register based on the intel_dsc_pps enum
> > provided. Add a function which will call the new pps read function and
> > place it in crtc state. Only PPS0 and
> > PPS1 are readout the rest of the registers will be read in upcoming
> > patches.
> >
> > --v2
> > -Changes in read function as PPS enum is removed -Initialize pps_val
> > as 0 in pps_read func itself [Jani] -Create a function that gets the
> > required register and call that in the common read function [Jani]
> > -Move the drm_WARN_ON one abstraction layer above [Jani]
> >
> > Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
> > ---
> >  drivers/gpu/drm/i915/display/intel_vdsc.c | 276
> > +++++++++++++++++++---
> >  1 file changed, 242 insertions(+), 34 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.c
> > b/drivers/gpu/drm/i915/display/intel_vdsc.c
> > index d48b8306bfc3..48273a3618c5 100644
> > --- a/drivers/gpu/drm/i915/display/intel_vdsc.c
> > +++ b/drivers/gpu/drm/i915/display/intel_vdsc.c
> > @@ -303,6 +303,196 @@ int intel_dsc_get_num_vdsc_instances(const
> struct intel_crtc_state *crtc_state)
> >  	return num_vdsc_instances;
> >  }
> >
> > +static void intel_dsc_get_pps_reg(struct intel_crtc_state *crtc_state, int
> pps,
> > +				  int dsc_eng_no, i915_reg_t *dsc_reg) {
> > +	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> > +	enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
> > +	struct drm_i915_private *i915 = to_i915(crtc->base.dev);
> > +	enum pipe pipe = crtc->pipe;
> > +	bool pipe_dsc;
> > +
> > +	pipe_dsc = is_pipe_dsc(crtc, cpu_transcoder);
> > +
> > +	switch (pps) {
> > +	case 0:
> > +		if (pipe_dsc) {
> > +			if (dsc_eng_no == 2)
> > +				*dsc_reg =
> ICL_DSC1_PICTURE_PARAMETER_SET_0(pipe);
> > +			else
> > +				*dsc_reg =
> ICL_DSC0_PICTURE_PARAMETER_SET_0(pipe);
> > +		} else {
> > +			if (dsc_eng_no == 2)
> > +				*dsc_reg =
> DSCA_PICTURE_PARAMETER_SET_0;
> > +			else
> > +				*dsc_reg =
> DSCC_PICTURE_PARAMETER_SET_0;
> > +		}
> > +		break;
> > +	case 1:
> > +		if (pipe_dsc) {
> > +			if (dsc_eng_no == 2)
> > +				*dsc_reg =
> ICL_DSC1_PICTURE_PARAMETER_SET_1(pipe);
> > +			else
> > +				*dsc_reg =
> ICL_DSC0_PICTURE_PARAMETER_SET_1(pipe);
> > +		} else {
> > +			if (dsc_eng_no == 2)
> > +				*dsc_reg =
> DSCA_PICTURE_PARAMETER_SET_1;
> > +			else
> > +				*dsc_reg =
> DSCC_PICTURE_PARAMETER_SET_1;
> > +		}
> > +		break;
> > +	case 2:
> > +		if (pipe_dsc) {
> > +			if (dsc_eng_no == 2)
> > +				*dsc_reg =
> ICL_DSC1_PICTURE_PARAMETER_SET_2(pipe);
> > +			else
> > +				*dsc_reg =
> ICL_DSC0_PICTURE_PARAMETER_SET_2(pipe);
> > +		} else {
> > +			if (dsc_eng_no == 2)
> > +				*dsc_reg =
> DSCA_PICTURE_PARAMETER_SET_2;
> > +			else
> > +				*dsc_reg =
> DSCC_PICTURE_PARAMETER_SET_2;
> > +		}
> > +		break;
> > +	case 3:
> > +		if (pipe_dsc) {
> > +			if (dsc_eng_no == 2)
> > +				*dsc_reg =
> ICL_DSC1_PICTURE_PARAMETER_SET_3(pipe);
> > +			else
> > +				*dsc_reg =
> ICL_DSC0_PICTURE_PARAMETER_SET_3(pipe);
> > +		} else {
> > +			if (dsc_eng_no == 2)
> > +				*dsc_reg =
> DSCA_PICTURE_PARAMETER_SET_3;
> > +			else
> > +				*dsc_reg =
> DSCC_PICTURE_PARAMETER_SET_3;
> > +		}
> > +		break;
> > +	case 4:
> > +		if (pipe_dsc) {
> > +			if (dsc_eng_no == 2)
> > +				*dsc_reg =
> ICL_DSC1_PICTURE_PARAMETER_SET_4(pipe);
> > +			else
> > +				*dsc_reg =
> ICL_DSC0_PICTURE_PARAMETER_SET_4(pipe);
> > +		} else {
> > +			if (dsc_eng_no == 2)
> > +				*dsc_reg =
> DSCA_PICTURE_PARAMETER_SET_4;
> > +			else
> > +				*dsc_reg =
> DSCC_PICTURE_PARAMETER_SET_4;
> > +		}
> > +		break;
> > +	case 5:
> > +		if (pipe_dsc) {
> > +			if (dsc_eng_no == 2)
> > +				*dsc_reg =
> ICL_DSC1_PICTURE_PARAMETER_SET_5(pipe);
> > +			else
> > +				*dsc_reg =
> ICL_DSC0_PICTURE_PARAMETER_SET_5(pipe);
> > +		} else {
> > +			if (dsc_eng_no == 2)
> > +				*dsc_reg =
> DSCA_PICTURE_PARAMETER_SET_5;
> > +			else
> > +				*dsc_reg =
> DSCC_PICTURE_PARAMETER_SET_5;
> > +		}
> > +		break;
> > +	case 6:
> > +		if (pipe_dsc) {
> > +			if (dsc_eng_no == 2)
> > +				*dsc_reg =
> ICL_DSC1_PICTURE_PARAMETER_SET_6(pipe);
> > +			else
> > +				*dsc_reg =
> ICL_DSC0_PICTURE_PARAMETER_SET_6(pipe);
> > +		} else {
> > +			if (dsc_eng_no == 2)
> > +				*dsc_reg =
> DSCA_PICTURE_PARAMETER_SET_6;
> > +			else
> > +				*dsc_reg =
> DSCC_PICTURE_PARAMETER_SET_6;
> > +		}
> > +		break;
> > +	case 7:
> > +		if (pipe_dsc) {
> > +			if (dsc_eng_no == 2)
> > +				*dsc_reg =
> ICL_DSC1_PICTURE_PARAMETER_SET_7(pipe);
> > +			else
> > +				*dsc_reg =
> ICL_DSC0_PICTURE_PARAMETER_SET_7(pipe);
> > +		} else {
> > +			if (dsc_eng_no == 2)
> > +				*dsc_reg =
> DSCA_PICTURE_PARAMETER_SET_7;
> > +			else
> > +				*dsc_reg =
> DSCC_PICTURE_PARAMETER_SET_7;
> > +		}
> > +		break;
> > +	case 8:
> > +		if (pipe_dsc) {
> > +			if (dsc_eng_no == 2)
> > +				*dsc_reg =
> ICL_DSC1_PICTURE_PARAMETER_SET_8(pipe);
> > +			else
> > +				*dsc_reg =
> ICL_DSC0_PICTURE_PARAMETER_SET_8(pipe);
> > +		} else {
> > +			if (dsc_eng_no == 2)
> > +				*dsc_reg =
> DSCA_PICTURE_PARAMETER_SET_8;
> > +			else
> > +				*dsc_reg =
> DSCC_PICTURE_PARAMETER_SET_8;
> > +		}
> > +		break;
> > +	case 9:
> > +		if (pipe_dsc) {
> > +			if (dsc_eng_no == 2)
> > +				*dsc_reg =
> ICL_DSC1_PICTURE_PARAMETER_SET_9(pipe);
> > +			else
> > +				*dsc_reg =
> ICL_DSC0_PICTURE_PARAMETER_SET_9(pipe);
> > +		} else {
> > +			if (dsc_eng_no == 2)
> > +				*dsc_reg =
> DSCA_PICTURE_PARAMETER_SET_9;
> > +			else
> > +				*dsc_reg =
> DSCC_PICTURE_PARAMETER_SET_9;
> > +		}
> > +		break;
> > +	case 10:
> > +		if (pipe_dsc) {
> > +			if (dsc_eng_no == 2)
> > +				*dsc_reg =
> ICL_DSC1_PICTURE_PARAMETER_SET_10(pipe);
> > +			else
> > +				*dsc_reg =
> ICL_DSC0_PICTURE_PARAMETER_SET_10(pipe);
> > +		} else {
> > +			if (dsc_eng_no == 2)
> > +				*dsc_reg =
> DSCA_PICTURE_PARAMETER_SET_10;
> > +			else
> > +				*dsc_reg =
> DSCC_PICTURE_PARAMETER_SET_10;
> > +		}
> > +		break;
> > +	case 16:
> > +		if (pipe_dsc) {
> > +			if (dsc_eng_no == 2)
> > +				*dsc_reg =
> ICL_DSC1_PICTURE_PARAMETER_SET_16(pipe);
> > +			else
> > +				*dsc_reg =
> ICL_DSC0_PICTURE_PARAMETER_SET_16(pipe);
> > +		} else {
> > +			if (dsc_eng_no == 2)
> > +				*dsc_reg =
> DSCA_PICTURE_PARAMETER_SET_16;
> > +			else
> > +				*dsc_reg =
> DSCC_PICTURE_PARAMETER_SET_16;
> > +		}
> > +		break;
> > +	/*
> > +	 * Since PPS_17 and PPS_18 were introduced from MTL dsc check
> > +	 * need not be done
> > +	 */
> > +	case 17:
> > +		if (dsc_eng_no == 2)
> > +			*dsc_reg =
> MTL_DSC1_PICTURE_PARAMETER_SET_17(pipe);
> > +		else
> > +			*dsc_reg =
> MTL_DSC0_PICTURE_PARAMETER_SET_17(pipe);
> > +		break;
> > +	case 18:
> > +		if (dsc_eng_no == 2)
> > +			*dsc_reg =
> MTL_DSC1_PICTURE_PARAMETER_SET_18(pipe);
> > +		else
> > +			*dsc_reg =
> MTL_DSC0_PICTURE_PARAMETER_SET_18(pipe);
> > +		break;
> > +	default:
> > +		drm_err(&i915->drm, "PPS register does not exist\n");
> > +		break;
> > +	}
> > +}
> > +
> >  static void intel_dsc_pps_configure(const struct intel_crtc_state
> > *crtc_state)  {
> >  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> > @@ -930,16 +1120,64 @@ void intel_dsc_disable(const struct
> intel_crtc_state *old_crtc_state)
> >  	}
> >  }
> >
> > +static bool intel_dsc_read_pps_reg(struct intel_crtc_state *crtc_state,
> > +				   int pps, u32 *pps_val)
> > +{
> > +	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> > +	struct drm_i915_private *i915 = to_i915(crtc->base.dev);
> > +	int num_vdsc_instances =
> intel_dsc_get_num_vdsc_instances(crtc_state);
> > +	i915_reg_t dsc_reg;
> > +	u32 pps_temp;
> > +
> > +	*pps_val = 0;
> > +
> > +	intel_dsc_get_pps_reg(crtc_state, pps, 0, &dsc_reg);
> > +	*pps_val = intel_de_read(i915, dsc_reg);
> > +	if (num_vdsc_instances > 1) {
> 
> Btw going from (crtc_state->dsc.dsc_split) to if (num_vdsc_instances >
> 1) should also be a separate change, instead of baked into this one.
> 

Ohkay will create a new patch after this one that goes from using crtc_state->dsc.dsc_split
to num_vdsc_instances > 1

Regards,
Suraj Kandpal

> BR,
> Jani.
> 
> 
> 
> > +		intel_dsc_get_pps_reg(crtc_state, pps, 2, &dsc_reg);
> > +		pps_temp = intel_de_read(i915, dsc_reg);
> > +		if (*pps_val != pps_temp)
> > +			return true;
> > +	}
> > +	return false;
> > +}
> > +
> > +static void intel_dsc_read_and_verify_pps_reg(struct intel_crtc_state
> *crtc_state,
> > +					      int pps, u32 *pps_val)
> > +{
> > +	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> > +	struct drm_i915_private *i915 = to_i915(crtc->base.dev);
> > +	bool is_dsc_diff;
> > +
> > +	is_dsc_diff = intel_dsc_read_pps_reg(crtc_state, pps, pps_val);
> > +	drm_WARN_ON(&i915->drm, is_dsc_diff); }
> > +
> > +static void intel_dsc_get_pps_config(struct intel_crtc_state
> > +*crtc_state) {
> > +	struct drm_dsc_config *vdsc_cfg = &crtc_state->dsc.config;
> > +	u32 pps_temp1, pps_temp2;
> > +
> > +	/* Readout PPS_0 and PPS_1 registers */
> > +	intel_dsc_read_and_verify_pps_reg(crtc_state, 0, &pps_temp1);
> > +	intel_dsc_read_and_verify_pps_reg(crtc_state, 1, &pps_temp2);
> > +
> > +	vdsc_cfg->bits_per_pixel = pps_temp2;
> > +
> > +	if (pps_temp1 & DSC_NATIVE_420_ENABLE)
> > +		vdsc_cfg->bits_per_pixel >>= 1;
> > +
> > +	crtc_state->dsc.compressed_bpp = vdsc_cfg->bits_per_pixel >> 4; }
> > +
> >  void intel_dsc_get_config(struct intel_crtc_state *crtc_state)  {
> >  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> >  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> > -	struct drm_dsc_config *vdsc_cfg = &crtc_state->dsc.config;
> >  	enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
> > -	enum pipe pipe = crtc->pipe;
> >  	enum intel_display_power_domain power_domain;
> >  	intel_wakeref_t wakeref;
> > -	u32 dss_ctl1, dss_ctl2, pps0 = 0, pps1 = 0, pps_temp0 = 0, pps_temp1
> = 1;
> > +	u32 dss_ctl1, dss_ctl2;
> >
> >  	if (!intel_dsc_source_support(crtc_state))
> >  		return;
> > @@ -960,37 +1198,7 @@ void intel_dsc_get_config(struct intel_crtc_state
> *crtc_state)
> >  	crtc_state->dsc.dsc_split = (dss_ctl2 &
> RIGHT_BRANCH_VDSC_ENABLE) &&
> >  		(dss_ctl1 & JOINER_ENABLE);
> >
> > -	/* FIXME: add more state readout as needed */
> > -
> > -	/* PPS0 & PPS1 */
> > -	if (!is_pipe_dsc(crtc, cpu_transcoder)) {
> > -		pps1 = intel_de_read(dev_priv,
> DSCA_PICTURE_PARAMETER_SET_1);
> > -		if (crtc_state->dsc.dsc_split) {
> > -			pps_temp1 = intel_de_read(dev_priv,
> DSCC_PICTURE_PARAMETER_SET_1);
> > -			drm_WARN_ON(&dev_priv->drm, pps1 !=
> pps_temp1);
> > -		}
> > -
> > -	} else {
> > -		pps0 = intel_de_read(dev_priv,
> > -
> ICL_DSC0_PICTURE_PARAMETER_SET_0(pipe));
> > -		pps1 = intel_de_read(dev_priv,
> > -
> ICL_DSC0_PICTURE_PARAMETER_SET_1(pipe));
> > -		if (crtc_state->dsc.dsc_split) {
> > -			pps_temp0 = intel_de_read(dev_priv,
> > -
> ICL_DSC0_PICTURE_PARAMETER_SET_0(pipe));
> > -			pps_temp1 = intel_de_read(dev_priv,
> > -
> ICL_DSC0_PICTURE_PARAMETER_SET_1(pipe));
> > -			drm_WARN_ON(&dev_priv->drm, pps0 !=
> pps_temp0);
> > -			drm_WARN_ON(&dev_priv->drm, pps1 !=
> pps_temp1);
> > -		}
> > -	}
> > -
> > -	vdsc_cfg->bits_per_pixel = pps1;
> > -
> > -	if (pps0 & DSC_NATIVE_420_ENABLE)
> > -		vdsc_cfg->bits_per_pixel >>= 1;
> > -
> > -	crtc_state->dsc.compressed_bpp = vdsc_cfg->bits_per_pixel >> 4;
> > +	intel_dsc_get_pps_config(crtc_state);
> >  out:
> >  	intel_display_power_put(dev_priv, power_domain, wakeref);  }
> 
> --
> Jani Nikula, Intel Open Source Graphics Center

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

* Re: [Intel-gfx] [PATCH v2 3/6] drm/i915/vdsc: Add function to read any PPS register
  2023-07-13 12:47   ` Jani Nikula
  2023-07-13 13:06     ` Kandpal, Suraj
@ 2023-07-13 13:10     ` Nautiyal, Ankit K
  1 sibling, 0 replies; 19+ messages in thread
From: Nautiyal, Ankit K @ 2023-07-13 13:10 UTC (permalink / raw)
  To: Jani Nikula, Suraj Kandpal, intel-gfx


On 7/13/2023 6:17 PM, Jani Nikula wrote:
> On Thu, 13 Jul 2023, Suraj Kandpal <suraj.kandpal@intel.com> wrote:
>> Add function to read any PPS register based on the
>> intel_dsc_pps enum provided. Add a function which will call the
>> new pps read function and place it in crtc state. Only PPS0 and
>> PPS1 are readout the rest of the registers will be read in upcoming
>> patches.
>>
>> --v2
>> -Changes in read function as PPS enum is removed
>> -Initialize pps_val as 0 in pps_read func itself [Jani]
>> -Create a function that gets the required register and call that
>> in the common read function [Jani]
>> -Move the drm_WARN_ON one abstraction layer above [Jani]
>>
>> Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
>> ---
>>   drivers/gpu/drm/i915/display/intel_vdsc.c | 276 +++++++++++++++++++---
>>   1 file changed, 242 insertions(+), 34 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.c b/drivers/gpu/drm/i915/display/intel_vdsc.c
>> index d48b8306bfc3..48273a3618c5 100644
>> --- a/drivers/gpu/drm/i915/display/intel_vdsc.c
>> +++ b/drivers/gpu/drm/i915/display/intel_vdsc.c
>> @@ -303,6 +303,196 @@ int intel_dsc_get_num_vdsc_instances(const struct intel_crtc_state *crtc_state)
>>   	return num_vdsc_instances;
>>   }
>>   
>> +static void intel_dsc_get_pps_reg(struct intel_crtc_state *crtc_state, int pps,
>> +				  int dsc_eng_no, i915_reg_t *dsc_reg)
>> +{
>> +	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>> +	enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
>> +	struct drm_i915_private *i915 = to_i915(crtc->base.dev);
>> +	enum pipe pipe = crtc->pipe;
>> +	bool pipe_dsc;
>> +
>> +	pipe_dsc = is_pipe_dsc(crtc, cpu_transcoder);
>> +
>> +	switch (pps) {
>> +	case 0:
>> +		if (pipe_dsc) {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_0(pipe);
>> +			else
>> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_0(pipe);
>> +		} else {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_0;
>> +			else
>> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_0;
>> +		}
>> +		break;
>> +	case 1:
>> +		if (pipe_dsc) {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_1(pipe);
>> +			else
>> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_1(pipe);
>> +		} else {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_1;
>> +			else
>> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_1;
>> +		}
>> +		break;
>> +	case 2:
>> +		if (pipe_dsc) {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_2(pipe);
>> +			else
>> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_2(pipe);
>> +		} else {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_2;
>> +			else
>> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_2;
>> +		}
>> +		break;
>> +	case 3:
>> +		if (pipe_dsc) {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_3(pipe);
>> +			else
>> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_3(pipe);
>> +		} else {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_3;
>> +			else
>> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_3;
>> +		}
>> +		break;
>> +	case 4:
>> +		if (pipe_dsc) {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_4(pipe);
>> +			else
>> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_4(pipe);
>> +		} else {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_4;
>> +			else
>> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_4;
>> +		}
>> +		break;
>> +	case 5:
>> +		if (pipe_dsc) {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_5(pipe);
>> +			else
>> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_5(pipe);
>> +		} else {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_5;
>> +			else
>> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_5;
>> +		}
>> +		break;
>> +	case 6:
>> +		if (pipe_dsc) {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_6(pipe);
>> +			else
>> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_6(pipe);
>> +		} else {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_6;
>> +			else
>> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_6;
>> +		}
>> +		break;
>> +	case 7:
>> +		if (pipe_dsc) {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_7(pipe);
>> +			else
>> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_7(pipe);
>> +		} else {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_7;
>> +			else
>> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_7;
>> +		}
>> +		break;
>> +	case 8:
>> +		if (pipe_dsc) {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_8(pipe);
>> +			else
>> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_8(pipe);
>> +		} else {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_8;
>> +			else
>> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_8;
>> +		}
>> +		break;
>> +	case 9:
>> +		if (pipe_dsc) {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_9(pipe);
>> +			else
>> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_9(pipe);
>> +		} else {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_9;
>> +			else
>> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_9;
>> +		}
>> +		break;
>> +	case 10:
>> +		if (pipe_dsc) {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_10(pipe);
>> +			else
>> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_10(pipe);
>> +		} else {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_10;
>> +			else
>> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_10;
>> +		}
>> +		break;
>> +	case 16:
>> +		if (pipe_dsc) {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = ICL_DSC1_PICTURE_PARAMETER_SET_16(pipe);
>> +			else
>> +				*dsc_reg = ICL_DSC0_PICTURE_PARAMETER_SET_16(pipe);
>> +		} else {
>> +			if (dsc_eng_no == 2)
>> +				*dsc_reg = DSCA_PICTURE_PARAMETER_SET_16;
>> +			else
>> +				*dsc_reg = DSCC_PICTURE_PARAMETER_SET_16;
>> +		}
>> +		break;
>> +	/*
>> +	 * Since PPS_17 and PPS_18 were introduced from MTL dsc check
>> +	 * need not be done
>> +	 */
>> +	case 17:
>> +		if (dsc_eng_no == 2)
>> +			*dsc_reg = MTL_DSC1_PICTURE_PARAMETER_SET_17(pipe);
>> +		else
>> +			*dsc_reg = MTL_DSC0_PICTURE_PARAMETER_SET_17(pipe);
>> +		break;
>> +	case 18:
>> +		if (dsc_eng_no == 2)
>> +			*dsc_reg = MTL_DSC1_PICTURE_PARAMETER_SET_18(pipe);
>> +		else
>> +			*dsc_reg = MTL_DSC0_PICTURE_PARAMETER_SET_18(pipe);
>> +		break;
>> +	default:
>> +		drm_err(&i915->drm, "PPS register does not exist\n");
>> +		break;
>> +	}
>> +}
>> +
>>   static void intel_dsc_pps_configure(const struct intel_crtc_state *crtc_state)
>>   {
>>   	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>> @@ -930,16 +1120,64 @@ void intel_dsc_disable(const struct intel_crtc_state *old_crtc_state)
>>   	}
>>   }
>>   
>> +static bool intel_dsc_read_pps_reg(struct intel_crtc_state *crtc_state,
>> +				   int pps, u32 *pps_val)
>> +{
>> +	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>> +	struct drm_i915_private *i915 = to_i915(crtc->base.dev);
>> +	int num_vdsc_instances = intel_dsc_get_num_vdsc_instances(crtc_state);
>> +	i915_reg_t dsc_reg;
>> +	u32 pps_temp;
>> +
>> +	*pps_val = 0;
>> +
>> +	intel_dsc_get_pps_reg(crtc_state, pps, 0, &dsc_reg);
>> +	*pps_val = intel_de_read(i915, dsc_reg);
>> +	if (num_vdsc_instances > 1) {
> Btw going from (crtc_state->dsc.dsc_split) to if (num_vdsc_instances >
> 1) should also be a separate change, instead of baked into this one.

Also, lets stick to dsc_split. Number of vdsc instances tells total 
number of vdsc instances, with bigjoiner it would give 2, even without 
dsc split.


Regards,

Ankit

> BR,
> Jani.
>
>
>
>> +		intel_dsc_get_pps_reg(crtc_state, pps, 2, &dsc_reg);
>> +		pps_temp = intel_de_read(i915, dsc_reg);
>> +		if (*pps_val != pps_temp)
>> +			return true;
>> +	}
>> +	return false;
>> +}
>> +
>> +static void intel_dsc_read_and_verify_pps_reg(struct intel_crtc_state *crtc_state,
>> +					      int pps, u32 *pps_val)
>> +{
>> +	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>> +	struct drm_i915_private *i915 = to_i915(crtc->base.dev);
>> +	bool is_dsc_diff;
>> +
>> +	is_dsc_diff = intel_dsc_read_pps_reg(crtc_state, pps, pps_val);
>> +	drm_WARN_ON(&i915->drm, is_dsc_diff);
>> +}
>> +
>> +static void intel_dsc_get_pps_config(struct intel_crtc_state *crtc_state)
>> +{
>> +	struct drm_dsc_config *vdsc_cfg = &crtc_state->dsc.config;
>> +	u32 pps_temp1, pps_temp2;
>> +
>> +	/* Readout PPS_0 and PPS_1 registers */
>> +	intel_dsc_read_and_verify_pps_reg(crtc_state, 0, &pps_temp1);
>> +	intel_dsc_read_and_verify_pps_reg(crtc_state, 1, &pps_temp2);
>> +
>> +	vdsc_cfg->bits_per_pixel = pps_temp2;
>> +
>> +	if (pps_temp1 & DSC_NATIVE_420_ENABLE)
>> +		vdsc_cfg->bits_per_pixel >>= 1;
>> +
>> +	crtc_state->dsc.compressed_bpp = vdsc_cfg->bits_per_pixel >> 4;
>> +}
>> +
>>   void intel_dsc_get_config(struct intel_crtc_state *crtc_state)
>>   {
>>   	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>>   	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
>> -	struct drm_dsc_config *vdsc_cfg = &crtc_state->dsc.config;
>>   	enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
>> -	enum pipe pipe = crtc->pipe;
>>   	enum intel_display_power_domain power_domain;
>>   	intel_wakeref_t wakeref;
>> -	u32 dss_ctl1, dss_ctl2, pps0 = 0, pps1 = 0, pps_temp0 = 0, pps_temp1 = 1;
>> +	u32 dss_ctl1, dss_ctl2;
>>   
>>   	if (!intel_dsc_source_support(crtc_state))
>>   		return;
>> @@ -960,37 +1198,7 @@ void intel_dsc_get_config(struct intel_crtc_state *crtc_state)
>>   	crtc_state->dsc.dsc_split = (dss_ctl2 & RIGHT_BRANCH_VDSC_ENABLE) &&
>>   		(dss_ctl1 & JOINER_ENABLE);
>>   
>> -	/* FIXME: add more state readout as needed */
>> -
>> -	/* PPS0 & PPS1 */
>> -	if (!is_pipe_dsc(crtc, cpu_transcoder)) {
>> -		pps1 = intel_de_read(dev_priv, DSCA_PICTURE_PARAMETER_SET_1);
>> -		if (crtc_state->dsc.dsc_split) {
>> -			pps_temp1 = intel_de_read(dev_priv, DSCC_PICTURE_PARAMETER_SET_1);
>> -			drm_WARN_ON(&dev_priv->drm, pps1 != pps_temp1);
>> -		}
>> -
>> -	} else {
>> -		pps0 = intel_de_read(dev_priv,
>> -				     ICL_DSC0_PICTURE_PARAMETER_SET_0(pipe));
>> -		pps1 = intel_de_read(dev_priv,
>> -				     ICL_DSC0_PICTURE_PARAMETER_SET_1(pipe));
>> -		if (crtc_state->dsc.dsc_split) {
>> -			pps_temp0 = intel_de_read(dev_priv,
>> -						  ICL_DSC0_PICTURE_PARAMETER_SET_0(pipe));
>> -			pps_temp1 = intel_de_read(dev_priv,
>> -						  ICL_DSC0_PICTURE_PARAMETER_SET_1(pipe));
>> -			drm_WARN_ON(&dev_priv->drm, pps0 != pps_temp0);
>> -			drm_WARN_ON(&dev_priv->drm, pps1 != pps_temp1);
>> -		}
>> -	}
>> -
>> -	vdsc_cfg->bits_per_pixel = pps1;
>> -
>> -	if (pps0 & DSC_NATIVE_420_ENABLE)
>> -		vdsc_cfg->bits_per_pixel >>= 1;
>> -
>> -	crtc_state->dsc.compressed_bpp = vdsc_cfg->bits_per_pixel >> 4;
>> +	intel_dsc_get_pps_config(crtc_state);
>>   out:
>>   	intel_display_power_put(dev_priv, power_domain, wakeref);
>>   }

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

* Re: [Intel-gfx] [PATCH v2 0/6] Add DSC PPS readout
  2023-07-13  6:29 [Intel-gfx] [PATCH v2 0/6] Add DSC PPS readout Suraj Kandpal
                   ` (9 preceding siblings ...)
  2023-07-13 12:30 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
@ 2023-07-13 13:15 ` Jani Nikula
  10 siblings, 0 replies; 19+ messages in thread
From: Jani Nikula @ 2023-07-13 13:15 UTC (permalink / raw)
  To: Suraj Kandpal, intel-gfx

On Thu, 13 Jul 2023, Suraj Kandpal <suraj.kandpal@intel.com> wrote:
> Up until now we only verified one or two of the dsc pps
> params like bits_per_component and bits_per_pixel this
> patch series aim to readout almost all PPS param and get
> them compared.
> Along with that some work on making a common function to
> read and write PPS param regiters is also done.

There are some issues that I noted, and I'm sure some things could be
done differently, but overall I think this makes nice improvements, and
it's definitely better than the first version.

The further versions will still require detailed review, but the overall
approach is now

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


>
> --v2
> -Remove duplicated code and create function that fetches register
> and reuse that [Jani]
> -move WARN_ON one abstraction layer up [Jani]
> -Split patch so that refactor and a new functionality is not added
> in the same patch [Jani]
> -Add a new refactor patch so that bit shifting can be done in a
> clean way [Jani]
>
> Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
>
> Suraj Kandpal (6):
>   drm/i915/vdsc: Refactor dsc register field macro
>   drm/i915/vdsc: Add a check for dsc split cases
>   drm/i915/vdsc: Add function to read any PPS register
>   drm/i915/vdsc: Add function to write in PPS register
>   drm/i915/vdsc: Fill the intel_dsc_get_pps_config function
>   drm/i915/display: Compare the readout dsc pps params
>
>  drivers/gpu/drm/i915/display/intel_display.c  |  31 +
>  drivers/gpu/drm/i915/display/intel_vdsc.c     | 622 ++++++++++--------
>  .../gpu/drm/i915/display/intel_vdsc_regs.h    | 101 ++-
>  3 files changed, 463 insertions(+), 291 deletions(-)

-- 
Jani Nikula, Intel Open Source Graphics Center

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

end of thread, other threads:[~2023-07-13 13:15 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-13  6:29 [Intel-gfx] [PATCH v2 0/6] Add DSC PPS readout Suraj Kandpal
2023-07-13  6:29 ` [Intel-gfx] [PATCH v2 1/6] drm/i915/vdsc: Refactor dsc register field macro Suraj Kandpal
2023-07-13  6:29 ` [Intel-gfx] [PATCH v2 2/6] drm/i915/vdsc: Add a check for dsc split cases Suraj Kandpal
2023-07-13 12:29   ` Jani Nikula
2023-07-13 13:03     ` Kandpal, Suraj
2023-07-13  6:29 ` [Intel-gfx] [PATCH v2 3/6] drm/i915/vdsc: Add function to read any PPS register Suraj Kandpal
2023-07-13 12:38   ` Jani Nikula
2023-07-13 12:42     ` Jani Nikula
2023-07-13 12:47   ` Jani Nikula
2023-07-13 13:06     ` Kandpal, Suraj
2023-07-13 13:10     ` Nautiyal, Ankit K
2023-07-13  6:29 ` [Intel-gfx] [PATCH v2 4/6] drm/i915/vdsc: Add function to write in " Suraj Kandpal
2023-07-13  6:29 ` [Intel-gfx] [PATCH v2 5/6] drm/i915/vdsc: Fill the intel_dsc_get_pps_config function Suraj Kandpal
2023-07-13  6:29 ` [Intel-gfx] [PATCH v2 6/6] drm/i915/display: Compare the readout dsc pps params Suraj Kandpal
2023-07-13  9:36 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Add DSC PPS readout (rev2) Patchwork
2023-07-13  9:36 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2023-07-13  9:49 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2023-07-13 12:30 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
2023-07-13 13:15 ` [Intel-gfx] [PATCH v2 0/6] Add DSC PPS readout Jani Nikula

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox