Skip to contentSkip to conversation

drm/i915: Make pipe/transcoder offsets not depend on enum values

PATCH In review Imre Deak 5 participants 19 messages Nov 19, 2018 – Nov 20, 2018

Subsystems (2)
lore
Share & tools
lore

Imre Deak

author
#0 lore raw

PATCH 1/3 drm/i915: Make pipe/transcoder offsets not depend on enum values

Depending on the transcoder enum values to translate from transcoder to pipe/transcoder register addresses can easily break if we add a new transcoder. So remove the dependency by using named initializers.

---
 drivers/gpu/drm/i915/i915_pci.c | 52 ++++++++++++++++++++++++++++++-----------
 1 file changed, 38 insertions(+), 14 deletions(-)
drivers/gpu/drm/i915/i915_pci.c +38 -14
index 983ae7fd8217..1b81d7cb209e 100644
@@ -33,16 +33,30 @@
 #define GEN(x) .gen = (x), .gen_mask = BIT((x) - 1)
 
 #define GEN_DEFAULT_PIPEOFFSETS \
-	.pipe_offsets = { PIPE_A_OFFSET, PIPE_B_OFFSET, \
-			  PIPE_C_OFFSET, PIPE_EDP_OFFSET }, \
-	.trans_offsets = { TRANSCODER_A_OFFSET, TRANSCODER_B_OFFSET, \
-			   TRANSCODER_C_OFFSET, TRANSCODER_EDP_OFFSET }
+	.pipe_offsets = { \
+		[TRANSCODER_A] = PIPE_A_OFFSET,	\
+		[TRANSCODER_B] = PIPE_B_OFFSET, \
+		[TRANSCODER_C] = PIPE_C_OFFSET, \
+		[TRANSCODER_EDP] = PIPE_EDP_OFFSET, \
+	}, \
+	.trans_offsets = { \
+		[TRANSCODER_A] = TRANSCODER_A_OFFSET, \
+		[TRANSCODER_B] = TRANSCODER_B_OFFSET, \
+		[TRANSCODER_C] = TRANSCODER_C_OFFSET, \
+		[TRANSCODER_EDP] = TRANSCODER_EDP_OFFSET, \
+	}
 
 #define GEN_CHV_PIPEOFFSETS \
-	.pipe_offsets = { PIPE_A_OFFSET, PIPE_B_OFFSET, \
-			  CHV_PIPE_C_OFFSET }, \
-	.trans_offsets = { TRANSCODER_A_OFFSET, TRANSCODER_B_OFFSET, \
-			   CHV_TRANSCODER_C_OFFSET }
+	.pipe_offsets = { \
+		[TRANSCODER_A] = PIPE_A_OFFSET, \
+		[TRANSCODER_B] = PIPE_B_OFFSET, \
+		[TRANSCODER_C] = CHV_PIPE_C_OFFSET, \
+	}, \
+	.trans_offsets = { \
+		[TRANSCODER_A] = TRANSCODER_A_OFFSET, \
+		[TRANSCODER_B] = TRANSCODER_B_OFFSET, \
+		[TRANSCODER_C] = CHV_TRANSCODER_C_OFFSET, \
+	}
 
 #define CURSOR_OFFSETS \
 	.cursor_offsets = { CURSOR_A_OFFSET, CURSOR_B_OFFSET, CHV_CURSOR_C_OFFSET }
@@ -592,12 +606,22 @@ static const struct intel_device_info intel_cannonlake_info = {
 
 #define GEN11_FEATURES \
 	GEN10_FEATURES, \
-	.pipe_offsets = { PIPE_A_OFFSET, PIPE_B_OFFSET, \
-			  PIPE_C_OFFSET, PIPE_EDP_OFFSET, \
-			  PIPE_DSI0_OFFSET, PIPE_DSI1_OFFSET }, \
-	.trans_offsets = { TRANSCODER_A_OFFSET, TRANSCODER_B_OFFSET, \
-			   TRANSCODER_C_OFFSET, TRANSCODER_EDP_OFFSET, \
-			   TRANSCODER_DSI0_OFFSET, TRANSCODER_DSI1_OFFSET}, \
+	.pipe_offsets = { \
+		[TRANSCODER_A] = PIPE_A_OFFSET, \
+		[TRANSCODER_B] = PIPE_B_OFFSET, \
+		[TRANSCODER_C] = PIPE_C_OFFSET, \
+		[TRANSCODER_EDP] = PIPE_EDP_OFFSET, \
+		[TRANSCODER_DSI_0] = PIPE_DSI0_OFFSET, \
+		[TRANSCODER_DSI_1] = PIPE_DSI1_OFFSET, \
+	}, \
+	.trans_offsets = { \
+		[TRANSCODER_A] = TRANSCODER_A_OFFSET, \
+		[TRANSCODER_B] = TRANSCODER_B_OFFSET, \
+		[TRANSCODER_C] = TRANSCODER_C_OFFSET, \
+		[TRANSCODER_EDP] = TRANSCODER_EDP_OFFSET, \
+		[TRANSCODER_DSI_0] = TRANSCODER_DSI0_OFFSET, \
+		[TRANSCODER_DSI_1] = TRANSCODER_DSI1_OFFSET, \
+	}, \
 	GEN(11), \
 	.ddb_size = 2048, \
 	.has_logical_ring_elsq = 1
Signature · 6 lines
2.13.2

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
author
#1 lore raw

PATCH 2/3 drm/i915: Make EDP PSR flags not depend on enum values

Depending on the transcoder enum values to translate from transcoder to EDP PSR flags can easily break if we add a new transcoder. So remove the dependency by using an explicit mapping.

While at it also add a WARN for unexpected trancoders.

Cc Ville Syrjälä <[email protected]>
Cc Lucas De Marchi <[email protected]>
Cc Mika Kahola <[email protected]>
---
 drivers/gpu/drm/i915/i915_reg.h  | 10 ++++--
 drivers/gpu/drm/i915/intel_psr.c | 70 +++++++++++++++++++++++++++++-----------
 2 files changed, 59 insertions(+), 21 deletions(-)
drivers/gpu/drm/i915/i915_reg.h +7 -3
index edb58af1e903..25b069175c2a 100644
@@ -4150,9 +4150,13 @@ enum {
 /* Bspec claims those aren't shifted but stay at 0x64800 */
 #define EDP_PSR_IMR				_MMIO(0x64834)
 #define EDP_PSR_IIR				_MMIO(0x64838)
-#define   EDP_PSR_ERROR(trans)			(1 << (((trans) * 8 + 10) & 31))
-#define   EDP_PSR_POST_EXIT(trans)		(1 << (((trans) * 8 + 9) & 31))
-#define   EDP_PSR_PRE_ENTRY(trans)		(1 << (((trans) * 8 + 8) & 31))
+#define   _EDP_PSR_ERROR(idx)			(1 << ((idx) * 8 + 2))
+#define   _EDP_PSR_POST_EXIT(idx)		(1 << ((idx) * 8 + 1))
+#define   _EDP_PSR_PRE_ENTRY(idx)		(1 << ((idx) * 8))
+#define   _EDP_PSR_TRANSCODER_A_IDX		1
+#define   _EDP_PSR_TRANSCODER_B_IDX		2
+#define   _EDP_PSR_TRANSCODER_C_IDX		3
+#define   _EDP_PSR_TRANSCODER_EDP_IDX		0
 
 #define EDP_PSR_AUX_CTL				_MMIO(dev_priv->psr_mmio_base + 0x10)
 #define   EDP_PSR_AUX_CTL_TIME_OUT_MASK		(3 << 26)
drivers/gpu/drm/i915/intel_psr.c +52 -18

94 lines not on this page · raw message

Signature · 6 lines
2.13.2

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
author
#2 lore raw

PATCH v2 2/3 drm/i915: Make EDP PSR flags not depend on enum values

Depending on the transcoder enum values to translate from transcoder to EDP PSR flags can easily break if we add a new transcoder. So remove the dependency by using an explicit mapping.

While at it also add a WARN for unexpected trancoders.

v2:
- Simplify things by defining flag shift values instead of indices.
- s/trans/cpu_transcoder/ (Ville)

Cc Ville Syrjälä <[email protected]>
Cc Lucas De Marchi <[email protected]>
Cc Mika Kahola <[email protected]>
---
 drivers/gpu/drm/i915/i915_reg.h  | 10 +++++---
 drivers/gpu/drm/i915/intel_psr.c | 55 +++++++++++++++++++++++++++-------------
 2 files changed, 44 insertions(+), 21 deletions(-)
drivers/gpu/drm/i915/i915_reg.h +7 -3
index edb58af1e903..f80b16e3ff33 100644
@@ -4150,9 +4150,13 @@ enum {
 /* Bspec claims those aren't shifted but stay at 0x64800 */
 #define EDP_PSR_IMR				_MMIO(0x64834)
 #define EDP_PSR_IIR				_MMIO(0x64838)
-#define   EDP_PSR_ERROR(trans)			(1 << (((trans) * 8 + 10) & 31))
-#define   EDP_PSR_POST_EXIT(trans)		(1 << (((trans) * 8 + 9) & 31))
-#define   EDP_PSR_PRE_ENTRY(trans)		(1 << (((trans) * 8 + 8) & 31))
+#define   EDP_PSR_ERROR(shift)			(4 << (shift))
+#define   EDP_PSR_POST_EXIT(shift)		(2 << (shift))
+#define   EDP_PSR_PRE_ENTRY(shift)		(1 << (shift))
+#define   EDP_PSR_TRANSCODER_C_SHIFT		24
+#define   EDP_PSR_TRANSCODER_B_SHIFT		16
+#define   EDP_PSR_TRANSCODER_A_SHIFT		8
+#define   EDP_PSR_TRANSCODER_EDP_SHIFT		0
 
 #define EDP_PSR_AUX_CTL				_MMIO(dev_priv->psr_mmio_base + 0x10)
 #define   EDP_PSR_AUX_CTL_TIME_OUT_MASK		(3 << 26)
drivers/gpu/drm/i915/intel_psr.c +37 -18

80 lines not on this page · raw message

Signature · 6 lines
2.13.2

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Reviewed-by on v2 2/3
#3 lore raw

Re: [PATCH v2 2/3] drm/i915: Make EDP PSR flags not depend on enum values

Quoted 24 lines · Imre Deak

Depending on the transcoder enum values to translate from transcoder to EDP PSR flags can easily break if we add a new transcoder. So remove the dependency by using an explicit mapping.

While at it also add a WARN for unexpected trancoders.

v2:
- Simplify things by defining flag shift values instead of indices.
- s/trans/cpu_transcoder/ (Ville)

Cc Ville Syrjälä <[email protected]>
Cc Lucas De Marchi <[email protected]>
Cc Mika Kahola <[email protected]>
---
 drivers/gpu/drm/i915/i915_reg.h  | 10 +++++---
 drivers/gpu/drm/i915/intel_psr.c | 55 +++++++++++++++++++++++++++-------------
 2 files changed, 44 insertions(+), 21 deletions(-)
drivers/gpu/drm/i915/i915_reg.h +0 -0
index edb58af1e903..f80b16e3ff33 100644

drivers/gpu/drm/i915/i915_reg.h enum { · line 4155

Quoted 9 lines
drivers/gpu/drm/i915/i915_reg.h +3 -3
@@ -4150,9 +4150,13 @@ enum {
 /* Bspec claims those aren't shifted but stay at 0x64800 */
 #define EDP_PSR_IMR				_MMIO(0x64834)
 #define EDP_PSR_IIR				_MMIO(0x64838)
-#define   EDP_PSR_ERROR(trans)			(1 << (((trans) * 8 + 10) & 31))
-#define   EDP_PSR_POST_EXIT(trans)		(1 << (((trans) * 8 + 9) & 31))
-#define   EDP_PSR_PRE_ENTRY(trans)		(1 << (((trans) * 8 + 8) & 31))
+#define   EDP_PSR_ERROR(shift)			(4 << (shift))
+#define   EDP_PSR_POST_EXIT(shift)		(2 << (shift))
+#define   EDP_PSR_PRE_ENTRY(shift)		(1 << (shift))

The 1,2,4 suggest that these are values for the same bitfield, which they are not. So I would prefer 1<<((shift)+n) etc. instead.

Quoted 95 lines
drivers/gpu/drm/i915/i915_reg.h +4 -0
+#define   EDP_PSR_TRANSCODER_C_SHIFT		24
+#define   EDP_PSR_TRANSCODER_B_SHIFT		16
+#define   EDP_PSR_TRANSCODER_A_SHIFT		8
+#define   EDP_PSR_TRANSCODER_EDP_SHIFT		0
 
 #define EDP_PSR_AUX_CTL				_MMIO(dev_priv->psr_mmio_base + 0x10)
 #define   EDP_PSR_AUX_CTL_TIME_OUT_MASK		(3 << 26)
drivers/gpu/drm/i915/intel_psr.c +37 -18
index 48df16a02fac..26292961d693 100644
@@ -83,25 +83,42 @@ static bool intel_psr2_enabled(struct drm_i915_private *dev_priv,
 	}
 }
 
+static int edp_psr_shift(enum transcoder cpu_transcoder)
+{
+	switch (cpu_transcoder) {
+	case TRANSCODER_A:
+		return EDP_PSR_TRANSCODER_A_SHIFT;
+	case TRANSCODER_B:
+		return EDP_PSR_TRANSCODER_B_SHIFT;
+	case TRANSCODER_C:
+		return EDP_PSR_TRANSCODER_C_SHIFT;
+	default:
+		MISSING_CASE(cpu_transcoder);
+		/* fallthrough */
+	case TRANSCODER_EDP:
+		return EDP_PSR_TRANSCODER_EDP_SHIFT;
+	}
+}
+
 void intel_psr_irq_control(struct drm_i915_private *dev_priv, u32 debug)
 {
 	u32 debug_mask, mask;
+	enum transcoder cpu_transcoder;
+	u32 transcoders = BIT(TRANSCODER_EDP);
 
-	mask = EDP_PSR_ERROR(TRANSCODER_EDP);
-	debug_mask = EDP_PSR_POST_EXIT(TRANSCODER_EDP) |
-		     EDP_PSR_PRE_ENTRY(TRANSCODER_EDP);
-
-	if (INTEL_GEN(dev_priv) >= 8) {
-		mask |= EDP_PSR_ERROR(TRANSCODER_A) |
-			EDP_PSR_ERROR(TRANSCODER_B) |
-			EDP_PSR_ERROR(TRANSCODER_C);
-
-		debug_mask |= EDP_PSR_POST_EXIT(TRANSCODER_A) |
-			      EDP_PSR_PRE_ENTRY(TRANSCODER_A) |
-			      EDP_PSR_POST_EXIT(TRANSCODER_B) |
-			      EDP_PSR_PRE_ENTRY(TRANSCODER_B) |
-			      EDP_PSR_POST_EXIT(TRANSCODER_C) |
-			      EDP_PSR_PRE_ENTRY(TRANSCODER_C);
+	if (INTEL_GEN(dev_priv) >= 8)
+		transcoders |= BIT(TRANSCODER_A) |
+			       BIT(TRANSCODER_B) |
+			       BIT(TRANSCODER_C);
+
+	debug_mask = 0;
+	mask = 0;
+	for_each_cpu_transcoder_masked(dev_priv, cpu_transcoder, transcoders) {
+		int shift = edp_psr_shift(cpu_transcoder);
+
+		mask |= EDP_PSR_ERROR(shift);
+		debug_mask |= EDP_PSR_POST_EXIT(shift) |
+			      EDP_PSR_PRE_ENTRY(shift);
 	}
 
 	if (debug & I915_PSR_DEBUG_IRQ)
@@ -159,18 +176,20 @@ void intel_psr_irq_handler(struct drm_i915_private *dev_priv, u32 psr_iir)
 			       BIT(TRANSCODER_C);
 
 	for_each_cpu_transcoder_masked(dev_priv, cpu_transcoder, transcoders) {
+		int shift = edp_psr_shift(cpu_transcoder);
+
 		/* FIXME: Exit PSR and link train manually when this happens. */
-		if (psr_iir & EDP_PSR_ERROR(cpu_transcoder))
+		if (psr_iir & EDP_PSR_ERROR(shift))
 			DRM_DEBUG_KMS("[transcoder %s] PSR aux error\n",
 				      transcoder_name(cpu_transcoder));
 
-		if (psr_iir & EDP_PSR_PRE_ENTRY(cpu_transcoder)) {
+		if (psr_iir & EDP_PSR_PRE_ENTRY(shift)) {
 			dev_priv->psr.last_entry_attempt = time_ns;
 			DRM_DEBUG_KMS("[transcoder %s] PSR entry attempt in 2 vblanks\n",
 				      transcoder_name(cpu_transcoder));
 		}
 
-		if (psr_iir & EDP_PSR_POST_EXIT(cpu_transcoder)) {
+		if (psr_iir & EDP_PSR_POST_EXIT(shift)) {
 			dev_priv->psr.last_exit = time_ns;
 			DRM_DEBUG_KMS("[transcoder %s] PSR exit completed\n",
 				      transcoder_name(cpu_transcoder));
Signature · 1 line
2.13.2
Signature · 6 lines
Ville Syrjälä
Intel
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
author
#4 lore raw

PATCH v3 2/3 drm/i915: Make EDP PSR flags not depend on enum values

In reply to Imre Deak

Depending on the transcoder enum values to translate from transcoder to EDP PSR flags can easily break if we add a new transcoder. So remove the dependency by using an explicit mapping.

While at it also add a WARN for unexpected trancoders.

v2:
- Simplify things by defining flag shift values instead of indices.
- s/trans/cpu_transcoder/ (Ville)
v3:
- Define flags to look like seperate bits instead of the values of the same bitfield. (Ville)

Cc Ville Syrjälä <[email protected]>
Cc Lucas De Marchi <[email protected]>
Cc Mika Kahola <[email protected]>
---
 drivers/gpu/drm/i915/i915_reg.h  | 10 +++++---
 drivers/gpu/drm/i915/intel_psr.c | 55 +++++++++++++++++++++++++++-------------
 2 files changed, 44 insertions(+), 21 deletions(-)
drivers/gpu/drm/i915/i915_reg.h +7 -3
index edb58af1e903..e6b371e986ee 100644
@@ -4150,9 +4150,13 @@ enum {
 /* Bspec claims those aren't shifted but stay at 0x64800 */
 #define EDP_PSR_IMR				_MMIO(0x64834)
 #define EDP_PSR_IIR				_MMIO(0x64838)
-#define   EDP_PSR_ERROR(trans)			(1 << (((trans) * 8 + 10) & 31))
-#define   EDP_PSR_POST_EXIT(trans)		(1 << (((trans) * 8 + 9) & 31))
-#define   EDP_PSR_PRE_ENTRY(trans)		(1 << (((trans) * 8 + 8) & 31))
+#define   EDP_PSR_ERROR(shift)			(1 << ((shift) + 2))
+#define   EDP_PSR_POST_EXIT(shift)		(1 << ((shift) + 1))
+#define   EDP_PSR_PRE_ENTRY(shift)		(1 << (shift))
+#define   EDP_PSR_TRANSCODER_C_SHIFT		24
+#define   EDP_PSR_TRANSCODER_B_SHIFT		16
+#define   EDP_PSR_TRANSCODER_A_SHIFT		8
+#define   EDP_PSR_TRANSCODER_EDP_SHIFT		0
 
 #define EDP_PSR_AUX_CTL				_MMIO(dev_priv->psr_mmio_base + 0x10)
 #define   EDP_PSR_AUX_CTL_TIME_OUT_MASK		(3 << 26)
drivers/gpu/drm/i915/intel_psr.c +37 -18

80 lines not on this page · raw message

Signature · 6 lines
2.13.2

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
author
#5 lore raw

PATCH v2 3/3 drm/i915: Add code comment on assumption of pipe==transcoder

Add a comment to the pipe and transcoder enum definitions about our assumption in the code about enum values for pipes and transcoders with a 1:1 transcoder->pipe mapping.

v2:
- Clarify more what are the assumptions about the enum values. (Ville)

Cc Ville Syrjälä <[email protected]>
Cc Lucas De Marchi <[email protected]>
Cc Mika Kahola <[email protected]>
---
 drivers/gpu/drm/i915/intel_display.h | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
drivers/gpu/drm/i915/intel_display.h +16 -0
index 43eb4ebbcc35..846f63d056fb 100644
@@ -43,6 +43,11 @@ enum i915_gpio {
 	GPIOM,
 };
 
+/*
+ * Keep the pipe enum values fixed: the code assumes that PIPE_A=0, the
+ * rest have consecutive values and match the enum values of transcoders
+ * with a 1:1 transcoder->pipe mapping.
+ */
 enum pipe {
 	INVALID_PIPE = -1,
 
@@ -57,9 +62,20 @@ enum pipe {
 #define pipe_name(p) ((p) + 'A')
 
 enum transcoder {
+	/*
+	 * The following transcoders have a 1:1 transcoder->pipe mapping, keep
+	 * their values fixed: the code assumes that TRANSCODER_A=0, the rest
+	 * have consecutive values and match the enum values of the pipes they
+	 * map to.
+	 */
 	TRANSCODER_A = 0,
 	TRANSCODER_B,
 	TRANSCODER_C,
+
+	/*
+	 * The following transcoders can map to any pipe, their enum value
+	 * doesn't need to stay fixed.
+	 */
 	TRANSCODER_EDP,
 	TRANSCODER_DSI_0,
 	TRANSCODER_DSI_1,
Signature · 6 lines
2.13.2

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
author
#6 lore raw

PATCH 3/3 drm/i915: Add code comment on assumption of pipe==transcoder

In reply to Imre Deak

Add a comment to the pipe and transcoder enum definitions about our assumption in the code that pipe==transcoder for PIPE_A-C / TRANSCODER_A-C. This means we have to keep the values for these pipe/transcoder enums fixed.

Cc Ville Syrjälä <[email protected]>
Cc Lucas De Marchi <[email protected]>
Cc Mika Kahola <[email protected]>
---
 drivers/gpu/drm/i915/intel_display.h | 8 ++++++++
 1 file changed, 8 insertions(+)
drivers/gpu/drm/i915/intel_display.h +8 -0
index 43eb4ebbcc35..cbb5d79d6a4c 100644
@@ -43,6 +43,10 @@ enum i915_gpio {
 	GPIOM,
 };
 
+/*
+ * Keep the PIPE_A-C values fixed, we assume that pipe==transcoder for
+ * these pipes.
+ */
 enum pipe {
 	INVALID_PIPE = -1,
 
@@ -56,6 +60,10 @@ enum pipe {
 
 #define pipe_name(p) ((p) + 'A')
 
+/*
+ * Keep the TRANSCODER_A-C values fixed, we assume that pipe==transcoder for
+ * these transcoders.
+ */
 enum transcoder {
 	TRANSCODER_A = 0,
 	TRANSCODER_B,
Signature · 6 lines
2.13.2

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
#7 lore raw

Re: [PATCH 3/3] drm/i915: Add code comment on assumption of pipe==transcoder

Quoted 18 lines · Imre Deak

Add a comment to the pipe and transcoder enum definitions about our assumption in the code that pipe==transcoder for PIPE_A-C / TRANSCODER_A-C. This means we have to keep the values for these pipe/transcoder enums fixed.

Cc Ville Syrjälä <[email protected]>
Cc Lucas De Marchi <[email protected]>
Cc Mika Kahola <[email protected]>
---
 drivers/gpu/drm/i915/intel_display.h | 8 ++++++++
 1 file changed, 8 insertions(+)
drivers/gpu/drm/i915/intel_display.h +0 -0
index 43eb4ebbcc35..cbb5d79d6a4c 100644

drivers/gpu/drm/i915/intel_display.h enum i915_gpio { · line 49

Quoted 7 lines
drivers/gpu/drm/i915/intel_display.h +4 -0
@@ -43,6 +43,10 @@ enum i915_gpio {
 	GPIOM,
 };
 
+/*
+ * Keep the PIPE_A-C values fixed, we assume that pipe==transcoder for
+ * these pipes.
+ */

I suspect the A-C part is going to bitrot. Also I'm sure we make more assupmtions about these values (PIPE_A == 0, PIPE_N+1 == n+1, etc.). We should probably try to spell it all out here.

drivers/gpu/drm/i915/intel_display.h enum pipe { · line 66

Quoted 11 lines
drivers/gpu/drm/i915/intel_display.h +4 -0
 enum pipe {
 	INVALID_PIPE = -1,
 
@@ -56,6 +60,10 @@ enum pipe {
 
 #define pipe_name(p) ((p) + 'A')
 
+/*
+ * Keep the TRANSCODER_A-C values fixed, we assume that pipe==transcoder for
+ * these transcoders.
+ */

Same issue with the A-C part perhaps.

Quoted 5 lines
drivers/gpu/drm/i915/intel_display.h +0 -0
 enum transcoder {
 	TRANSCODER_A = 0,
 	TRANSCODER_B,
Signature · 1 line
2.13.2
Signature · 6 lines
Ville Syrjälä
Intel
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
author
#8 lore raw

Re: [PATCH 3/3] drm/i915: Add code comment on assumption of pipe==transcoder

Quoted 22 lines · Ville Syrjälä
Quoted 21 lines · Imre Deak

Add a comment to the pipe and transcoder enum definitions about our assumption in the code that pipe==transcoder for PIPE_A-C / TRANSCODER_A-C. This means we have to keep the values for these pipe/transcoder enums fixed.

Cc Ville Syrjälä <[email protected]>
Cc Lucas De Marchi <[email protected]>
Cc Mika Kahola <[email protected]>
---
 drivers/gpu/drm/i915/intel_display.h | 8 ++++++++
 1 file changed, 8 insertions(+)
drivers/gpu/drm/i915/intel_display.h +0 -0
index 43eb4ebbcc35..cbb5d79d6a4c 100644
@@ -43,6 +43,10 @@ enum i915_gpio {
 	GPIOM,
 };
 
Quoted 9 lines

drivers/gpu/drm/i915/intel_display.h enum i915_gpio { · line 49

Quoted 4 lines
drivers/gpu/drm/i915/intel_display.h +4 -0
+/*
+ * Keep the PIPE_A-C values fixed, we assume that pipe==transcoder for
+ * these pipes.
+ */

I suspect the A-C part is going to bitrot. Also I'm sure we make more assupmtions about these values (PIPE_A == 0, PIPE_N+1 == n+1, etc.). We should probably try to spell it all out here.

Ok, can add instead:

/*
* Keep the pipe enum values fixed: the code assumes that PIPE_A=0, the
* rest have consecutive values and match the enum values of transcoders
* with a 1:1 transcoder->pipe mapping.
*/

Quoted 6 lines
Quoted 6 lines
drivers/gpu/drm/i915/intel_display.h +0 -0
 enum pipe {
 	INVALID_PIPE = -1,
 
@@ -56,6 +60,10 @@ enum pipe {
 
Quoted 8 lines

drivers/gpu/drm/i915/intel_display.h enum pipe { · line 66

Quoted 6 lines
drivers/gpu/drm/i915/intel_display.h +4 -0
 #define pipe_name(p) ((p) + 'A')
 
+/*
+ * Keep the TRANSCODER_A-C values fixed, we assume that pipe==transcoder for
+ * these transcoders.
+ */

Same issue with the A-C part perhaps.

and here:

Quoted 2 lines

drivers/gpu/drm/i915/intel_display.h enum pipe { · line 67

Quoted 2 lines
drivers/gpu/drm/i915/intel_display.h +0 -0
 enum transcoder {

/*
* The following transcoders have a 1:1 transcoder->pipe mapping, keep
* their values fixed: the code assumes that TRANSCODER_A=0, the rest
* have consecutive values and match the enum values of the pipes they map
* to.
*/

Quoted 3 lines
Quoted 3 lines
drivers/gpu/drm/i915/intel_display.h +0 -0
 	TRANSCODER_A = 0,
 	TRANSCODER_B,

TRANSCODER_C,

/*
* The following transcoders can map to any pipe, their enum value
* doesn't need to stay fixed.
*/

Quoted 11 lines
Quoted 7 lines

TRANSCODER_EDP,
TRANSCODER_DSI_0,
TRANSCODER_DSI_1,

Signature · 1 line
2.13.2
Signature · 2 lines
Ville Syrjälä
Intel

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reviewed-by
#9 lore raw

Re: [PATCH 3/3] drm/i915: Add code comment on assumption of pipe==transcoder

Quoted 69 lines · Imre Deak
Quoted 22 lines · Ville Syrjälä
Quoted 21 lines · Imre Deak

Add a comment to the pipe and transcoder enum definitions about our assumption in the code that pipe==transcoder for PIPE_A-C / TRANSCODER_A-C. This means we have to keep the values for these pipe/transcoder enums fixed.

Cc Ville Syrjälä <[email protected]>
Cc Lucas De Marchi <[email protected]>
Cc Mika Kahola <[email protected]>
---
 drivers/gpu/drm/i915/intel_display.h | 8 ++++++++
 1 file changed, 8 insertions(+)
drivers/gpu/drm/i915/intel_display.h +0 -0
index 43eb4ebbcc35..cbb5d79d6a4c 100644
@@ -43,6 +43,10 @@ enum i915_gpio {
 	GPIOM,
 };
 
Quoted 9 lines

drivers/gpu/drm/i915/intel_display.h enum i915_gpio { · line 49

Quoted 4 lines
drivers/gpu/drm/i915/intel_display.h +4 -0
+/*
+ * Keep the PIPE_A-C values fixed, we assume that pipe==transcoder for
+ * these pipes.
+ */

I suspect the A-C part is going to bitrot. Also I'm sure we make more assupmtions about these values (PIPE_A == 0, PIPE_N+1 == n+1, etc.). We should probably try to spell it all out here.

Ok, can add instead:

/*
* Keep the pipe enum values fixed: the code assumes that PIPE_A=0, the
* rest have consecutive values and match the enum values of transcoders
* with a 1:1 transcoder->pipe mapping.
*/

Quoted 6 lines
Quoted 6 lines
drivers/gpu/drm/i915/intel_display.h +0 -0
 enum pipe {
 	INVALID_PIPE = -1,
 
@@ -56,6 +60,10 @@ enum pipe {
 
Quoted 8 lines

drivers/gpu/drm/i915/intel_display.h enum pipe { · line 66

Quoted 6 lines
drivers/gpu/drm/i915/intel_display.h +4 -0
 #define pipe_name(p) ((p) + 'A')
 
+/*
+ * Keep the TRANSCODER_A-C values fixed, we assume that pipe==transcoder for
+ * these transcoders.
+ */

Same issue with the A-C part perhaps.

and here:

Quoted 2 lines

drivers/gpu/drm/i915/intel_display.h enum pipe { · line 67

Quoted 2 lines
drivers/gpu/drm/i915/intel_display.h +0 -0
 enum transcoder {

/*
* The following transcoders have a 1:1 transcoder->pipe mapping, keep
* their values fixed: the code assumes that TRANSCODER_A=0, the rest
* have consecutive values and match the enum values of the pipes they map
* to.
*/

Quoted 8 lines
Quoted 3 lines
Quoted 3 lines
drivers/gpu/drm/i915/intel_display.h +0 -0
 	TRANSCODER_A = 0,
 	TRANSCODER_B,

TRANSCODER_C,

/*
* The following transcoders can map to any pipe, their enum value
* doesn't need to stay fixed.
*/

lgtm

Quoted 12 lines
Quoted 12 lines
Quoted 8 lines

TRANSCODER_EDP,
TRANSCODER_DSI_0,
TRANSCODER_DSI_1,

Signature · 1 line
2.13.2
Signature · 2 lines
Ville Syrjälä
Intel
Signature · 6 lines
Ville Syrjälä
Intel
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
#10 lore raw

Re: [PATCH 3/3] drm/i915: Add code comment on assumption of pipe==transcoder

In reply to Imre Deak
Quoted 33 lines · Imre Deak
Quoted 22 lines · Ville Syrjälä
Quoted 21 lines · Imre Deak

Add a comment to the pipe and transcoder enum definitions about our assumption in the code that pipe==transcoder for PIPE_A-C / TRANSCODER_A-C. This means we have to keep the values for these pipe/transcoder enums fixed.

Cc Ville Syrjälä <[email protected]>
Cc Lucas De Marchi <[email protected]>
Cc Mika Kahola <[email protected]>
---
 drivers/gpu/drm/i915/intel_display.h | 8 ++++++++
 1 file changed, 8 insertions(+)
drivers/gpu/drm/i915/intel_display.h +0 -0
index 43eb4ebbcc35..cbb5d79d6a4c 100644
@@ -43,6 +43,10 @@ enum i915_gpio {
 	GPIOM,
 };
 
Quoted 9 lines

drivers/gpu/drm/i915/intel_display.h enum i915_gpio { · line 49

Quoted 4 lines
drivers/gpu/drm/i915/intel_display.h +4 -0
+/*
+ * Keep the PIPE_A-C values fixed, we assume that pipe==transcoder for
+ * these pipes.
+ */

I suspect the A-C part is going to bitrot. Also I'm sure we make more assupmtions about these values (PIPE_A == 0, PIPE_N+1 == n+1, etc.). We should probably try to spell it all out here.

Quoted 6 lines

Ok, can add instead:

/*
* Keep the pipe enum values fixed: the code assumes that PIPE_A=0, the
* rest have consecutive values and match the enum values of transcoders
* with a 1:1 transcoder->pipe mapping.

1:1 transcoder <-> pipe mapping, so it doesn't look like it's a pointer :)

Quoted 20 lines

*/

Quoted 6 lines
Quoted 6 lines
drivers/gpu/drm/i915/intel_display.h +0 -0
 enum pipe {
 	INVALID_PIPE = -1,
 
@@ -56,6 +60,10 @@ enum pipe {
 
Quoted 8 lines

drivers/gpu/drm/i915/intel_display.h enum pipe { · line 66

Quoted 6 lines
drivers/gpu/drm/i915/intel_display.h +4 -0
 #define pipe_name(p) ((p) + 'A')
 
+/*
+ * Keep the TRANSCODER_A-C values fixed, we assume that pipe==transcoder for
+ * these transcoders.
+ */

Same issue with the A-C part perhaps.

and here:

Quoted 1 line
Quoted 13 lines
Quoted 1 line

drivers/gpu/drm/i915/intel_display.h enum pipe { · line 67

Quoted 1 line
drivers/gpu/drm/i915/intel_display.h +0 -0
 enum transcoder {

/*
* The following transcoders have a 1:1 transcoder->pipe mapping, keep
* their values fixed: the code assumes that TRANSCODER_A=0, the rest
* have consecutive values and match the enum values of the pipes they map
* to.
*/

Quoted 3 lines
Quoted 3 lines
drivers/gpu/drm/i915/intel_display.h +0 -0
 	TRANSCODER_A = 0,
 	TRANSCODER_B,

TRANSCODER_C,

could we additionally do like below?

TRANSCODER_A = PIPE_A,
TRANSCODER_B = PIPE_B,
TRANSCODER_C = PIPE_C,

Or at least a BUILD_BUG_ON(TRANSCODER_A != PIPE_A || TRANSCODER_B != PIPE_B || TRANSCODER_C != PIPE_C)

Lucas De Marchi

Quoted 14 lines

/*
* The following transcoders can map to any pipe, their enum value
* doesn't need to stay fixed.
*/

Quoted 8 lines
Quoted 7 lines

TRANSCODER_EDP,
TRANSCODER_DSI_0,
TRANSCODER_DSI_1,

Signature · 1 line
2.13.2
Quoted 7 lines
Quoted 3 lines
Signature · 2 lines
Ville Syrjälä
Intel

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

author
#11 lore raw

Re: [PATCH 3/3] drm/i915: Add code comment on assumption of pipe==transcoder

Quoted 34 lines · Lucas De Marchi
Quoted 33 lines · Imre Deak
Quoted 31 lines · Ville Syrjälä
Quoted 18 lines · Imre Deak

Add a comment to the pipe and transcoder enum definitions about our assumption in the code that pipe==transcoder for PIPE_A-C / TRANSCODER_A-C. This means we have to keep the values for these pipe/transcoder enums fixed.

Cc Ville Syrjälä <[email protected]>
Cc Lucas De Marchi <[email protected]>
Cc Mika Kahola <[email protected]>
---
 drivers/gpu/drm/i915/intel_display.h | 8 ++++++++
 1 file changed, 8 insertions(+)
drivers/gpu/drm/i915/intel_display.h +0 -0
index 43eb4ebbcc35..cbb5d79d6a4c 100644

drivers/gpu/drm/i915/intel_display.h enum i915_gpio { · line 49

Quoted 7 lines
drivers/gpu/drm/i915/intel_display.h +4 -0
@@ -43,6 +43,10 @@ enum i915_gpio {
 	GPIOM,
 };
 
+/*
+ * Keep the PIPE_A-C values fixed, we assume that pipe==transcoder for
+ * these pipes.
+ */

I suspect the A-C part is going to bitrot. Also I'm sure we make more assupmtions about these values (PIPE_A == 0, PIPE_N+1 == n+1, etc.). We should probably try to spell it all out here.

Quoted 8 lines
Quoted 6 lines

Ok, can add instead:

/*
* Keep the pipe enum values fixed: the code assumes that PIPE_A=0, the
* rest have consecutive values and match the enum values of transcoders
* with a 1:1 transcoder->pipe mapping.

1:1 transcoder <-> pipe mapping, so it doesn't look like it's a pointer :)

You can only map from transcoder to pipe not the other way around (a pipe can always be connected to any transcoder). But will add spaces around '->'.

Quoted 35 lines
Quoted 21 lines

*/

Quoted 6 lines
Quoted 6 lines
drivers/gpu/drm/i915/intel_display.h +0 -0
 enum pipe {
 	INVALID_PIPE = -1,
 
@@ -56,6 +60,10 @@ enum pipe {
 
Quoted 8 lines

drivers/gpu/drm/i915/intel_display.h enum pipe { · line 66

Quoted 6 lines
drivers/gpu/drm/i915/intel_display.h +4 -0
 #define pipe_name(p) ((p) + 'A')
 
+/*
+ * Keep the TRANSCODER_A-C values fixed, we assume that pipe==transcoder for
+ * these transcoders.
+ */

Same issue with the A-C part perhaps.

and here:

Quoted 1 line
Quoted 13 lines
Quoted 1 line

drivers/gpu/drm/i915/intel_display.h enum pipe { · line 67

Quoted 1 line
drivers/gpu/drm/i915/intel_display.h +0 -0
 enum transcoder {

/*
* The following transcoders have a 1:1 transcoder->pipe mapping, keep
* their values fixed: the code assumes that TRANSCODER_A=0, the rest
* have consecutive values and match the enum values of the pipes they map
* to.
*/

Quoted 3 lines
Quoted 3 lines
drivers/gpu/drm/i915/intel_display.h +0 -0
 	TRANSCODER_A = 0,
 	TRANSCODER_B,

TRANSCODER_C,

Quoted 5 lines

could we additionally do like below?

TRANSCODER_A = PIPE_A,
TRANSCODER_B = PIPE_B,
TRANSCODER_C = PIPE_C,

Good idea, will change it.

Quoted 1 line

Or at least a BUILD_BUG_ON(TRANSCODER_A != PIPE_A || TRANSCODER_B != PIPE_B || TRANSCODER_C != PIPE_C)

This could get stale.

Quoted 24 lines

Lucas De Marchi

Quoted 21 lines

/*
* The following transcoders can map to any pipe, their enum value
* doesn't need to stay fixed.
*/

Quoted 11 lines
Quoted 7 lines

TRANSCODER_EDP,
TRANSCODER_DSI_0,
TRANSCODER_DSI_1,

Signature · 1 line
2.13.2
Signature · 2 lines
Ville Syrjälä
Intel

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

#12 lore raw

✓ Fi.CI.BAT: success for series starting with [1/3] drm/i915: Make pipe/transcoder offsets not depend on enum values

In reply to Imre Deak
== Series Details ==

== Series Details ==

Series: series starting with [1/3] drm/i915: Make pipe/transcoder offsets not depend on enum values
URL : https://patchwork.freedesktop.org/series/52693/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_5160 -> Patchwork_10847 =

== Summary - SUCCESS ==

No regressions found.

External URL: https://patchwork.freedesktop.org/api/1.0/series/52693/revisions/1/mbox/

== Possible new issues ==

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

=== IGT changes ===

    ==== Possible regressions ====

    {igt@runner@aborted}:
      fi-icl-u:           NOTRUN -> FAIL

== Known issues ==

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

=== IGT changes ===

    ==== Issues hit ====

    igt@gem_ctx_create@basic-files:
      fi-icl-u2:          PASS -> DMESG-WARN (fdo#107724)

    igt@gem_exec_suspend@basic-s3:
      fi-cfl-8109u:       PASS -> FAIL (fdo#103375)

    
    ==== Possible fixes ====

    igt@gem_ctx_create@basic-files:
      fi-bsw-kefka:       FAIL (fdo#108656) -> PASS

    igt@gem_exec_suspend@basic-s3:
      fi-icl-u2:          DMESG-WARN (fdo#107724) -> PASS

    igt@gem_mmap_gtt@basic-small-copy:
      fi-glk-dsi:         INCOMPLETE (fdo#103359, k.org#198133) -> PASS

    igt@kms_frontbuffer_tracking@basic:
      fi-icl-u:           FAIL (fdo#103167) -> PASS

    igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b-frame-sequence:
      fi-byt-clapper:     FAIL (fdo#103191, fdo#107362) -> PASS

    
    ==== Warnings ====

    igt@i915_selftest@live_contexts:
      fi-icl-u:           DMESG-FAIL (fdo#108569) -> INCOMPLETE (fdo#108315)

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

fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191
fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359
fdo#103375 https://bugs.freedesktop.org/show_bug.cgi?id=103375
fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362
fdo#107724 https://bugs.freedesktop.org/show_bug.cgi?id=107724
fdo#108315 https://bugs.freedesktop.org/show_bug.cgi?id=108315
fdo#108569 https://bugs.freedesktop.org/show_bug.cgi?id=108569
fdo#108656 https://bugs.freedesktop.org/show_bug.cgi?id=108656
k.org#198133 https://bugzilla.kernel.org/show_bug.cgi?id=198133

== Participating hosts (51 -> 47) ==

Additional (1): fi-pnv-d510
Missing (5): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600

== Build changes ==

* Linux: CI_DRM_5160 -> Patchwork_10847

CI_DRM_5160: 80350f0233d79937675bdc76d7864f51843ccc63 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_4720: c27aaca295d3ca2a38521e571c012449371e4bb5 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_10847: 799f685980adcac64afb2b90df4a0f38330553ff @ git://anongit.freedesktop.org/gfx-ci/linux

== Linux commits ==

799f685980ad drm/i915: Add code comment on assumption of pipe==transcoder 2dee3a985fdf drm/i915: Make EDP PSR flags not depend on enum values 15efd4a42d55 drm/i915: Make pipe/transcoder offsets not depend on enum values

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10847/issues.html
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reviewed-by on v1 1/3
#13 lore raw
In reply to Imre Deak
Quoted 18 lines · Imre Deak

Depending on the transcoder enum values to translate from transcoder to pipe/transcoder register addresses can easily break if we add a new transcoder. So remove the dependency by using named initializers.

---
 drivers/gpu/drm/i915/i915_pci.c | 52 ++++++++++++++++++++++++++++++-----------
 1 file changed, 38 insertions(+), 14 deletions(-)
drivers/gpu/drm/i915/i915_pci.c +0 -0
index 983ae7fd8217..1b81d7cb209e 100644
@@ -33,16 +33,30 @@
 #define GEN(x) .gen = (x), .gen_mask = BIT((x) - 1)
 

drivers/gpu/drm/i915/i915_pci.c line 40

Quoted 10 lines
drivers/gpu/drm/i915/i915_pci.c +5 -4
 #define GEN_DEFAULT_PIPEOFFSETS \
-	.pipe_offsets = { PIPE_A_OFFSET, PIPE_B_OFFSET, \
-			  PIPE_C_OFFSET, PIPE_EDP_OFFSET }, \
-	.trans_offsets = { TRANSCODER_A_OFFSET, TRANSCODER_B_OFFSET, \
-			   TRANSCODER_C_OFFSET, TRANSCODER_EDP_OFFSET }
+	.pipe_offsets = { \
+		[TRANSCODER_A] = PIPE_A_OFFSET,	\
+		[TRANSCODER_B] = PIPE_B_OFFSET, \
+		[TRANSCODER_C] = PIPE_C_OFFSET, \
+		[TRANSCODER_EDP] = PIPE_EDP_OFFSET, \

Hmm. We do define this as int pipe_offsets[I915_MAX_TRANSCODERS], and PIPECONF/TRANSCONF is per-transcoder so I suppose using TRANSCODER_foo here make sense.

Couple of things that came to mind while thinking about this:
- pipe_offsets[] & co. could probably be u32 since we don't need negative values
- _PIPE_EDP could be removed, which would maybe shrink a few arrays based on I915_MAX_PIPES

Patch is

Quoted 57 lines
drivers/gpu/drm/i915/i915_pci.c +33 -10
+	}, \
+	.trans_offsets = { \
+		[TRANSCODER_A] = TRANSCODER_A_OFFSET, \
+		[TRANSCODER_B] = TRANSCODER_B_OFFSET, \
+		[TRANSCODER_C] = TRANSCODER_C_OFFSET, \
+		[TRANSCODER_EDP] = TRANSCODER_EDP_OFFSET, \
+	}
 
 #define GEN_CHV_PIPEOFFSETS \
-	.pipe_offsets = { PIPE_A_OFFSET, PIPE_B_OFFSET, \
-			  CHV_PIPE_C_OFFSET }, \
-	.trans_offsets = { TRANSCODER_A_OFFSET, TRANSCODER_B_OFFSET, \
-			   CHV_TRANSCODER_C_OFFSET }
+	.pipe_offsets = { \
+		[TRANSCODER_A] = PIPE_A_OFFSET, \
+		[TRANSCODER_B] = PIPE_B_OFFSET, \
+		[TRANSCODER_C] = CHV_PIPE_C_OFFSET, \
+	}, \
+	.trans_offsets = { \
+		[TRANSCODER_A] = TRANSCODER_A_OFFSET, \
+		[TRANSCODER_B] = TRANSCODER_B_OFFSET, \
+		[TRANSCODER_C] = CHV_TRANSCODER_C_OFFSET, \
+	}
 
 #define CURSOR_OFFSETS \
 	.cursor_offsets = { CURSOR_A_OFFSET, CURSOR_B_OFFSET, CHV_CURSOR_C_OFFSET }
@@ -592,12 +606,22 @@ static const struct intel_device_info intel_cannonlake_info = {
 
 #define GEN11_FEATURES \
 	GEN10_FEATURES, \
-	.pipe_offsets = { PIPE_A_OFFSET, PIPE_B_OFFSET, \
-			  PIPE_C_OFFSET, PIPE_EDP_OFFSET, \
-			  PIPE_DSI0_OFFSET, PIPE_DSI1_OFFSET }, \
-	.trans_offsets = { TRANSCODER_A_OFFSET, TRANSCODER_B_OFFSET, \
-			   TRANSCODER_C_OFFSET, TRANSCODER_EDP_OFFSET, \
-			   TRANSCODER_DSI0_OFFSET, TRANSCODER_DSI1_OFFSET}, \
+	.pipe_offsets = { \
+		[TRANSCODER_A] = PIPE_A_OFFSET, \
+		[TRANSCODER_B] = PIPE_B_OFFSET, \
+		[TRANSCODER_C] = PIPE_C_OFFSET, \
+		[TRANSCODER_EDP] = PIPE_EDP_OFFSET, \
+		[TRANSCODER_DSI_0] = PIPE_DSI0_OFFSET, \
+		[TRANSCODER_DSI_1] = PIPE_DSI1_OFFSET, \
+	}, \
+	.trans_offsets = { \
+		[TRANSCODER_A] = TRANSCODER_A_OFFSET, \
+		[TRANSCODER_B] = TRANSCODER_B_OFFSET, \
+		[TRANSCODER_C] = TRANSCODER_C_OFFSET, \
+		[TRANSCODER_EDP] = TRANSCODER_EDP_OFFSET, \
+		[TRANSCODER_DSI_0] = TRANSCODER_DSI0_OFFSET, \
+		[TRANSCODER_DSI_1] = TRANSCODER_DSI1_OFFSET, \
+	}, \
 	GEN(11), \
 	.ddb_size = 2048, \
 	.has_logical_ring_elsq = 1
Signature · 1 line
2.13.2
Signature · 6 lines
Ville Syrjälä
Intel
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
author
#14 lore raw
Quoted 34 lines · Ville Syrjälä
Quoted 18 lines · Imre Deak

Depending on the transcoder enum values to translate from transcoder to pipe/transcoder register addresses can easily break if we add a new transcoder. So remove the dependency by using named initializers.

---
 drivers/gpu/drm/i915/i915_pci.c | 52 ++++++++++++++++++++++++++++++-----------
 1 file changed, 38 insertions(+), 14 deletions(-)
drivers/gpu/drm/i915/i915_pci.c +0 -0
index 983ae7fd8217..1b81d7cb209e 100644
@@ -33,16 +33,30 @@
 #define GEN(x) .gen = (x), .gen_mask = BIT((x) - 1)
 

drivers/gpu/drm/i915/i915_pci.c line 40

Quoted 10 lines
drivers/gpu/drm/i915/i915_pci.c +5 -4
 #define GEN_DEFAULT_PIPEOFFSETS \
-	.pipe_offsets = { PIPE_A_OFFSET, PIPE_B_OFFSET, \
-			  PIPE_C_OFFSET, PIPE_EDP_OFFSET }, \
-	.trans_offsets = { TRANSCODER_A_OFFSET, TRANSCODER_B_OFFSET, \
-			   TRANSCODER_C_OFFSET, TRANSCODER_EDP_OFFSET }
+	.pipe_offsets = { \
+		[TRANSCODER_A] = PIPE_A_OFFSET,	\
+		[TRANSCODER_B] = PIPE_B_OFFSET, \
+		[TRANSCODER_C] = PIPE_C_OFFSET, \
+		[TRANSCODER_EDP] = PIPE_EDP_OFFSET, \

Hmm. We do define this as int pipe_offsets[I915_MAX_TRANSCODERS], and PIPECONF/TRANSCONF is per-transcoder so I suppose using TRANSCODER_foo here make sense.

Quoted 3 lines

Couple of things that came to mind while thinking about this:
- pipe_offsets[] & co. could probably be u32 since we don't need negative values

Ok, can follow up with that.

Quoted 2 lines

- _PIPE_EDP could be removed, which would maybe shrink a few arrays based on I915_MAX_PIPES

Agreed. Looks like all the users are in gvt:

- PIPECONF(_PIPE_EDP) should use PIPECONF(TRANSCODER_EDP) instead. The current code would also break if we added a new transcoder.
- AFAICS
PIPEDSL(_PIPE_EDP)
PIPESTAT(_PIPE_EDP)
PIPE_FRMCOUNT_G4X(_PIPE_EDP) PIPE_FLIPCOUNT_G4X(_PIPE_EDP)
are bogus, since these registers don't exist.

Adding gvt folks for these.

Quoted 53 lines

Patch is

Quoted 49 lines
drivers/gpu/drm/i915/i915_pci.c +30 -10
+	}, \
+	.trans_offsets = { \
+		[TRANSCODER_A] = TRANSCODER_A_OFFSET, \
+		[TRANSCODER_B] = TRANSCODER_B_OFFSET, \
+		[TRANSCODER_C] = TRANSCODER_C_OFFSET, \
+		[TRANSCODER_EDP] = TRANSCODER_EDP_OFFSET, \
+	}
 
 #define GEN_CHV_PIPEOFFSETS \
-	.pipe_offsets = { PIPE_A_OFFSET, PIPE_B_OFFSET, \
-			  CHV_PIPE_C_OFFSET }, \
-	.trans_offsets = { TRANSCODER_A_OFFSET, TRANSCODER_B_OFFSET, \
-			   CHV_TRANSCODER_C_OFFSET }
+	.pipe_offsets = { \
+		[TRANSCODER_A] = PIPE_A_OFFSET, \
+		[TRANSCODER_B] = PIPE_B_OFFSET, \
+		[TRANSCODER_C] = CHV_PIPE_C_OFFSET, \
+	}, \
+	.trans_offsets = { \
+		[TRANSCODER_A] = TRANSCODER_A_OFFSET, \
+		[TRANSCODER_B] = TRANSCODER_B_OFFSET, \
+		[TRANSCODER_C] = CHV_TRANSCODER_C_OFFSET, \
+	}
 
 #define CURSOR_OFFSETS \
 	.cursor_offsets = { CURSOR_A_OFFSET, CURSOR_B_OFFSET, CHV_CURSOR_C_OFFSET }
@@ -592,12 +606,22 @@ static const struct intel_device_info intel_cannonlake_info = {
 
 #define GEN11_FEATURES \
 	GEN10_FEATURES, \
-	.pipe_offsets = { PIPE_A_OFFSET, PIPE_B_OFFSET, \
-			  PIPE_C_OFFSET, PIPE_EDP_OFFSET, \
-			  PIPE_DSI0_OFFSET, PIPE_DSI1_OFFSET }, \
-	.trans_offsets = { TRANSCODER_A_OFFSET, TRANSCODER_B_OFFSET, \
-			   TRANSCODER_C_OFFSET, TRANSCODER_EDP_OFFSET, \
-			   TRANSCODER_DSI0_OFFSET, TRANSCODER_DSI1_OFFSET}, \
+	.pipe_offsets = { \
+		[TRANSCODER_A] = PIPE_A_OFFSET, \
+		[TRANSCODER_B] = PIPE_B_OFFSET, \
+		[TRANSCODER_C] = PIPE_C_OFFSET, \
+		[TRANSCODER_EDP] = PIPE_EDP_OFFSET, \
+		[TRANSCODER_DSI_0] = PIPE_DSI0_OFFSET, \
+		[TRANSCODER_DSI_1] = PIPE_DSI1_OFFSET, \
+	}, \
+	.trans_offsets = { \
+		[TRANSCODER_A] = TRANSCODER_A_OFFSET, \
+		[TRANSCODER_B] = TRANSCODER_B_OFFSET, \
+		[TRANSCODER_C] = TRANSCODER_C_OFFSET, \
+		[TRANSCODER_EDP] = TRANSCODER_EDP_OFFSET, \
Quoted 12 lines
Quoted 8 lines
drivers/gpu/drm/i915/i915_pci.c +3 -0
+		[TRANSCODER_DSI_0] = TRANSCODER_DSI0_OFFSET, \
+		[TRANSCODER_DSI_1] = TRANSCODER_DSI1_OFFSET, \
+	}, \
 	GEN(11), \
 	.ddb_size = 2048, \
 	.has_logical_ring_elsq = 1
Signature · 1 line
2.13.2
Signature · 2 lines
Ville Syrjälä
Intel

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

#15 lore raw
Quoted 41 lines · Imre Deak
Quoted 34 lines · Ville Syrjälä
Quoted 18 lines · Imre Deak

Depending on the transcoder enum values to translate from transcoder to pipe/transcoder register addresses can easily break if we add a new transcoder. So remove the dependency by using named initializers.

---
 drivers/gpu/drm/i915/i915_pci.c | 52 ++++++++++++++++++++++++++++++-----------
 1 file changed, 38 insertions(+), 14 deletions(-)
drivers/gpu/drm/i915/i915_pci.c +0 -0
index 983ae7fd8217..1b81d7cb209e 100644
@@ -33,16 +33,30 @@
 #define GEN(x) .gen = (x), .gen_mask = BIT((x) - 1)
 

drivers/gpu/drm/i915/i915_pci.c line 40

Quoted 10 lines
drivers/gpu/drm/i915/i915_pci.c +5 -4
 #define GEN_DEFAULT_PIPEOFFSETS \
-	.pipe_offsets = { PIPE_A_OFFSET, PIPE_B_OFFSET, \
-			  PIPE_C_OFFSET, PIPE_EDP_OFFSET }, \
-	.trans_offsets = { TRANSCODER_A_OFFSET, TRANSCODER_B_OFFSET, \
-			   TRANSCODER_C_OFFSET, TRANSCODER_EDP_OFFSET }
+	.pipe_offsets = { \
+		[TRANSCODER_A] = PIPE_A_OFFSET,	\
+		[TRANSCODER_B] = PIPE_B_OFFSET, \
+		[TRANSCODER_C] = PIPE_C_OFFSET, \
+		[TRANSCODER_EDP] = PIPE_EDP_OFFSET, \

Hmm. We do define this as int pipe_offsets[I915_MAX_TRANSCODERS], and PIPECONF/TRANSCONF is per-transcoder so I suppose using TRANSCODER_foo here make sense.

Quoted 3 lines

Couple of things that came to mind while thinking about this:
- pipe_offsets[] & co. could probably be u32 since we don't need negative values

Ok, can follow up with that.

Quoted 7 lines
Quoted 2 lines

- _PIPE_EDP could be removed, which would maybe shrink a few arrays based on I915_MAX_PIPES

Agreed. Looks like all the users are in gvt:

- PIPECONF(_PIPE_EDP) should use PIPECONF(TRANSCODER_EDP) instead. The current code would also break if we added a new transcoder.

yeah, agreed.

Quoted 7 lines

- AFAICS
PIPEDSL(_PIPE_EDP)
PIPESTAT(_PIPE_EDP)
PIPE_FRMCOUNT_G4X(_PIPE_EDP)
PIPE_FLIPCOUNT_G4X(_PIPE_EDP)
are bogus, since these registers don't exist.

Thanks for pointing this out, looks they were added in very beginning, will remove those after double check.

thanks

Quoted 67 lines

Adding gvt folks for these.

Quoted 65 lines

Patch is

Quoted 57 lines
drivers/gpu/drm/i915/i915_pci.c +33 -10
+	}, \
+	.trans_offsets = { \
+		[TRANSCODER_A] = TRANSCODER_A_OFFSET, \
+		[TRANSCODER_B] = TRANSCODER_B_OFFSET, \
+		[TRANSCODER_C] = TRANSCODER_C_OFFSET, \
+		[TRANSCODER_EDP] = TRANSCODER_EDP_OFFSET, \
+	}
 
 #define GEN_CHV_PIPEOFFSETS \
-	.pipe_offsets = { PIPE_A_OFFSET, PIPE_B_OFFSET, \
-			  CHV_PIPE_C_OFFSET }, \
-	.trans_offsets = { TRANSCODER_A_OFFSET, TRANSCODER_B_OFFSET, \
-			   CHV_TRANSCODER_C_OFFSET }
+	.pipe_offsets = { \
+		[TRANSCODER_A] = PIPE_A_OFFSET, \
+		[TRANSCODER_B] = PIPE_B_OFFSET, \
+		[TRANSCODER_C] = CHV_PIPE_C_OFFSET, \
+	}, \
+	.trans_offsets = { \
+		[TRANSCODER_A] = TRANSCODER_A_OFFSET, \
+		[TRANSCODER_B] = TRANSCODER_B_OFFSET, \
+		[TRANSCODER_C] = CHV_TRANSCODER_C_OFFSET, \
+	}
 
 #define CURSOR_OFFSETS \
 	.cursor_offsets = { CURSOR_A_OFFSET, CURSOR_B_OFFSET, CHV_CURSOR_C_OFFSET }
@@ -592,12 +606,22 @@ static const struct intel_device_info intel_cannonlake_info = {
 
 #define GEN11_FEATURES \
 	GEN10_FEATURES, \
-	.pipe_offsets = { PIPE_A_OFFSET, PIPE_B_OFFSET, \
-			  PIPE_C_OFFSET, PIPE_EDP_OFFSET, \
-			  PIPE_DSI0_OFFSET, PIPE_DSI1_OFFSET }, \
-	.trans_offsets = { TRANSCODER_A_OFFSET, TRANSCODER_B_OFFSET, \
-			   TRANSCODER_C_OFFSET, TRANSCODER_EDP_OFFSET, \
-			   TRANSCODER_DSI0_OFFSET, TRANSCODER_DSI1_OFFSET}, \
+	.pipe_offsets = { \
+		[TRANSCODER_A] = PIPE_A_OFFSET, \
+		[TRANSCODER_B] = PIPE_B_OFFSET, \
+		[TRANSCODER_C] = PIPE_C_OFFSET, \
+		[TRANSCODER_EDP] = PIPE_EDP_OFFSET, \
+		[TRANSCODER_DSI_0] = PIPE_DSI0_OFFSET, \
+		[TRANSCODER_DSI_1] = PIPE_DSI1_OFFSET, \
+	}, \
+	.trans_offsets = { \
+		[TRANSCODER_A] = TRANSCODER_A_OFFSET, \
+		[TRANSCODER_B] = TRANSCODER_B_OFFSET, \
+		[TRANSCODER_C] = TRANSCODER_C_OFFSET, \
+		[TRANSCODER_EDP] = TRANSCODER_EDP_OFFSET, \
+		[TRANSCODER_DSI_0] = TRANSCODER_DSI0_OFFSET, \
+		[TRANSCODER_DSI_1] = TRANSCODER_DSI1_OFFSET, \
+	}, \
 	GEN(11), \
 	.ddb_size = 2048, \
 	.has_logical_ring_elsq = 1
Signature · 1 line
2.13.2
Signature · 2 lines
Ville Syrjälä
Intel
Signature · 3 lines
Open Source Technology Center, Intel ltd.

$gpg --keyserver wwwkeys.pgp.net --recv-keys 4D781827

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

#16 lore raw

✓ Fi.CI.IGT: success for series starting with [1/3] drm/i915: Make pipe/transcoder offsets not depend on enum values

In reply to Imre Deak
== Series Details ==

== Series Details ==

Series: series starting with [1/3] drm/i915: Make pipe/transcoder offsets not depend on enum values
URL : https://patchwork.freedesktop.org/series/52693/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_5160_full -> Patchwork_10847_full =

== Summary - SUCCESS ==

No regressions found.

== Possible new issues ==

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

=== IGT changes ===

    ==== Possible regressions ====

    igt@pm_rpm@pc8-residency:
      {shard-iclb}:       SKIP -> INCOMPLETE

    
    ==== Warnings ====

    igt@tools_test@tools_test:
      {shard-iclb}:       PASS -> SKIP

== Known issues ==

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

=== IGT changes ===

    ==== Issues hit ====

    igt@gem_exec_schedule@pi-ringfull-bsd1:
      shard-kbl:          NOTRUN -> FAIL (fdo#103158)

    igt@kms_busy@extended-modeset-hang-newfb-with-reset-render-b:
      {shard-iclb}:       PASS -> DMESG-WARN (fdo#107956)

    igt@kms_busy@extended-pageflip-hang-newfb-render-b:
      shard-glk:          PASS -> DMESG-WARN (fdo#107956)

    igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-a:
      shard-snb:          NOTRUN -> DMESG-WARN (fdo#107956) +1
      shard-apl:          PASS -> DMESG-WARN (fdo#107956)

    igt@kms_color@pipe-a-ctm-max:
      shard-apl:          PASS -> FAIL (fdo#108147)

    igt@kms_cursor_crc@cursor-64x21-random:
      {shard-iclb}:       NOTRUN -> FAIL (fdo#103232)

    igt@kms_cursor_crc@cursor-64x21-sliding:
      shard-apl:          PASS -> FAIL (fdo#103232)

    igt@kms_cursor_crc@cursor-size-change:
      shard-glk:          PASS -> FAIL (fdo#103232)

    igt@kms_draw_crc@draw-method-rgb565-mmap-gtt-xtiled:
      shard-skl:          PASS -> FAIL (fdo#103184)

    igt@kms_fbcon_fbt@psr:
      {shard-iclb}:       NOTRUN -> FAIL (fdo#107882)

    igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-pwrite:
      shard-apl:          PASS -> FAIL (fdo#103167) +1

    igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-move:
      {shard-iclb}:       PASS -> FAIL (fdo#103167)

    igt@kms_hdmi_inject@inject-audio:
      {shard-iclb}:       NOTRUN -> FAIL (fdo#102370)

    igt@kms_pipe_crc_basic@read-crc-pipe-b:
      shard-skl:          NOTRUN -> FAIL (fdo#107362)

    igt@kms_plane@plane-position-covered-pipe-c-planes:
      shard-glk:          PASS -> FAIL (fdo#103166) +1

    igt@kms_plane_alpha_blend@pipe-a-constant-alpha-max:
      shard-glk:          PASS -> FAIL (fdo#108145) +1

    igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
      shard-skl:          PASS -> FAIL (fdo#107815)

    igt@kms_plane_multiple@atomic-pipe-c-tiling-y:
      shard-apl:          PASS -> FAIL (fdo#103166)

    igt@kms_plane_multiple@atomic-pipe-c-tiling-yf:
      {shard-iclb}:       PASS -> FAIL (fdo#103166) +1

    igt@kms_plane_scaling@pipe-b-scaler-with-rotation:
      {shard-iclb}:       NOTRUN -> DMESG-WARN (fdo#107724)

    igt@kms_setmode@basic:
      shard-apl:          PASS -> FAIL (fdo#99912)

    igt@pm_rpm@debugfs-read:
      shard-skl:          PASS -> INCOMPLETE (fdo#107807) +1

    igt@prime_vgem@busy-bsd:
      shard-apl:          PASS -> INCOMPLETE (fdo#103927)

    
    ==== Possible fixes ====

    igt@gem_eio@in-flight-10ms:
      shard-glk:          FAIL (fdo#107799) -> PASS

    igt@gem_exec_whisper@normal:
      shard-skl:          TIMEOUT (fdo#108592) -> PASS

    igt@gem_render_copy_redux@normal:
      shard-kbl:          INCOMPLETE (fdo#106650, fdo#103665) -> PASS

    igt@kms_atomic_transition@1x-modeset-transitions-nonblocking:
      shard-skl:          FAIL (fdo#108470, fdo#108228) -> PASS

    igt@kms_available_modes_crc@available_mode_test_crc:
      shard-apl:          FAIL (fdo#106641) -> PASS

    igt@kms_color@pipe-c-degamma:
      shard-apl:          FAIL (fdo#104782) -> PASS

    igt@kms_color@pipe-c-gamma:
      shard-skl:          FAIL (fdo#104782, fdo#108228) -> PASS

    igt@kms_cursor_crc@cursor-128x128-random:
      shard-apl:          FAIL (fdo#103232) -> PASS +5

    igt@kms_cursor_crc@cursor-256x256-dpms:
      shard-skl:          FAIL (fdo#103232) -> PASS +1

    igt@kms_cursor_crc@cursor-64x21-onscreen:
      shard-glk:          FAIL (fdo#103232) -> PASS +1

    igt@kms_cursor_crc@cursor-64x64-suspend:
      shard-apl:          FAIL (fdo#103232, fdo#103191) -> PASS +1

    igt@kms_draw_crc@draw-method-xrgb2101010-mmap-wc-xtiled:
      shard-skl:          FAIL (fdo#103184) -> PASS

    igt@kms_draw_crc@draw-method-xrgb8888-mmap-gtt-xtiled:
      {shard-iclb}:       WARN (fdo#108336) -> PASS +3

    igt@kms_flip@flip-vs-expired-vblank:
      shard-skl:          FAIL (fdo#105363) -> PASS
      shard-glk:          FAIL (fdo#105363) -> PASS

    igt@kms_flip_tiling@flip-changes-tiling:
      {shard-iclb}:       DMESG-WARN (fdo#107724, fdo#108336) -> PASS +12

    igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-render:
      shard-apl:          FAIL (fdo#103167) -> PASS +1

    igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-mmap-cpu:
      shard-skl:          FAIL (fdo#103167) -> PASS +6

    igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-mmap-gtt:
      {shard-iclb}:       DMESG-FAIL (fdo#107724) -> PASS +5

    igt@kms_plane@plane-position-covered-pipe-a-planes:
      shard-glk:          FAIL (fdo#103166) -> PASS

    igt@kms_plane@plane-position-covered-pipe-c-planes:
      shard-apl:          FAIL (fdo#103166) -> PASS +1

    igt@kms_plane_alpha_blend@pipe-a-coverage-7efc:
      shard-skl:          FAIL (fdo#107815, fdo#108145) -> PASS

    igt@kms_plane_multiple@atomic-pipe-b-tiling-yf:
      {shard-iclb}:       FAIL (fdo#103166) -> PASS

    igt@kms_psr@sprite_mmap_gtt:
      {shard-iclb}:       DMESG-WARN (fdo#107724) -> PASS +22

    igt@pm_rpm@universal-planes:
      shard-skl:          INCOMPLETE (fdo#107807) -> PASS

    
    ==== Warnings ====

    igt@i915_suspend@shrink:
      shard-skl:          DMESG-WARN (fdo#108784) -> INCOMPLETE (fdo#106886)

    igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-cpu:
      {shard-iclb}:       DMESG-FAIL (fdo#107724) -> FAIL (fdo#103167)

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

fdo#102370 https://bugs.freedesktop.org/show_bug.cgi?id=102370
fdo#103158 https://bugs.freedesktop.org/show_bug.cgi?id=103158
fdo#103166 https://bugs.freedesktop.org/show_bug.cgi?id=103166
fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
fdo#103184 https://bugs.freedesktop.org/show_bug.cgi?id=103184
fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191
fdo#103232 https://bugs.freedesktop.org/show_bug.cgi?id=103232
fdo#103665 https://bugs.freedesktop.org/show_bug.cgi?id=103665
fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
fdo#104782 https://bugs.freedesktop.org/show_bug.cgi?id=104782
fdo#105363 https://bugs.freedesktop.org/show_bug.cgi?id=105363
fdo#106641 https://bugs.freedesktop.org/show_bug.cgi?id=106641
fdo#106650 https://bugs.freedesktop.org/show_bug.cgi?id=106650
fdo#106886 https://bugs.freedesktop.org/show_bug.cgi?id=106886
fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362
fdo#107724 https://bugs.freedesktop.org/show_bug.cgi?id=107724
fdo#107799 https://bugs.freedesktop.org/show_bug.cgi?id=107799
fdo#107807 https://bugs.freedesktop.org/show_bug.cgi?id=107807
fdo#107815 https://bugs.freedesktop.org/show_bug.cgi?id=107815
fdo#107882 https://bugs.freedesktop.org/show_bug.cgi?id=107882
fdo#107956 https://bugs.freedesktop.org/show_bug.cgi?id=107956
fdo#108145 https://bugs.freedesktop.org/show_bug.cgi?id=108145
fdo#108147 https://bugs.freedesktop.org/show_bug.cgi?id=108147
fdo#108228 https://bugs.freedesktop.org/show_bug.cgi?id=108228
fdo#108336 https://bugs.freedesktop.org/show_bug.cgi?id=108336
fdo#108470 https://bugs.freedesktop.org/show_bug.cgi?id=108470
fdo#108592 https://bugs.freedesktop.org/show_bug.cgi?id=108592
fdo#108784 https://bugs.freedesktop.org/show_bug.cgi?id=108784
fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912

== Participating hosts (7 -> 7) ==

No changes in participating hosts

== Build changes ==

* Linux: CI_DRM_5160 -> Patchwork_10847

CI_DRM_5160: 80350f0233d79937675bdc76d7864f51843ccc63 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_4720: c27aaca295d3ca2a38521e571c012449371e4bb5 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_10847: 799f685980adcac64afb2b90df4a0f38330553ff @ 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_10847/shards.html
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

#17 lore raw

✓ Fi.CI.BAT: success for series starting with [1/3] drm/i915: Make pipe/transcoder offsets not depend on enum values (rev2)

In reply to Imre Deak
== Series Details ==

== Series Details ==

Series: series starting with [1/3] drm/i915: Make pipe/transcoder offsets not depend on enum values (rev2)
URL : https://patchwork.freedesktop.org/series/52693/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_5165 -> Patchwork_10853 =

== Summary - SUCCESS ==

No regressions found.

External URL: https://patchwork.freedesktop.org/api/1.0/series/52693/revisions/2/mbox/

== Known issues ==

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

=== IGT changes ===

    ==== Issues hit ====

    igt@gem_exec_suspend@basic-s3:
      fi-icl-u:           NOTRUN -> INCOMPLETE (fdo#107713)

    igt@i915_selftest@live_coherency:
      fi-gdg-551:         PASS -> DMESG-FAIL (fdo#107164)

    igt@kms_pipe_crc_basic@hang-read-crc-pipe-b:
      fi-byt-clapper:     PASS -> FAIL (fdo#107362, fdo#103191)

    
    ==== Possible fixes ====

    igt@gem_ctx_create@basic-files:
      fi-icl-u2:          DMESG-WARN (fdo#107724) -> PASS

    igt@kms_pipe_crc_basic@read-crc-pipe-a:
      fi-byt-clapper:     FAIL (fdo#107362) -> PASS

    igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
      fi-byt-clapper:     FAIL (fdo#107362, fdo#103191) -> PASS

fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191
fdo#107164 https://bugs.freedesktop.org/show_bug.cgi?id=107164
fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362
fdo#107713 https://bugs.freedesktop.org/show_bug.cgi?id=107713
fdo#107724 https://bugs.freedesktop.org/show_bug.cgi?id=107724

== Participating hosts (53 -> 47) ==

Additional (1): fi-icl-u
Missing (7): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-icl-u3

== Build changes ==

* Linux: CI_DRM_5165 -> Patchwork_10853

CI_DRM_5165: 1715a40008b3d4d47ed0171925063b07ab0012f7 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_4720: c27aaca295d3ca2a38521e571c012449371e4bb5 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_10853: 6df0f6ae34ea980b362f0595b578dc9e9e0e0b16 @ git://anongit.freedesktop.org/gfx-ci/linux

== Linux commits ==

6df0f6ae34ea drm/i915: Add code comment on assumption of pipe==transcoder 3ad600726483 drm/i915: Make EDP PSR flags not depend on enum values 189055c6a3c6 drm/i915: Make pipe/transcoder offsets not depend on enum values

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10853/issues.html
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

#18 lore raw

✗ Fi.CI.BAT: failure for series starting with [1/3] drm/i915: Make pipe/transcoder offsets not depend on enum values (rev4)

In reply to Imre Deak
== Series Details ==

== Series Details ==

Series: series starting with [1/3] drm/i915: Make pipe/transcoder offsets not depend on enum values (rev4)
URL : https://patchwork.freedesktop.org/series/52693/
State : failure

== Summary ==

Applying: drm/i915: Make pipe/transcoder offsets not depend on enum values
Applying: drm/i915: Add code comment on assumption of pipe==transcoder
Applying: drm/i915: Add code comment on assumption of pipe==transcoder Using index info to reconstruct a base tree...
M drivers/gpu/drm/i915/intel_display.h
Falling back to patching base and 3-way merge...
Auto-merging drivers/gpu/drm/i915/intel_display.h
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/intel_display.h
error: Failed to merge in the changes.
Patch failed at 0003 drm/i915: Add code comment on assumption of pipe==transcoder Use 'git am --show-current-patch' to see the failed patch
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx