All of lore.kernel.org
 help / color / mirror / Atom feed
* [V3 0/8] Add support for mipi dsi cmd mode
@ 2019-11-19 12:33 ` Vandita Kulkarni
  0 siblings, 0 replies; 41+ messages in thread
From: Vandita Kulkarni @ 2019-11-19 12:33 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Addressed comments on RFC-v2 from Jani, thanks.

Vandita Kulkarni (8):
  drm/i915/dsi: Configure transcoder operation for command mode.
  drm/i915/dsi: Add vblank calculation for command mode
  drm/i915/dsi: Add cmd mode flags in display mode private flags
  drm/i915/dsi: Add check for periodic command mode
  drm/i915/dsi: Use private flags to indicate TE in cmd mode
  drm/i915/dsi: Configure TE interrupt for cmd mode
  drm/i915/dsi: Add TE handler for dsi cmd mode.
  drm/i915/dsi: Initiate fame request in cmd mode

 drivers/gpu/drm/i915/display/icl_dsi.c        | 150 ++++++++++++++++--
 drivers/gpu/drm/i915/display/intel_display.c  |  10 ++
 .../drm/i915/display/intel_display_types.h    |  10 ++
 drivers/gpu/drm/i915/display/intel_dsi.h      |   3 +
 drivers/gpu/drm/i915/i915_irq.c               | 119 +++++++++++++-
 5 files changed, 277 insertions(+), 15 deletions(-)

-- 
2.21.0.5.gaeb582a

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [Intel-gfx] [V3 0/8] Add support for mipi dsi cmd mode
@ 2019-11-19 12:33 ` Vandita Kulkarni
  0 siblings, 0 replies; 41+ messages in thread
From: Vandita Kulkarni @ 2019-11-19 12:33 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Addressed comments on RFC-v2 from Jani, thanks.

Vandita Kulkarni (8):
  drm/i915/dsi: Configure transcoder operation for command mode.
  drm/i915/dsi: Add vblank calculation for command mode
  drm/i915/dsi: Add cmd mode flags in display mode private flags
  drm/i915/dsi: Add check for periodic command mode
  drm/i915/dsi: Use private flags to indicate TE in cmd mode
  drm/i915/dsi: Configure TE interrupt for cmd mode
  drm/i915/dsi: Add TE handler for dsi cmd mode.
  drm/i915/dsi: Initiate fame request in cmd mode

 drivers/gpu/drm/i915/display/icl_dsi.c        | 150 ++++++++++++++++--
 drivers/gpu/drm/i915/display/intel_display.c  |  10 ++
 .../drm/i915/display/intel_display_types.h    |  10 ++
 drivers/gpu/drm/i915/display/intel_dsi.h      |   3 +
 drivers/gpu/drm/i915/i915_irq.c               | 119 +++++++++++++-
 5 files changed, 277 insertions(+), 15 deletions(-)

-- 
2.21.0.5.gaeb582a

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [V3 1/8] drm/i915/dsi: Configure transcoder operation for command mode.
@ 2019-11-19 12:33   ` Vandita Kulkarni
  0 siblings, 0 replies; 41+ messages in thread
From: Vandita Kulkarni @ 2019-11-19 12:33 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Configure the transcoder to operate in TE GATE command mode
and  take TE events from GPIO.
Also disable the periodic command mode, that GOP would have
programmed.

v2: Disable util pin (Jani)

Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com>
---
 drivers/gpu/drm/i915/display/icl_dsi.c | 52 ++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c
index f688207932e0..089c630526bc 100644
--- a/drivers/gpu/drm/i915/display/icl_dsi.c
+++ b/drivers/gpu/drm/i915/display/icl_dsi.c
@@ -704,6 +704,18 @@ gen11_dsi_configure_transcoder(struct intel_encoder *encoder,
 				tmp |= VIDEO_MODE_SYNC_PULSE;
 				break;
 			}
+		} else {
+			/*
+			 * FIXME: Retrieve this info from VBT.
+			 * As per the spec when dsi transcoder is operating
+			 * in TE GATE mode, TE comes from GPIO
+			 * which is UTIL PIN for DSI 0.
+			 * Also this GPIO would not be used for other
+			 * purposes is an assumption.
+			 */
+			tmp &= ~OP_MODE_MASK;
+			tmp |= CMD_MODE_TE_GATE;
+			tmp |= TE_SOURCE_GPIO;
 		}
 
 		I915_WRITE(DSI_TRANS_FUNC_CONF(dsi_trans), tmp);
@@ -956,6 +968,32 @@ static void gen11_dsi_setup_timeouts(struct intel_encoder *encoder)
 	}
 }
 
+static void gen11_dsi_config_util_pin(struct intel_encoder *encoder,
+				      bool enable)
+{
+	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	u32 tmp;
+
+	/*
+	 * used as TE i/p for DSI0,
+	 * for dual link/DSI1 TE is from slave DSI1
+	 * through GPIO.
+	 */
+	if (is_vid_mode(intel_dsi) || (intel_dsi->ports & BIT(PORT_B)))
+		return;
+
+	tmp = I915_READ(UTIL_PIN_CTL);
+
+	if (enable) {
+		tmp |= UTIL_PIN_DIRECTION_INPUT;
+		tmp |= UTIL_PIN_ENABLE;
+	} else
+		tmp &= ~UTIL_PIN_ENABLE;
+
+	I915_WRITE(UTIL_PIN_CTL, tmp);
+}
+
 static void
 gen11_dsi_enable_port_and_phy(struct intel_encoder *encoder,
 			      const struct intel_crtc_state *pipe_config)
@@ -977,6 +1015,9 @@ gen11_dsi_enable_port_and_phy(struct intel_encoder *encoder,
 	/* setup D-PHY timings */
 	gen11_dsi_setup_dphy_timings(encoder);
 
+	/* Since transcoder is configured to take events from GPIO */
+	gen11_dsi_config_util_pin(encoder, true);
+
 	/* step 4h: setup DSI protocol timeouts */
 	gen11_dsi_setup_timeouts(encoder);
 
@@ -1107,6 +1148,15 @@ static void gen11_dsi_deconfigure_trancoder(struct intel_encoder *encoder)
 	enum transcoder dsi_trans;
 	u32 tmp;
 
+	/* disable periodic update mode */
+	if (is_cmd_mode(intel_dsi)) {
+		for_each_dsi_port(port, intel_dsi->ports) {
+			tmp = I915_READ(DSI_CMD_FRMCTL(port));
+			tmp &= ~DSI_PERIODIC_FRAME_UPDATE_ENABLE;
+			I915_WRITE(DSI_CMD_FRMCTL(port), tmp);
+		}
+	}
+
 	/* put dsi link in ULPS */
 	for_each_dsi_port(port, intel_dsi->ports) {
 		dsi_trans = dsi_port_to_transcoder(port);
@@ -1210,6 +1260,8 @@ static void gen11_dsi_disable(struct intel_encoder *encoder,
 	/* step3: disable port */
 	gen11_dsi_disable_port(encoder);
 
+	gen11_dsi_config_util_pin(encoder, false);
+
 	/* step4: disable IO power */
 	gen11_dsi_disable_io_power(encoder);
 }
-- 
2.21.0.5.gaeb582a

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [Intel-gfx] [V3 1/8] drm/i915/dsi: Configure transcoder operation for command mode.
@ 2019-11-19 12:33   ` Vandita Kulkarni
  0 siblings, 0 replies; 41+ messages in thread
From: Vandita Kulkarni @ 2019-11-19 12:33 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Configure the transcoder to operate in TE GATE command mode
and  take TE events from GPIO.
Also disable the periodic command mode, that GOP would have
programmed.

v2: Disable util pin (Jani)

Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com>
---
 drivers/gpu/drm/i915/display/icl_dsi.c | 52 ++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c
index f688207932e0..089c630526bc 100644
--- a/drivers/gpu/drm/i915/display/icl_dsi.c
+++ b/drivers/gpu/drm/i915/display/icl_dsi.c
@@ -704,6 +704,18 @@ gen11_dsi_configure_transcoder(struct intel_encoder *encoder,
 				tmp |= VIDEO_MODE_SYNC_PULSE;
 				break;
 			}
+		} else {
+			/*
+			 * FIXME: Retrieve this info from VBT.
+			 * As per the spec when dsi transcoder is operating
+			 * in TE GATE mode, TE comes from GPIO
+			 * which is UTIL PIN for DSI 0.
+			 * Also this GPIO would not be used for other
+			 * purposes is an assumption.
+			 */
+			tmp &= ~OP_MODE_MASK;
+			tmp |= CMD_MODE_TE_GATE;
+			tmp |= TE_SOURCE_GPIO;
 		}
 
 		I915_WRITE(DSI_TRANS_FUNC_CONF(dsi_trans), tmp);
@@ -956,6 +968,32 @@ static void gen11_dsi_setup_timeouts(struct intel_encoder *encoder)
 	}
 }
 
+static void gen11_dsi_config_util_pin(struct intel_encoder *encoder,
+				      bool enable)
+{
+	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	u32 tmp;
+
+	/*
+	 * used as TE i/p for DSI0,
+	 * for dual link/DSI1 TE is from slave DSI1
+	 * through GPIO.
+	 */
+	if (is_vid_mode(intel_dsi) || (intel_dsi->ports & BIT(PORT_B)))
+		return;
+
+	tmp = I915_READ(UTIL_PIN_CTL);
+
+	if (enable) {
+		tmp |= UTIL_PIN_DIRECTION_INPUT;
+		tmp |= UTIL_PIN_ENABLE;
+	} else
+		tmp &= ~UTIL_PIN_ENABLE;
+
+	I915_WRITE(UTIL_PIN_CTL, tmp);
+}
+
 static void
 gen11_dsi_enable_port_and_phy(struct intel_encoder *encoder,
 			      const struct intel_crtc_state *pipe_config)
@@ -977,6 +1015,9 @@ gen11_dsi_enable_port_and_phy(struct intel_encoder *encoder,
 	/* setup D-PHY timings */
 	gen11_dsi_setup_dphy_timings(encoder);
 
+	/* Since transcoder is configured to take events from GPIO */
+	gen11_dsi_config_util_pin(encoder, true);
+
 	/* step 4h: setup DSI protocol timeouts */
 	gen11_dsi_setup_timeouts(encoder);
 
@@ -1107,6 +1148,15 @@ static void gen11_dsi_deconfigure_trancoder(struct intel_encoder *encoder)
 	enum transcoder dsi_trans;
 	u32 tmp;
 
+	/* disable periodic update mode */
+	if (is_cmd_mode(intel_dsi)) {
+		for_each_dsi_port(port, intel_dsi->ports) {
+			tmp = I915_READ(DSI_CMD_FRMCTL(port));
+			tmp &= ~DSI_PERIODIC_FRAME_UPDATE_ENABLE;
+			I915_WRITE(DSI_CMD_FRMCTL(port), tmp);
+		}
+	}
+
 	/* put dsi link in ULPS */
 	for_each_dsi_port(port, intel_dsi->ports) {
 		dsi_trans = dsi_port_to_transcoder(port);
@@ -1210,6 +1260,8 @@ static void gen11_dsi_disable(struct intel_encoder *encoder,
 	/* step3: disable port */
 	gen11_dsi_disable_port(encoder);
 
+	gen11_dsi_config_util_pin(encoder, false);
+
 	/* step4: disable IO power */
 	gen11_dsi_disable_io_power(encoder);
 }
-- 
2.21.0.5.gaeb582a

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [V3 2/8] drm/i915/dsi: Add vblank calculation for command mode
@ 2019-11-19 12:33   ` Vandita Kulkarni
  0 siblings, 0 replies; 41+ messages in thread
From: Vandita Kulkarni @ 2019-11-19 12:33 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Transcoder timing calculation differ for command mode.

v2: Use is_vid_mode, and use same I915_WRITE (Jani)

Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com>
---
 drivers/gpu/drm/i915/display/icl_dsi.c | 39 +++++++++++++++++---------
 1 file changed, 26 insertions(+), 13 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c
index 089c630526bc..96f912b153e9 100644
--- a/drivers/gpu/drm/i915/display/icl_dsi.c
+++ b/drivers/gpu/drm/i915/display/icl_dsi.c
@@ -791,6 +791,7 @@ gen11_dsi_set_transcoder_timings(struct intel_encoder *encoder,
 	u16 hback_porch;
 	/* vertical timings */
 	u16 vtotal, vactive, vsync_start, vsync_end, vsync_shift;
+	int bpp, line_time_us, byte_clk_period_ns;
 
 	hactive = adjusted_mode->crtc_hdisplay;
 	htotal = adjusted_mode->crtc_htotal;
@@ -828,7 +829,7 @@ gen11_dsi_set_transcoder_timings(struct intel_encoder *encoder,
 	}
 
 	/* TRANS_HSYNC register to be programmed only for video mode */
-	if (intel_dsi->operation_mode == INTEL_DSI_VIDEO_MODE) {
+	if (is_vid_mode(intel_dsi)) {
 		if (intel_dsi->video_mode_format ==
 		    VIDEO_MODE_NON_BURST_WITH_SYNC_PULSE) {
 			/* BSPEC: hsync size should be atleast 16 pixels */
@@ -852,12 +853,20 @@ gen11_dsi_set_transcoder_timings(struct intel_encoder *encoder,
 	}
 
 	/* program TRANS_VTOTAL register */
+	if (is_cmd_mode(intel_dsi)) {
+		bpp = mipi_dsi_pixel_format_to_bpp(intel_dsi->pixel_format);
+		byte_clk_period_ns = 8 * 1000000 / intel_dsi->pclk;
+		htotal = hactive + 160;
+		line_time_us = (htotal * (bpp / 8) * byte_clk_period_ns) / (1000 * intel_dsi->lane_count);
+		vtotal = vactive + DIV_ROUND_UP(460, line_time_us);
+	}
+
 	for_each_dsi_port(port, intel_dsi->ports) {
 		dsi_trans = dsi_port_to_transcoder(port);
 		/*
-		 * FIXME: Programing this by assuming progressive mode, since
-		 * non-interlaced info from VBT is not saved inside
-		 * struct drm_display_mode.
+		 * FIXME: Programing this by assuming progressive mode,
+		 * since non-interlaced info from VBT is not saved
+		 * inside struct drm_display_mode.
 		 * For interlace mode: program required pixel minus 2
 		 */
 		I915_WRITE(VTOTAL(dsi_trans),
@@ -870,22 +879,26 @@ gen11_dsi_set_transcoder_timings(struct intel_encoder *encoder,
 	if (vsync_start < vactive)
 		DRM_ERROR("vsync_start less than vactive\n");
 
-	/* program TRANS_VSYNC register */
-	for_each_dsi_port(port, intel_dsi->ports) {
-		dsi_trans = dsi_port_to_transcoder(port);
-		I915_WRITE(VSYNC(dsi_trans),
-			   (vsync_start - 1) | ((vsync_end - 1) << 16));
+	/* program TRANS_VSYNC register for video mode only */
+	if (is_vid_mode(intel_dsi)) {
+		for_each_dsi_port(port, intel_dsi->ports) {
+			dsi_trans = dsi_port_to_transcoder(port);
+			I915_WRITE(VSYNC(dsi_trans),
+				   (vsync_start - 1) | ((vsync_end - 1) << 16));
+		}
 	}
 
 	/*
-	 * FIXME: It has to be programmed only for interlaced
+	 * FIXME: It has to be programmed only for video modes and interlaced
 	 * modes. Put the check condition here once interlaced
 	 * info available as described above.
 	 * program TRANS_VSYNCSHIFT register
 	 */
-	for_each_dsi_port(port, intel_dsi->ports) {
-		dsi_trans = dsi_port_to_transcoder(port);
-		I915_WRITE(VSYNCSHIFT(dsi_trans), vsync_shift);
+	if (is_vid_mode(intel_dsi)) {
+		for_each_dsi_port(port, intel_dsi->ports) {
+			dsi_trans = dsi_port_to_transcoder(port);
+			I915_WRITE(VSYNCSHIFT(dsi_trans), vsync_shift);
+		}
 	}
 
 	/* program TRANS_VBLANK register, should be same as vtotal programmed */
-- 
2.21.0.5.gaeb582a

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [Intel-gfx] [V3 2/8] drm/i915/dsi: Add vblank calculation for command mode
@ 2019-11-19 12:33   ` Vandita Kulkarni
  0 siblings, 0 replies; 41+ messages in thread
From: Vandita Kulkarni @ 2019-11-19 12:33 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Transcoder timing calculation differ for command mode.

v2: Use is_vid_mode, and use same I915_WRITE (Jani)

Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com>
---
 drivers/gpu/drm/i915/display/icl_dsi.c | 39 +++++++++++++++++---------
 1 file changed, 26 insertions(+), 13 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c
index 089c630526bc..96f912b153e9 100644
--- a/drivers/gpu/drm/i915/display/icl_dsi.c
+++ b/drivers/gpu/drm/i915/display/icl_dsi.c
@@ -791,6 +791,7 @@ gen11_dsi_set_transcoder_timings(struct intel_encoder *encoder,
 	u16 hback_porch;
 	/* vertical timings */
 	u16 vtotal, vactive, vsync_start, vsync_end, vsync_shift;
+	int bpp, line_time_us, byte_clk_period_ns;
 
 	hactive = adjusted_mode->crtc_hdisplay;
 	htotal = adjusted_mode->crtc_htotal;
@@ -828,7 +829,7 @@ gen11_dsi_set_transcoder_timings(struct intel_encoder *encoder,
 	}
 
 	/* TRANS_HSYNC register to be programmed only for video mode */
-	if (intel_dsi->operation_mode == INTEL_DSI_VIDEO_MODE) {
+	if (is_vid_mode(intel_dsi)) {
 		if (intel_dsi->video_mode_format ==
 		    VIDEO_MODE_NON_BURST_WITH_SYNC_PULSE) {
 			/* BSPEC: hsync size should be atleast 16 pixels */
@@ -852,12 +853,20 @@ gen11_dsi_set_transcoder_timings(struct intel_encoder *encoder,
 	}
 
 	/* program TRANS_VTOTAL register */
+	if (is_cmd_mode(intel_dsi)) {
+		bpp = mipi_dsi_pixel_format_to_bpp(intel_dsi->pixel_format);
+		byte_clk_period_ns = 8 * 1000000 / intel_dsi->pclk;
+		htotal = hactive + 160;
+		line_time_us = (htotal * (bpp / 8) * byte_clk_period_ns) / (1000 * intel_dsi->lane_count);
+		vtotal = vactive + DIV_ROUND_UP(460, line_time_us);
+	}
+
 	for_each_dsi_port(port, intel_dsi->ports) {
 		dsi_trans = dsi_port_to_transcoder(port);
 		/*
-		 * FIXME: Programing this by assuming progressive mode, since
-		 * non-interlaced info from VBT is not saved inside
-		 * struct drm_display_mode.
+		 * FIXME: Programing this by assuming progressive mode,
+		 * since non-interlaced info from VBT is not saved
+		 * inside struct drm_display_mode.
 		 * For interlace mode: program required pixel minus 2
 		 */
 		I915_WRITE(VTOTAL(dsi_trans),
@@ -870,22 +879,26 @@ gen11_dsi_set_transcoder_timings(struct intel_encoder *encoder,
 	if (vsync_start < vactive)
 		DRM_ERROR("vsync_start less than vactive\n");
 
-	/* program TRANS_VSYNC register */
-	for_each_dsi_port(port, intel_dsi->ports) {
-		dsi_trans = dsi_port_to_transcoder(port);
-		I915_WRITE(VSYNC(dsi_trans),
-			   (vsync_start - 1) | ((vsync_end - 1) << 16));
+	/* program TRANS_VSYNC register for video mode only */
+	if (is_vid_mode(intel_dsi)) {
+		for_each_dsi_port(port, intel_dsi->ports) {
+			dsi_trans = dsi_port_to_transcoder(port);
+			I915_WRITE(VSYNC(dsi_trans),
+				   (vsync_start - 1) | ((vsync_end - 1) << 16));
+		}
 	}
 
 	/*
-	 * FIXME: It has to be programmed only for interlaced
+	 * FIXME: It has to be programmed only for video modes and interlaced
 	 * modes. Put the check condition here once interlaced
 	 * info available as described above.
 	 * program TRANS_VSYNCSHIFT register
 	 */
-	for_each_dsi_port(port, intel_dsi->ports) {
-		dsi_trans = dsi_port_to_transcoder(port);
-		I915_WRITE(VSYNCSHIFT(dsi_trans), vsync_shift);
+	if (is_vid_mode(intel_dsi)) {
+		for_each_dsi_port(port, intel_dsi->ports) {
+			dsi_trans = dsi_port_to_transcoder(port);
+			I915_WRITE(VSYNCSHIFT(dsi_trans), vsync_shift);
+		}
 	}
 
 	/* program TRANS_VBLANK register, should be same as vtotal programmed */
-- 
2.21.0.5.gaeb582a

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [V3 3/8] drm/i915/dsi: Add cmd mode flags in display mode private flags
@ 2019-11-19 12:33   ` Vandita Kulkarni
  0 siblings, 0 replies; 41+ messages in thread
From: Vandita Kulkarni @ 2019-11-19 12:33 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Adding TE flags and periodic command mode flags
as part of private flags to indicate what TE interrupts
we would be getting instead of vblanks in case of mipi dsi
command mode.

v2: Add TE flag description (Jani)

Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com>
---
 drivers/gpu/drm/i915/display/intel_display_types.h | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
index 83ea04149b77..1e071cfb3ff7 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -656,6 +656,16 @@ struct intel_crtc_scaler_state {
 #define I915_MODE_FLAG_GET_SCANLINE_FROM_TIMESTAMP (1<<1)
 /* Flag to use the scanline counter instead of the pixel counter */
 #define I915_MODE_FLAG_USE_SCANLINE_COUNTER (1<<2)
+/*
+ * TE0 or TE1 flag is set if the crtc has a DSI encoder which
+ * is operating in command mode.
+ * Flag to use TE from DSI0 instead of VBI in command mode
+ */
+#define I915_MODE_FLAG_DSI_USE_TE0 (1<<3)
+/* Flag to use TE from DSI1 instead of VBI in command mode */
+#define I915_MODE_FLAG_DSI_USE_TE1 (1<<4)
+/* Flag to indicate mipi dsi periodic command mode where we do not get TE */
+#define I915_MODE_FLAG_DSI_PERIODIC_CMD_MODE (1<<5)
 
 struct intel_pipe_wm {
 	struct intel_wm_level wm[5];
-- 
2.21.0.5.gaeb582a

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [Intel-gfx] [V3 3/8] drm/i915/dsi: Add cmd mode flags in display mode private flags
@ 2019-11-19 12:33   ` Vandita Kulkarni
  0 siblings, 0 replies; 41+ messages in thread
From: Vandita Kulkarni @ 2019-11-19 12:33 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Adding TE flags and periodic command mode flags
as part of private flags to indicate what TE interrupts
we would be getting instead of vblanks in case of mipi dsi
command mode.

v2: Add TE flag description (Jani)

Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com>
---
 drivers/gpu/drm/i915/display/intel_display_types.h | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
index 83ea04149b77..1e071cfb3ff7 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -656,6 +656,16 @@ struct intel_crtc_scaler_state {
 #define I915_MODE_FLAG_GET_SCANLINE_FROM_TIMESTAMP (1<<1)
 /* Flag to use the scanline counter instead of the pixel counter */
 #define I915_MODE_FLAG_USE_SCANLINE_COUNTER (1<<2)
+/*
+ * TE0 or TE1 flag is set if the crtc has a DSI encoder which
+ * is operating in command mode.
+ * Flag to use TE from DSI0 instead of VBI in command mode
+ */
+#define I915_MODE_FLAG_DSI_USE_TE0 (1<<3)
+/* Flag to use TE from DSI1 instead of VBI in command mode */
+#define I915_MODE_FLAG_DSI_USE_TE1 (1<<4)
+/* Flag to indicate mipi dsi periodic command mode where we do not get TE */
+#define I915_MODE_FLAG_DSI_PERIODIC_CMD_MODE (1<<5)
 
 struct intel_pipe_wm {
 	struct intel_wm_level wm[5];
-- 
2.21.0.5.gaeb582a

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [V3 4/8] drm/i915/dsi: Add check for periodic command mode
@ 2019-11-19 12:33   ` Vandita Kulkarni
  0 siblings, 0 replies; 41+ messages in thread
From: Vandita Kulkarni @ 2019-11-19 12:33 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

If the GOP has programmed periodic command mode,
we need to disable that which would need a
deconfigure and configure sequence.

Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com>
---
 drivers/gpu/drm/i915/display/icl_dsi.c | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c
index 96f912b153e9..5bbaac5980ca 100644
--- a/drivers/gpu/drm/i915/display/icl_dsi.c
+++ b/drivers/gpu/drm/i915/display/icl_dsi.c
@@ -1306,6 +1306,21 @@ static void gen11_dsi_get_timings(struct intel_encoder *encoder,
 	adjusted_mode->crtc_vblank_end = adjusted_mode->crtc_vtotal;
 }
 
+bool gen11_dsi_is_periodic_cmd_mode(struct drm_i915_private *dev_priv,
+				    struct intel_dsi *intel_dsi)
+{
+	u32 val;
+	enum transcoder dsi_trans;
+
+	if (intel_dsi->ports == BIT(PORT_B))
+		dsi_trans = TRANSCODER_DSI_1;
+	else
+		dsi_trans = TRANSCODER_DSI_0;
+
+	val = I915_READ(DSI_TRANS_FUNC_CONF(dsi_trans));
+	return (val & DSI_PERIODIC_FRAME_UPDATE_ENABLE);
+}
+
 static void gen11_dsi_get_config(struct intel_encoder *encoder,
 				 struct intel_crtc_state *pipe_config)
 {
@@ -1324,6 +1339,10 @@ static void gen11_dsi_get_config(struct intel_encoder *encoder,
 	gen11_dsi_get_timings(encoder, pipe_config);
 	pipe_config->output_types |= BIT(INTEL_OUTPUT_DSI);
 	pipe_config->pipe_bpp = bdw_get_pipemisc_bpp(crtc);
+
+	if (gen11_dsi_is_periodic_cmd_mode(dev_priv, intel_dsi))
+		pipe_config->hw.adjusted_mode.private_flags |=
+					I915_MODE_FLAG_DSI_PERIODIC_CMD_MODE;
 }
 
 static int gen11_dsi_compute_config(struct intel_encoder *encoder,
@@ -1354,6 +1373,9 @@ static int gen11_dsi_compute_config(struct intel_encoder *encoder,
 	pipe_config->clock_set = true;
 	pipe_config->port_clock = intel_dsi_bitrate(intel_dsi) / 5;
 
+	/* We would not opereate in peridoc command mode */
+	pipe_config->hw.adjusted_mode.private_flags &=
+					~I915_MODE_FLAG_DSI_PERIODIC_CMD_MODE;
 	return 0;
 }
 
-- 
2.21.0.5.gaeb582a

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [Intel-gfx] [V3 4/8] drm/i915/dsi: Add check for periodic command mode
@ 2019-11-19 12:33   ` Vandita Kulkarni
  0 siblings, 0 replies; 41+ messages in thread
From: Vandita Kulkarni @ 2019-11-19 12:33 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

If the GOP has programmed periodic command mode,
we need to disable that which would need a
deconfigure and configure sequence.

Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com>
---
 drivers/gpu/drm/i915/display/icl_dsi.c | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c
index 96f912b153e9..5bbaac5980ca 100644
--- a/drivers/gpu/drm/i915/display/icl_dsi.c
+++ b/drivers/gpu/drm/i915/display/icl_dsi.c
@@ -1306,6 +1306,21 @@ static void gen11_dsi_get_timings(struct intel_encoder *encoder,
 	adjusted_mode->crtc_vblank_end = adjusted_mode->crtc_vtotal;
 }
 
+bool gen11_dsi_is_periodic_cmd_mode(struct drm_i915_private *dev_priv,
+				    struct intel_dsi *intel_dsi)
+{
+	u32 val;
+	enum transcoder dsi_trans;
+
+	if (intel_dsi->ports == BIT(PORT_B))
+		dsi_trans = TRANSCODER_DSI_1;
+	else
+		dsi_trans = TRANSCODER_DSI_0;
+
+	val = I915_READ(DSI_TRANS_FUNC_CONF(dsi_trans));
+	return (val & DSI_PERIODIC_FRAME_UPDATE_ENABLE);
+}
+
 static void gen11_dsi_get_config(struct intel_encoder *encoder,
 				 struct intel_crtc_state *pipe_config)
 {
@@ -1324,6 +1339,10 @@ static void gen11_dsi_get_config(struct intel_encoder *encoder,
 	gen11_dsi_get_timings(encoder, pipe_config);
 	pipe_config->output_types |= BIT(INTEL_OUTPUT_DSI);
 	pipe_config->pipe_bpp = bdw_get_pipemisc_bpp(crtc);
+
+	if (gen11_dsi_is_periodic_cmd_mode(dev_priv, intel_dsi))
+		pipe_config->hw.adjusted_mode.private_flags |=
+					I915_MODE_FLAG_DSI_PERIODIC_CMD_MODE;
 }
 
 static int gen11_dsi_compute_config(struct intel_encoder *encoder,
@@ -1354,6 +1373,9 @@ static int gen11_dsi_compute_config(struct intel_encoder *encoder,
 	pipe_config->clock_set = true;
 	pipe_config->port_clock = intel_dsi_bitrate(intel_dsi) / 5;
 
+	/* We would not opereate in peridoc command mode */
+	pipe_config->hw.adjusted_mode.private_flags &=
+					~I915_MODE_FLAG_DSI_PERIODIC_CMD_MODE;
 	return 0;
 }
 
-- 
2.21.0.5.gaeb582a

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [V3 5/8] drm/i915/dsi: Use private flags to indicate TE in cmd mode
@ 2019-11-19 12:33   ` Vandita Kulkarni
  0 siblings, 0 replies; 41+ messages in thread
From: Vandita Kulkarni @ 2019-11-19 12:33 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

On dsi cmd mode we do not receive vblanks instead
we would get TE and these flags indicate TE is expected on
which port.

Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com>
---
 drivers/gpu/drm/i915/display/icl_dsi.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c
index 5bbaac5980ca..8db3a0f48c39 100644
--- a/drivers/gpu/drm/i915/display/icl_dsi.c
+++ b/drivers/gpu/drm/i915/display/icl_dsi.c
@@ -1376,6 +1376,21 @@ static int gen11_dsi_compute_config(struct intel_encoder *encoder,
 	/* We would not opereate in peridoc command mode */
 	pipe_config->hw.adjusted_mode.private_flags &=
 					~I915_MODE_FLAG_DSI_PERIODIC_CMD_MODE;
+
+	/*
+	 * In case of TE GATE cmd mode, we
+	 * receive TE from the slave if
+	 * dual link is enabled
+	 */
+	if (is_cmd_mode(intel_dsi)) {
+		if (intel_dsi->ports == BIT(PORT_B))
+			pipe_config->hw.adjusted_mode.private_flags |=
+						I915_MODE_FLAG_DSI_USE_TE1;
+		else
+			pipe_config->hw.adjusted_mode.private_flags |=
+						I915_MODE_FLAG_DSI_USE_TE0;
+	}
+
 	return 0;
 }
 
-- 
2.21.0.5.gaeb582a

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [Intel-gfx] [V3 5/8] drm/i915/dsi: Use private flags to indicate TE in cmd mode
@ 2019-11-19 12:33   ` Vandita Kulkarni
  0 siblings, 0 replies; 41+ messages in thread
From: Vandita Kulkarni @ 2019-11-19 12:33 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

On dsi cmd mode we do not receive vblanks instead
we would get TE and these flags indicate TE is expected on
which port.

Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com>
---
 drivers/gpu/drm/i915/display/icl_dsi.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c
index 5bbaac5980ca..8db3a0f48c39 100644
--- a/drivers/gpu/drm/i915/display/icl_dsi.c
+++ b/drivers/gpu/drm/i915/display/icl_dsi.c
@@ -1376,6 +1376,21 @@ static int gen11_dsi_compute_config(struct intel_encoder *encoder,
 	/* We would not opereate in peridoc command mode */
 	pipe_config->hw.adjusted_mode.private_flags &=
 					~I915_MODE_FLAG_DSI_PERIODIC_CMD_MODE;
+
+	/*
+	 * In case of TE GATE cmd mode, we
+	 * receive TE from the slave if
+	 * dual link is enabled
+	 */
+	if (is_cmd_mode(intel_dsi)) {
+		if (intel_dsi->ports == BIT(PORT_B))
+			pipe_config->hw.adjusted_mode.private_flags |=
+						I915_MODE_FLAG_DSI_USE_TE1;
+		else
+			pipe_config->hw.adjusted_mode.private_flags |=
+						I915_MODE_FLAG_DSI_USE_TE0;
+	}
+
 	return 0;
 }
 
-- 
2.21.0.5.gaeb582a

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [V3 6/8] drm/i915/dsi: Configure TE interrupt for cmd mode
@ 2019-11-19 12:33   ` Vandita Kulkarni
  0 siblings, 0 replies; 41+ messages in thread
From: Vandita Kulkarni @ 2019-11-19 12:33 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

We need to configure TE interrupt in two places.
Port interrupt and DSI interrupt mask registers.

v2: Hide the private flags check inside configure_te (Jani)

Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com>
---
 drivers/gpu/drm/i915/i915_irq.c | 55 +++++++++++++++++++++++++++++++--
 1 file changed, 53 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index dae00f7dd7df..a3d1fc0bfb56 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -41,6 +41,7 @@
 #include "display/intel_hotplug.h"
 #include "display/intel_lpe_audio.h"
 #include "display/intel_psr.h"
+#include "display/intel_dsi.h"
 
 #include "gt/intel_gt.h"
 #include "gt/intel_gt_irq.h"
@@ -2571,12 +2572,46 @@ int ilk_enable_vblank(struct drm_crtc *crtc)
 	return 0;
 }
 
+static bool gen11_dsi_configure_te(struct drm_i915_private *dev_priv,
+				   struct drm_display_mode *mode, bool enable)
+{
+	enum port port;
+	u32 tmp;
+
+	if (!(mode->private_flags &
+	    (I915_MODE_FLAG_DSI_USE_TE1 | I915_MODE_FLAG_DSI_USE_TE0)))
+		return false;
+
+	if (mode->private_flags & I915_MODE_FLAG_DSI_USE_TE1)
+		port = PORT_B;
+	else
+		port = PORT_A;
+
+	tmp =  I915_READ(DSI_INTR_MASK_REG(port));
+	if (enable)
+		tmp &= ~DSI_TE_EVENT;
+	else
+		tmp |= DSI_TE_EVENT;
+
+	I915_WRITE(DSI_INTR_MASK_REG(port), tmp);
+	return true;
+}
+
 int bdw_enable_vblank(struct drm_crtc *crtc)
 {
 	struct drm_i915_private *dev_priv = to_i915(crtc->dev);
-	enum pipe pipe = to_intel_crtc(crtc)->pipe;
+	struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
+	enum pipe pipe = intel_crtc->pipe;
+	struct drm_vblank_crtc *vblank;
+	struct drm_display_mode *mode;
 	unsigned long irqflags;
 
+	vblank = &crtc->dev->vblank[drm_crtc_index(crtc)];
+	mode = &vblank->hwmode;
+
+	if (gen11_dsi_configure_te(dev_priv, mode, true))
+		return 0;
+
 	spin_lock_irqsave(&dev_priv->irq_lock, irqflags);
 	bdw_enable_pipe_irq(dev_priv, pipe, GEN8_PIPE_VBLANK);
 	spin_unlock_irqrestore(&dev_priv->irq_lock, irqflags);
@@ -2642,9 +2677,18 @@ void ilk_disable_vblank(struct drm_crtc *crtc)
 void bdw_disable_vblank(struct drm_crtc *crtc)
 {
 	struct drm_i915_private *dev_priv = to_i915(crtc->dev);
-	enum pipe pipe = to_intel_crtc(crtc)->pipe;
+	struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
+	enum pipe pipe = intel_crtc->pipe;
+	struct drm_vblank_crtc *vblank;
+	struct drm_display_mode *mode;
 	unsigned long irqflags;
 
+	vblank = &crtc->dev->vblank[drm_crtc_index(crtc)];
+	mode = &vblank->hwmode;
+
+	if (gen11_dsi_configure_te(dev_priv, mode, false))
+		return;
+
 	spin_lock_irqsave(&dev_priv->irq_lock, irqflags);
 	bdw_disable_pipe_irq(dev_priv, pipe, GEN8_PIPE_VBLANK);
 	spin_unlock_irqrestore(&dev_priv->irq_lock, irqflags);
@@ -3350,6 +3394,13 @@ static void gen8_de_irq_postinstall(struct drm_i915_private *dev_priv)
 		gen3_assert_iir_is_zero(uncore, EDP_PSR_IIR);
 	}
 
+	if (INTEL_GEN(dev_priv) >= 11) {
+		enum port port;
+
+		if (intel_bios_is_dsi_present(dev_priv, &port))
+			de_port_masked |= DSI0_TE | DSI1_TE;
+	}
+
 	for_each_pipe(dev_priv, pipe) {
 		dev_priv->de_irq_mask[pipe] = ~de_pipe_masked;
 
-- 
2.21.0.5.gaeb582a

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [Intel-gfx] [V3 6/8] drm/i915/dsi: Configure TE interrupt for cmd mode
@ 2019-11-19 12:33   ` Vandita Kulkarni
  0 siblings, 0 replies; 41+ messages in thread
From: Vandita Kulkarni @ 2019-11-19 12:33 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

We need to configure TE interrupt in two places.
Port interrupt and DSI interrupt mask registers.

v2: Hide the private flags check inside configure_te (Jani)

Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com>
---
 drivers/gpu/drm/i915/i915_irq.c | 55 +++++++++++++++++++++++++++++++--
 1 file changed, 53 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index dae00f7dd7df..a3d1fc0bfb56 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -41,6 +41,7 @@
 #include "display/intel_hotplug.h"
 #include "display/intel_lpe_audio.h"
 #include "display/intel_psr.h"
+#include "display/intel_dsi.h"
 
 #include "gt/intel_gt.h"
 #include "gt/intel_gt_irq.h"
@@ -2571,12 +2572,46 @@ int ilk_enable_vblank(struct drm_crtc *crtc)
 	return 0;
 }
 
+static bool gen11_dsi_configure_te(struct drm_i915_private *dev_priv,
+				   struct drm_display_mode *mode, bool enable)
+{
+	enum port port;
+	u32 tmp;
+
+	if (!(mode->private_flags &
+	    (I915_MODE_FLAG_DSI_USE_TE1 | I915_MODE_FLAG_DSI_USE_TE0)))
+		return false;
+
+	if (mode->private_flags & I915_MODE_FLAG_DSI_USE_TE1)
+		port = PORT_B;
+	else
+		port = PORT_A;
+
+	tmp =  I915_READ(DSI_INTR_MASK_REG(port));
+	if (enable)
+		tmp &= ~DSI_TE_EVENT;
+	else
+		tmp |= DSI_TE_EVENT;
+
+	I915_WRITE(DSI_INTR_MASK_REG(port), tmp);
+	return true;
+}
+
 int bdw_enable_vblank(struct drm_crtc *crtc)
 {
 	struct drm_i915_private *dev_priv = to_i915(crtc->dev);
-	enum pipe pipe = to_intel_crtc(crtc)->pipe;
+	struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
+	enum pipe pipe = intel_crtc->pipe;
+	struct drm_vblank_crtc *vblank;
+	struct drm_display_mode *mode;
 	unsigned long irqflags;
 
+	vblank = &crtc->dev->vblank[drm_crtc_index(crtc)];
+	mode = &vblank->hwmode;
+
+	if (gen11_dsi_configure_te(dev_priv, mode, true))
+		return 0;
+
 	spin_lock_irqsave(&dev_priv->irq_lock, irqflags);
 	bdw_enable_pipe_irq(dev_priv, pipe, GEN8_PIPE_VBLANK);
 	spin_unlock_irqrestore(&dev_priv->irq_lock, irqflags);
@@ -2642,9 +2677,18 @@ void ilk_disable_vblank(struct drm_crtc *crtc)
 void bdw_disable_vblank(struct drm_crtc *crtc)
 {
 	struct drm_i915_private *dev_priv = to_i915(crtc->dev);
-	enum pipe pipe = to_intel_crtc(crtc)->pipe;
+	struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
+	enum pipe pipe = intel_crtc->pipe;
+	struct drm_vblank_crtc *vblank;
+	struct drm_display_mode *mode;
 	unsigned long irqflags;
 
+	vblank = &crtc->dev->vblank[drm_crtc_index(crtc)];
+	mode = &vblank->hwmode;
+
+	if (gen11_dsi_configure_te(dev_priv, mode, false))
+		return;
+
 	spin_lock_irqsave(&dev_priv->irq_lock, irqflags);
 	bdw_disable_pipe_irq(dev_priv, pipe, GEN8_PIPE_VBLANK);
 	spin_unlock_irqrestore(&dev_priv->irq_lock, irqflags);
@@ -3350,6 +3394,13 @@ static void gen8_de_irq_postinstall(struct drm_i915_private *dev_priv)
 		gen3_assert_iir_is_zero(uncore, EDP_PSR_IIR);
 	}
 
+	if (INTEL_GEN(dev_priv) >= 11) {
+		enum port port;
+
+		if (intel_bios_is_dsi_present(dev_priv, &port))
+			de_port_masked |= DSI0_TE | DSI1_TE;
+	}
+
 	for_each_pipe(dev_priv, pipe) {
 		dev_priv->de_irq_mask[pipe] = ~de_pipe_masked;
 
-- 
2.21.0.5.gaeb582a

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [V3 7/8] drm/i915/dsi: Add TE handler for dsi cmd mode.
@ 2019-11-19 12:33   ` Vandita Kulkarni
  0 siblings, 0 replies; 41+ messages in thread
From: Vandita Kulkarni @ 2019-11-19 12:33 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

In case of dual link, we get the TE on slave.
So clear the TE on slave DSI IIR.

v2: Pass only relevant masked bits to the handler (Jani)

Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com>
---
 drivers/gpu/drm/i915/i915_irq.c | 64 +++++++++++++++++++++++++++++++++
 1 file changed, 64 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index a3d1fc0bfb56..a8c7043640db 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -2230,6 +2230,62 @@ gen8_de_misc_irq_handler(struct drm_i915_private *dev_priv, u32 iir)
 		DRM_ERROR("Unexpected DE Misc interrupt\n");
 }
 
+void gen11_dsi_te_interrupt_handler(struct drm_i915_private *dev_priv,
+				    u32 te_trigger)
+{
+	enum pipe pipe = INVALID_PIPE;
+	enum transcoder dsi_trans;
+	enum port port;
+	u32 val, tmp;
+
+	/*
+	 * Incase of dual link, TE comes from DSI_1
+	 * this is to check if dual link is enabled
+	 */
+	val = I915_READ(TRANS_DDI_FUNC_CTL2(TRANSCODER_DSI_0));
+	val &= PORT_SYNC_MODE_ENABLE;
+
+	/*
+	 * if dual link is enabled, then read DSI_0
+	 * transcoder registers
+	 */
+	port = ((te_trigger & DSI1_TE && val) || (te_trigger & DSI0_TE)) ?
+						  PORT_A : PORT_B;
+	dsi_trans = (port == PORT_A) ? TRANSCODER_DSI_0 : TRANSCODER_DSI_1;
+
+	/* Check if DSI configured in command mode */
+	val = I915_READ(DSI_TRANS_FUNC_CONF(dsi_trans));
+	val = (val & OP_MODE_MASK) >> 28;
+
+	if (val) {
+		DRM_ERROR("DSI trancoder not configured in command mode\n");
+		return;
+	}
+
+	/* Get PIPE for handling VBLANK event */
+	val = I915_READ(TRANS_DDI_FUNC_CTL(dsi_trans));
+	switch (val & TRANS_DDI_EDP_INPUT_MASK) {
+	case TRANS_DDI_EDP_INPUT_A_ON:
+		pipe = PIPE_A;
+		break;
+	case TRANS_DDI_EDP_INPUT_B_ONOFF:
+		pipe = PIPE_B;
+		break;
+	case TRANS_DDI_EDP_INPUT_C_ONOFF:
+		pipe = PIPE_C;
+		break;
+	default:
+		DRM_ERROR("Invalid PIPE\n");
+	}
+
+	/* clear TE in dsi IIR */
+	port = (te_trigger & DSI1_TE) ? PORT_B : PORT_A;
+	tmp = I915_READ(DSI_INTR_IDENT_REG(port));
+	I915_WRITE(DSI_INTR_IDENT_REG(port), tmp);
+
+	drm_handle_vblank(&dev_priv->drm, pipe);
+}
+
 static irqreturn_t
 gen8_de_irq_handler(struct drm_i915_private *dev_priv, u32 master_ctl)
 {
@@ -2294,6 +2350,14 @@ gen8_de_irq_handler(struct drm_i915_private *dev_priv, u32 master_ctl)
 				found = true;
 			}
 
+			if (INTEL_GEN(dev_priv) >= 11) {
+				tmp_mask = iir & (DSI0_TE | DSI1_TE);
+				if (tmp_mask) {
+					gen11_dsi_te_interrupt_handler(dev_priv, tmp_mask);
+					found = true;
+				}
+			}
+
 			if (!found)
 				DRM_ERROR("Unexpected DE Port interrupt\n");
 		}
-- 
2.21.0.5.gaeb582a

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [Intel-gfx] [V3 7/8] drm/i915/dsi: Add TE handler for dsi cmd mode.
@ 2019-11-19 12:33   ` Vandita Kulkarni
  0 siblings, 0 replies; 41+ messages in thread
From: Vandita Kulkarni @ 2019-11-19 12:33 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

In case of dual link, we get the TE on slave.
So clear the TE on slave DSI IIR.

v2: Pass only relevant masked bits to the handler (Jani)

Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com>
---
 drivers/gpu/drm/i915/i915_irq.c | 64 +++++++++++++++++++++++++++++++++
 1 file changed, 64 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index a3d1fc0bfb56..a8c7043640db 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -2230,6 +2230,62 @@ gen8_de_misc_irq_handler(struct drm_i915_private *dev_priv, u32 iir)
 		DRM_ERROR("Unexpected DE Misc interrupt\n");
 }
 
+void gen11_dsi_te_interrupt_handler(struct drm_i915_private *dev_priv,
+				    u32 te_trigger)
+{
+	enum pipe pipe = INVALID_PIPE;
+	enum transcoder dsi_trans;
+	enum port port;
+	u32 val, tmp;
+
+	/*
+	 * Incase of dual link, TE comes from DSI_1
+	 * this is to check if dual link is enabled
+	 */
+	val = I915_READ(TRANS_DDI_FUNC_CTL2(TRANSCODER_DSI_0));
+	val &= PORT_SYNC_MODE_ENABLE;
+
+	/*
+	 * if dual link is enabled, then read DSI_0
+	 * transcoder registers
+	 */
+	port = ((te_trigger & DSI1_TE && val) || (te_trigger & DSI0_TE)) ?
+						  PORT_A : PORT_B;
+	dsi_trans = (port == PORT_A) ? TRANSCODER_DSI_0 : TRANSCODER_DSI_1;
+
+	/* Check if DSI configured in command mode */
+	val = I915_READ(DSI_TRANS_FUNC_CONF(dsi_trans));
+	val = (val & OP_MODE_MASK) >> 28;
+
+	if (val) {
+		DRM_ERROR("DSI trancoder not configured in command mode\n");
+		return;
+	}
+
+	/* Get PIPE for handling VBLANK event */
+	val = I915_READ(TRANS_DDI_FUNC_CTL(dsi_trans));
+	switch (val & TRANS_DDI_EDP_INPUT_MASK) {
+	case TRANS_DDI_EDP_INPUT_A_ON:
+		pipe = PIPE_A;
+		break;
+	case TRANS_DDI_EDP_INPUT_B_ONOFF:
+		pipe = PIPE_B;
+		break;
+	case TRANS_DDI_EDP_INPUT_C_ONOFF:
+		pipe = PIPE_C;
+		break;
+	default:
+		DRM_ERROR("Invalid PIPE\n");
+	}
+
+	/* clear TE in dsi IIR */
+	port = (te_trigger & DSI1_TE) ? PORT_B : PORT_A;
+	tmp = I915_READ(DSI_INTR_IDENT_REG(port));
+	I915_WRITE(DSI_INTR_IDENT_REG(port), tmp);
+
+	drm_handle_vblank(&dev_priv->drm, pipe);
+}
+
 static irqreturn_t
 gen8_de_irq_handler(struct drm_i915_private *dev_priv, u32 master_ctl)
 {
@@ -2294,6 +2350,14 @@ gen8_de_irq_handler(struct drm_i915_private *dev_priv, u32 master_ctl)
 				found = true;
 			}
 
+			if (INTEL_GEN(dev_priv) >= 11) {
+				tmp_mask = iir & (DSI0_TE | DSI1_TE);
+				if (tmp_mask) {
+					gen11_dsi_te_interrupt_handler(dev_priv, tmp_mask);
+					found = true;
+				}
+			}
+
 			if (!found)
 				DRM_ERROR("Unexpected DE Port interrupt\n");
 		}
-- 
2.21.0.5.gaeb582a

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [V3 8/8] drm/i915/dsi: Initiate fame request in cmd mode
@ 2019-11-19 12:33   ` Vandita Kulkarni
  0 siblings, 0 replies; 41+ messages in thread
From: Vandita Kulkarni @ 2019-11-19 12:33 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

In TE Gate mode, on every flip we need to set the
frame update request bit. After this  bit is set
transcoder hardware will automatically send the
frame data to the panel when it receives the TE event.

Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com>
---
 drivers/gpu/drm/i915/display/icl_dsi.c       | 22 ++++++++++++++++++++
 drivers/gpu/drm/i915/display/intel_display.c | 10 +++++++++
 drivers/gpu/drm/i915/display/intel_dsi.h     |  3 +++
 3 files changed, 35 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c
index 8db3a0f48c39..78fc32065661 100644
--- a/drivers/gpu/drm/i915/display/icl_dsi.c
+++ b/drivers/gpu/drm/i915/display/icl_dsi.c
@@ -198,6 +198,28 @@ static int dsi_send_pkt_payld(struct intel_dsi_host *host,
 	return 0;
 }
 
+void gen11_dsi_frame_update(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);
+	u32 tmp, private_flags;
+	enum port port;
+
+	private_flags = crtc_state->hw.adjusted_mode.private_flags;
+
+	/* case 1 also covers dual link */
+	if (private_flags & I915_MODE_FLAG_DSI_USE_TE0)
+		port = PORT_A;
+	else if (private_flags & I915_MODE_FLAG_DSI_USE_TE1)
+		port = PORT_B;
+	else
+		return;
+
+	tmp = I915_READ(DSI_CMD_FRMCTL(port));
+	tmp |= DSI_FRAME_UPDATE_REQUEST;
+	I915_WRITE(DSI_CMD_FRMCTL(port), tmp);
+}
+
 static void dsi_program_swing_and_deemphasis(struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index dccb94b24d14..5fc42689087a 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -14886,6 +14886,16 @@ static void intel_atomic_commit_tail(struct intel_atomic_state *state)
 			intel_color_load_luts(new_crtc_state);
 	}
 
+	/*
+	 * Incase of mipi dsi command mode, we need to set frame update
+	 * for every commit
+	 */
+	if ((INTEL_GEN(dev_priv) >= 11) &&
+	    (intel_crtc_has_type(new_crtc_state, INTEL_OUTPUT_DSI))) {
+		if (new_crtc_state->hw.active)
+			gen11_dsi_frame_update(new_crtc_state);
+	}
+
 	/*
 	 * Now that the vblank has passed, we can go ahead and program the
 	 * optimal watermarks on platforms that need two-step watermark
diff --git a/drivers/gpu/drm/i915/display/intel_dsi.h b/drivers/gpu/drm/i915/display/intel_dsi.h
index b15be5814599..0c5366e23feb 100644
--- a/drivers/gpu/drm/i915/display/intel_dsi.h
+++ b/drivers/gpu/drm/i915/display/intel_dsi.h
@@ -201,6 +201,9 @@ u32 bxt_dsi_get_pclk(struct intel_encoder *encoder,
 		     struct intel_crtc_state *config);
 void bxt_dsi_reset_clocks(struct intel_encoder *encoder, enum port port);
 
+/* icl_dsi.c */
+void gen11_dsi_frame_update(struct intel_crtc_state *crtc_state);
+
 /* intel_dsi_vbt.c */
 bool intel_dsi_vbt_init(struct intel_dsi *intel_dsi, u16 panel_id);
 void intel_dsi_vbt_exec_sequence(struct intel_dsi *intel_dsi,
-- 
2.21.0.5.gaeb582a

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [Intel-gfx] [V3 8/8] drm/i915/dsi: Initiate fame request in cmd mode
@ 2019-11-19 12:33   ` Vandita Kulkarni
  0 siblings, 0 replies; 41+ messages in thread
From: Vandita Kulkarni @ 2019-11-19 12:33 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

In TE Gate mode, on every flip we need to set the
frame update request bit. After this  bit is set
transcoder hardware will automatically send the
frame data to the panel when it receives the TE event.

Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com>
---
 drivers/gpu/drm/i915/display/icl_dsi.c       | 22 ++++++++++++++++++++
 drivers/gpu/drm/i915/display/intel_display.c | 10 +++++++++
 drivers/gpu/drm/i915/display/intel_dsi.h     |  3 +++
 3 files changed, 35 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c
index 8db3a0f48c39..78fc32065661 100644
--- a/drivers/gpu/drm/i915/display/icl_dsi.c
+++ b/drivers/gpu/drm/i915/display/icl_dsi.c
@@ -198,6 +198,28 @@ static int dsi_send_pkt_payld(struct intel_dsi_host *host,
 	return 0;
 }
 
+void gen11_dsi_frame_update(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);
+	u32 tmp, private_flags;
+	enum port port;
+
+	private_flags = crtc_state->hw.adjusted_mode.private_flags;
+
+	/* case 1 also covers dual link */
+	if (private_flags & I915_MODE_FLAG_DSI_USE_TE0)
+		port = PORT_A;
+	else if (private_flags & I915_MODE_FLAG_DSI_USE_TE1)
+		port = PORT_B;
+	else
+		return;
+
+	tmp = I915_READ(DSI_CMD_FRMCTL(port));
+	tmp |= DSI_FRAME_UPDATE_REQUEST;
+	I915_WRITE(DSI_CMD_FRMCTL(port), tmp);
+}
+
 static void dsi_program_swing_and_deemphasis(struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index dccb94b24d14..5fc42689087a 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -14886,6 +14886,16 @@ static void intel_atomic_commit_tail(struct intel_atomic_state *state)
 			intel_color_load_luts(new_crtc_state);
 	}
 
+	/*
+	 * Incase of mipi dsi command mode, we need to set frame update
+	 * for every commit
+	 */
+	if ((INTEL_GEN(dev_priv) >= 11) &&
+	    (intel_crtc_has_type(new_crtc_state, INTEL_OUTPUT_DSI))) {
+		if (new_crtc_state->hw.active)
+			gen11_dsi_frame_update(new_crtc_state);
+	}
+
 	/*
 	 * Now that the vblank has passed, we can go ahead and program the
 	 * optimal watermarks on platforms that need two-step watermark
diff --git a/drivers/gpu/drm/i915/display/intel_dsi.h b/drivers/gpu/drm/i915/display/intel_dsi.h
index b15be5814599..0c5366e23feb 100644
--- a/drivers/gpu/drm/i915/display/intel_dsi.h
+++ b/drivers/gpu/drm/i915/display/intel_dsi.h
@@ -201,6 +201,9 @@ u32 bxt_dsi_get_pclk(struct intel_encoder *encoder,
 		     struct intel_crtc_state *config);
 void bxt_dsi_reset_clocks(struct intel_encoder *encoder, enum port port);
 
+/* icl_dsi.c */
+void gen11_dsi_frame_update(struct intel_crtc_state *crtc_state);
+
 /* intel_dsi_vbt.c */
 bool intel_dsi_vbt_init(struct intel_dsi *intel_dsi, u16 panel_id);
 void intel_dsi_vbt_exec_sequence(struct intel_dsi *intel_dsi,
-- 
2.21.0.5.gaeb582a

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* ✗ Fi.CI.CHECKPATCH: warning for Add support for mipi dsi cmd mode (rev2)
@ 2019-11-19 13:09   ` Patchwork
  0 siblings, 0 replies; 41+ messages in thread
From: Patchwork @ 2019-11-19 13:09 UTC (permalink / raw)
  To: Vandita Kulkarni; +Cc: intel-gfx

== Series Details ==

Series: Add support for mipi dsi cmd mode (rev2)
URL   : https://patchwork.freedesktop.org/series/69290/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
fdc21d81bb9e drm/i915/dsi: Configure transcoder operation for command mode.
-:60: CHECK:BRACES: braces {} should be used on all arms of this statement
#60: FILE: drivers/gpu/drm/i915/display/icl_dsi.c:988:
+	if (enable) {
[...]
+	} else
[...]

-:63: CHECK:BRACES: Unbalanced braces around else statement
#63: FILE: drivers/gpu/drm/i915/display/icl_dsi.c:991:
+	} else

total: 0 errors, 0 warnings, 2 checks, 82 lines checked
14ef58b82e3d drm/i915/dsi: Add vblank calculation for command mode
-:41: WARNING:LONG_LINE: line over 100 characters
#41: FILE: drivers/gpu/drm/i915/display/icl_dsi.c:860:
+		line_time_us = (htotal * (bpp / 8) * byte_clk_period_ns) / (1000 * intel_dsi->lane_count);

total: 0 errors, 1 warnings, 0 checks, 73 lines checked
efeb2e076cc1 drm/i915/dsi: Add cmd mode flags in display mode private flags
-:30: CHECK:SPACING: spaces preferred around that '<<' (ctx:VxV)
#30: FILE: drivers/gpu/drm/i915/display/intel_display_types.h:664:
+#define I915_MODE_FLAG_DSI_USE_TE0 (1<<3)
                                      ^

-:32: CHECK:SPACING: spaces preferred around that '<<' (ctx:VxV)
#32: FILE: drivers/gpu/drm/i915/display/intel_display_types.h:666:
+#define I915_MODE_FLAG_DSI_USE_TE1 (1<<4)
                                      ^

-:34: CHECK:SPACING: spaces preferred around that '<<' (ctx:VxV)
#34: FILE: drivers/gpu/drm/i915/display/intel_display_types.h:668:
+#define I915_MODE_FLAG_DSI_PERIODIC_CMD_MODE (1<<5)
                                                ^

total: 0 errors, 0 warnings, 3 checks, 16 lines checked
ef45ca1a8eed drm/i915/dsi: Add check for periodic command mode
41fd924cda49 drm/i915/dsi: Use private flags to indicate TE in cmd mode
6222c0176bcb drm/i915/dsi: Configure TE interrupt for cmd mode
c61d2184cd7b drm/i915/dsi: Add TE handler for dsi cmd mode.
8d1db9bddfa7 drm/i915/dsi: Initiate fame request in cmd mode

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Add support for mipi dsi cmd mode (rev2)
@ 2019-11-19 13:09   ` Patchwork
  0 siblings, 0 replies; 41+ messages in thread
From: Patchwork @ 2019-11-19 13:09 UTC (permalink / raw)
  To: Vandita Kulkarni; +Cc: intel-gfx

== Series Details ==

Series: Add support for mipi dsi cmd mode (rev2)
URL   : https://patchwork.freedesktop.org/series/69290/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
fdc21d81bb9e drm/i915/dsi: Configure transcoder operation for command mode.
-:60: CHECK:BRACES: braces {} should be used on all arms of this statement
#60: FILE: drivers/gpu/drm/i915/display/icl_dsi.c:988:
+	if (enable) {
[...]
+	} else
[...]

-:63: CHECK:BRACES: Unbalanced braces around else statement
#63: FILE: drivers/gpu/drm/i915/display/icl_dsi.c:991:
+	} else

total: 0 errors, 0 warnings, 2 checks, 82 lines checked
14ef58b82e3d drm/i915/dsi: Add vblank calculation for command mode
-:41: WARNING:LONG_LINE: line over 100 characters
#41: FILE: drivers/gpu/drm/i915/display/icl_dsi.c:860:
+		line_time_us = (htotal * (bpp / 8) * byte_clk_period_ns) / (1000 * intel_dsi->lane_count);

total: 0 errors, 1 warnings, 0 checks, 73 lines checked
efeb2e076cc1 drm/i915/dsi: Add cmd mode flags in display mode private flags
-:30: CHECK:SPACING: spaces preferred around that '<<' (ctx:VxV)
#30: FILE: drivers/gpu/drm/i915/display/intel_display_types.h:664:
+#define I915_MODE_FLAG_DSI_USE_TE0 (1<<3)
                                      ^

-:32: CHECK:SPACING: spaces preferred around that '<<' (ctx:VxV)
#32: FILE: drivers/gpu/drm/i915/display/intel_display_types.h:666:
+#define I915_MODE_FLAG_DSI_USE_TE1 (1<<4)
                                      ^

-:34: CHECK:SPACING: spaces preferred around that '<<' (ctx:VxV)
#34: FILE: drivers/gpu/drm/i915/display/intel_display_types.h:668:
+#define I915_MODE_FLAG_DSI_PERIODIC_CMD_MODE (1<<5)
                                                ^

total: 0 errors, 0 warnings, 3 checks, 16 lines checked
ef45ca1a8eed drm/i915/dsi: Add check for periodic command mode
41fd924cda49 drm/i915/dsi: Use private flags to indicate TE in cmd mode
6222c0176bcb drm/i915/dsi: Configure TE interrupt for cmd mode
c61d2184cd7b drm/i915/dsi: Add TE handler for dsi cmd mode.
8d1db9bddfa7 drm/i915/dsi: Initiate fame request in cmd mode

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* ✗ Fi.CI.SPARSE: warning for Add support for mipi dsi cmd mode (rev2)
@ 2019-11-19 13:12   ` Patchwork
  0 siblings, 0 replies; 41+ messages in thread
From: Patchwork @ 2019-11-19 13:12 UTC (permalink / raw)
  To: Vandita Kulkarni; +Cc: intel-gfx

== Series Details ==

Series: Add support for mipi dsi cmd mode (rev2)
URL   : https://patchwork.freedesktop.org/series/69290/
State : warning

== Summary ==

$ dim sparse origin/drm-tip
Sparse version: v0.6.0
Commit: drm/i915/dsi: Configure transcoder operation for command mode.
Okay!

Commit: drm/i915/dsi: Add vblank calculation for command mode
Okay!

Commit: drm/i915/dsi: Add cmd mode flags in display mode private flags
Okay!

Commit: drm/i915/dsi: Add check for periodic command mode
-
+drivers/gpu/drm/i915/display/icl_dsi.c:1309:6: warning: symbol 'gen11_dsi_is_periodic_cmd_mode' was not declared. Should it be static?

Commit: drm/i915/dsi: Use private flags to indicate TE in cmd mode
Okay!

Commit: drm/i915/dsi: Configure TE interrupt for cmd mode
Okay!

Commit: drm/i915/dsi: Add TE handler for dsi cmd mode.
-
+drivers/gpu/drm/i915/i915_irq.c:2233:6: warning: symbol 'gen11_dsi_te_interrupt_handler' was not declared. Should it be static?

Commit: drm/i915/dsi: Initiate fame request in cmd mode
Okay!

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [Intel-gfx] ✗ Fi.CI.SPARSE: warning for Add support for mipi dsi cmd mode (rev2)
@ 2019-11-19 13:12   ` Patchwork
  0 siblings, 0 replies; 41+ messages in thread
From: Patchwork @ 2019-11-19 13:12 UTC (permalink / raw)
  To: Vandita Kulkarni; +Cc: intel-gfx

== Series Details ==

Series: Add support for mipi dsi cmd mode (rev2)
URL   : https://patchwork.freedesktop.org/series/69290/
State : warning

== Summary ==

$ dim sparse origin/drm-tip
Sparse version: v0.6.0
Commit: drm/i915/dsi: Configure transcoder operation for command mode.
Okay!

Commit: drm/i915/dsi: Add vblank calculation for command mode
Okay!

Commit: drm/i915/dsi: Add cmd mode flags in display mode private flags
Okay!

Commit: drm/i915/dsi: Add check for periodic command mode
-
+drivers/gpu/drm/i915/display/icl_dsi.c:1309:6: warning: symbol 'gen11_dsi_is_periodic_cmd_mode' was not declared. Should it be static?

Commit: drm/i915/dsi: Use private flags to indicate TE in cmd mode
Okay!

Commit: drm/i915/dsi: Configure TE interrupt for cmd mode
Okay!

Commit: drm/i915/dsi: Add TE handler for dsi cmd mode.
-
+drivers/gpu/drm/i915/i915_irq.c:2233:6: warning: symbol 'gen11_dsi_te_interrupt_handler' was not declared. Should it be static?

Commit: drm/i915/dsi: Initiate fame request in cmd mode
Okay!

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* ✓ Fi.CI.BAT: success for Add support for mipi dsi cmd mode (rev2)
@ 2019-11-19 13:31   ` Patchwork
  0 siblings, 0 replies; 41+ messages in thread
From: Patchwork @ 2019-11-19 13:31 UTC (permalink / raw)
  To: Vandita Kulkarni; +Cc: intel-gfx

== Series Details ==

Series: Add support for mipi dsi cmd mode (rev2)
URL   : https://patchwork.freedesktop.org/series/69290/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7370 -> Patchwork_15328
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

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

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

### IGT changes ###

#### Issues hit ####

  * igt@debugfs_test@read_all_entries:
    - fi-icl-u3:          [PASS][1] -> [INCOMPLETE][2] ([fdo#107713])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/fi-icl-u3/igt@debugfs_test@read_all_entries.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/fi-icl-u3/igt@debugfs_test@read_all_entries.html
    - fi-icl-u2:          [PASS][3] -> [INCOMPLETE][4] ([fdo#107713])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/fi-icl-u2/igt@debugfs_test@read_all_entries.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/fi-icl-u2/igt@debugfs_test@read_all_entries.html
    - fi-icl-y:           [PASS][5] -> [INCOMPLETE][6] ([fdo#107713])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/fi-icl-y/igt@debugfs_test@read_all_entries.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/fi-icl-y/igt@debugfs_test@read_all_entries.html
    - fi-icl-dsi:         [PASS][7] -> [INCOMPLETE][8] ([fdo#107713])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/fi-icl-dsi/igt@debugfs_test@read_all_entries.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/fi-icl-dsi/igt@debugfs_test@read_all_entries.html
    - fi-icl-guc:         [PASS][9] -> [INCOMPLETE][10] ([fdo#107713])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/fi-icl-guc/igt@debugfs_test@read_all_entries.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/fi-icl-guc/igt@debugfs_test@read_all_entries.html

  * igt@i915_pm_rpm@module-reload:
    - fi-skl-6770hq:      [PASS][11] -> [FAIL][12] ([fdo#108511])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html

  * igt@i915_selftest@live_gem_contexts:
    - fi-bsw-kefka:       [PASS][13] -> [INCOMPLETE][14] ([fdo# 111542])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/fi-bsw-kefka/igt@i915_selftest@live_gem_contexts.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/fi-bsw-kefka/igt@i915_selftest@live_gem_contexts.html

  
#### Possible fixes ####

  * igt@i915_pm_rpm@module-reload:
    - {fi-kbl-7560u}:     [FAIL][15] ([fdo#112269]) -> [PASS][16]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/fi-kbl-7560u/igt@i915_pm_rpm@module-reload.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/fi-kbl-7560u/igt@i915_pm_rpm@module-reload.html

  * igt@i915_selftest@live_blt:
    - fi-hsw-peppy:       [DMESG-FAIL][17] ([fdo#112147]) -> [PASS][18]
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/fi-hsw-peppy/igt@i915_selftest@live_blt.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/fi-hsw-peppy/igt@i915_selftest@live_blt.html

  * igt@i915_selftest@live_gem_contexts:
    - fi-skl-lmem:        [DMESG-FAIL][19] -> [PASS][20]
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/fi-skl-lmem/igt@i915_selftest@live_gem_contexts.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/fi-skl-lmem/igt@i915_selftest@live_gem_contexts.html

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-kbl-7500u:       [FAIL][21] ([fdo#111407]) -> [PASS][22]
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html

  * igt@kms_flip@basic-flip-vs-dpms:
    - fi-skl-6770hq:      [SKIP][23] ([fdo#109271]) -> [PASS][24] +27 similar issues
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/fi-skl-6770hq/igt@kms_flip@basic-flip-vs-dpms.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/fi-skl-6770hq/igt@kms_flip@basic-flip-vs-dpms.html

  * igt@kms_frontbuffer_tracking@basic:
    - fi-hsw-peppy:       [DMESG-WARN][25] ([fdo#102614]) -> [PASS][26]
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/fi-hsw-peppy/igt@kms_frontbuffer_tracking@basic.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/fi-hsw-peppy/igt@kms_frontbuffer_tracking@basic.html

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

  [fdo# 111542]: https://bugs.freedesktop.org/show_bug.cgi?id= 111542
  [fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#108511]: https://bugs.freedesktop.org/show_bug.cgi?id=108511
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#111407]: https://bugs.freedesktop.org/show_bug.cgi?id=111407
  [fdo#112147]: https://bugs.freedesktop.org/show_bug.cgi?id=112147
  [fdo#112269]: https://bugs.freedesktop.org/show_bug.cgi?id=112269


Participating hosts (49 -> 44)
------------------------------

  Additional (1): fi-hsw-4770r 
  Missing    (6): fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper fi-bdw-samus 


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

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_7370 -> Patchwork_15328

  CI-20190529: 20190529
  CI_DRM_7370: d2db945edccfe34bc3cc1d0accafac2036ad4e66 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5293: 4bb46f08f7cb6485642c4351cecdad93072d27a0 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_15328: 8d1db9bddfa74fd98434fde513734ccd952a6b22 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

8d1db9bddfa7 drm/i915/dsi: Initiate fame request in cmd mode
c61d2184cd7b drm/i915/dsi: Add TE handler for dsi cmd mode.
6222c0176bcb drm/i915/dsi: Configure TE interrupt for cmd mode
41fd924cda49 drm/i915/dsi: Use private flags to indicate TE in cmd mode
ef45ca1a8eed drm/i915/dsi: Add check for periodic command mode
efeb2e076cc1 drm/i915/dsi: Add cmd mode flags in display mode private flags
14ef58b82e3d drm/i915/dsi: Add vblank calculation for command mode
fdc21d81bb9e drm/i915/dsi: Configure transcoder operation for command mode.

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [Intel-gfx] ✓ Fi.CI.BAT: success for Add support for mipi dsi cmd mode (rev2)
@ 2019-11-19 13:31   ` Patchwork
  0 siblings, 0 replies; 41+ messages in thread
From: Patchwork @ 2019-11-19 13:31 UTC (permalink / raw)
  To: Vandita Kulkarni; +Cc: intel-gfx

== Series Details ==

Series: Add support for mipi dsi cmd mode (rev2)
URL   : https://patchwork.freedesktop.org/series/69290/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7370 -> Patchwork_15328
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

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

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

### IGT changes ###

#### Issues hit ####

  * igt@debugfs_test@read_all_entries:
    - fi-icl-u3:          [PASS][1] -> [INCOMPLETE][2] ([fdo#107713])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/fi-icl-u3/igt@debugfs_test@read_all_entries.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/fi-icl-u3/igt@debugfs_test@read_all_entries.html
    - fi-icl-u2:          [PASS][3] -> [INCOMPLETE][4] ([fdo#107713])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/fi-icl-u2/igt@debugfs_test@read_all_entries.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/fi-icl-u2/igt@debugfs_test@read_all_entries.html
    - fi-icl-y:           [PASS][5] -> [INCOMPLETE][6] ([fdo#107713])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/fi-icl-y/igt@debugfs_test@read_all_entries.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/fi-icl-y/igt@debugfs_test@read_all_entries.html
    - fi-icl-dsi:         [PASS][7] -> [INCOMPLETE][8] ([fdo#107713])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/fi-icl-dsi/igt@debugfs_test@read_all_entries.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/fi-icl-dsi/igt@debugfs_test@read_all_entries.html
    - fi-icl-guc:         [PASS][9] -> [INCOMPLETE][10] ([fdo#107713])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/fi-icl-guc/igt@debugfs_test@read_all_entries.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/fi-icl-guc/igt@debugfs_test@read_all_entries.html

  * igt@i915_pm_rpm@module-reload:
    - fi-skl-6770hq:      [PASS][11] -> [FAIL][12] ([fdo#108511])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html

  * igt@i915_selftest@live_gem_contexts:
    - fi-bsw-kefka:       [PASS][13] -> [INCOMPLETE][14] ([fdo# 111542])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/fi-bsw-kefka/igt@i915_selftest@live_gem_contexts.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/fi-bsw-kefka/igt@i915_selftest@live_gem_contexts.html

  
#### Possible fixes ####

  * igt@i915_pm_rpm@module-reload:
    - {fi-kbl-7560u}:     [FAIL][15] ([fdo#112269]) -> [PASS][16]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/fi-kbl-7560u/igt@i915_pm_rpm@module-reload.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/fi-kbl-7560u/igt@i915_pm_rpm@module-reload.html

  * igt@i915_selftest@live_blt:
    - fi-hsw-peppy:       [DMESG-FAIL][17] ([fdo#112147]) -> [PASS][18]
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/fi-hsw-peppy/igt@i915_selftest@live_blt.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/fi-hsw-peppy/igt@i915_selftest@live_blt.html

  * igt@i915_selftest@live_gem_contexts:
    - fi-skl-lmem:        [DMESG-FAIL][19] -> [PASS][20]
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/fi-skl-lmem/igt@i915_selftest@live_gem_contexts.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/fi-skl-lmem/igt@i915_selftest@live_gem_contexts.html

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-kbl-7500u:       [FAIL][21] ([fdo#111407]) -> [PASS][22]
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html

  * igt@kms_flip@basic-flip-vs-dpms:
    - fi-skl-6770hq:      [SKIP][23] ([fdo#109271]) -> [PASS][24] +27 similar issues
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/fi-skl-6770hq/igt@kms_flip@basic-flip-vs-dpms.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/fi-skl-6770hq/igt@kms_flip@basic-flip-vs-dpms.html

  * igt@kms_frontbuffer_tracking@basic:
    - fi-hsw-peppy:       [DMESG-WARN][25] ([fdo#102614]) -> [PASS][26]
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/fi-hsw-peppy/igt@kms_frontbuffer_tracking@basic.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/fi-hsw-peppy/igt@kms_frontbuffer_tracking@basic.html

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

  [fdo# 111542]: https://bugs.freedesktop.org/show_bug.cgi?id= 111542
  [fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#108511]: https://bugs.freedesktop.org/show_bug.cgi?id=108511
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#111407]: https://bugs.freedesktop.org/show_bug.cgi?id=111407
  [fdo#112147]: https://bugs.freedesktop.org/show_bug.cgi?id=112147
  [fdo#112269]: https://bugs.freedesktop.org/show_bug.cgi?id=112269


Participating hosts (49 -> 44)
------------------------------

  Additional (1): fi-hsw-4770r 
  Missing    (6): fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper fi-bdw-samus 


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

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_7370 -> Patchwork_15328

  CI-20190529: 20190529
  CI_DRM_7370: d2db945edccfe34bc3cc1d0accafac2036ad4e66 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5293: 4bb46f08f7cb6485642c4351cecdad93072d27a0 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_15328: 8d1db9bddfa74fd98434fde513734ccd952a6b22 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

8d1db9bddfa7 drm/i915/dsi: Initiate fame request in cmd mode
c61d2184cd7b drm/i915/dsi: Add TE handler for dsi cmd mode.
6222c0176bcb drm/i915/dsi: Configure TE interrupt for cmd mode
41fd924cda49 drm/i915/dsi: Use private flags to indicate TE in cmd mode
ef45ca1a8eed drm/i915/dsi: Add check for periodic command mode
efeb2e076cc1 drm/i915/dsi: Add cmd mode flags in display mode private flags
14ef58b82e3d drm/i915/dsi: Add vblank calculation for command mode
fdc21d81bb9e drm/i915/dsi: Configure transcoder operation for command mode.

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* ✗ Fi.CI.IGT: failure for Add support for mipi dsi cmd mode (rev2)
@ 2019-11-19 19:12   ` Patchwork
  0 siblings, 0 replies; 41+ messages in thread
From: Patchwork @ 2019-11-19 19:12 UTC (permalink / raw)
  To: Vandita Kulkarni; +Cc: intel-gfx

== Series Details ==

Series: Add support for mipi dsi cmd mode (rev2)
URL   : https://patchwork.freedesktop.org/series/69290/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_7370_full -> Patchwork_15328_full
====================================================

Summary
-------

  **FAILURE**

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

  

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@kms_cursor_crc@pipe-c-cursor-dpms:
    - shard-tglb:         [PASS][1] -> [INCOMPLETE][2] +13 similar issues
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-tglb4/igt@kms_cursor_crc@pipe-c-cursor-dpms.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-tglb3/igt@kms_cursor_crc@pipe-c-cursor-dpms.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_ctx_exec@basic-invalid-context-vcs1:
    - shard-iclb:         [PASS][3] -> [SKIP][4] ([fdo#112080])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-iclb1/igt@gem_ctx_exec@basic-invalid-context-vcs1.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-iclb6/igt@gem_ctx_exec@basic-invalid-context-vcs1.html

  * igt@gem_ctx_isolation@vcs0-s3:
    - shard-tglb:         [PASS][5] -> [INCOMPLETE][6] ([fdo#111832])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-tglb9/igt@gem_ctx_isolation@vcs0-s3.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-tglb2/igt@gem_ctx_isolation@vcs0-s3.html

  * igt@gem_exec_schedule@out-order-bsd2:
    - shard-iclb:         [PASS][7] -> [SKIP][8] ([fdo#109276]) +1 similar issue
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-iclb1/igt@gem_exec_schedule@out-order-bsd2.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-iclb7/igt@gem_exec_schedule@out-order-bsd2.html

  * igt@gem_persistent_relocs@forked-faulting-reloc-thrash-inactive:
    - shard-apl:          [PASS][9] -> [DMESG-FAIL][10] ([fdo#112309]) +1 similar issue
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-apl3/igt@gem_persistent_relocs@forked-faulting-reloc-thrash-inactive.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-apl8/igt@gem_persistent_relocs@forked-faulting-reloc-thrash-inactive.html

  * igt@gem_persistent_relocs@forked-thrash-inactive:
    - shard-kbl:          [PASS][11] -> [TIMEOUT][12] ([fdo#112068 ])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-kbl1/igt@gem_persistent_relocs@forked-thrash-inactive.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-kbl6/igt@gem_persistent_relocs@forked-thrash-inactive.html

  * igt@gem_userptr_blits@map-fixed-invalidate-busy:
    - shard-hsw:          [PASS][13] -> [DMESG-WARN][14] ([fdo#111870]) +1 similar issue
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-hsw8/igt@gem_userptr_blits@map-fixed-invalidate-busy.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-hsw8/igt@gem_userptr_blits@map-fixed-invalidate-busy.html

  * igt@gem_userptr_blits@sync-unmap-cycles:
    - shard-snb:          [PASS][15] -> [DMESG-WARN][16] ([fdo#111870]) +2 similar issues
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-snb1/igt@gem_userptr_blits@sync-unmap-cycles.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-snb5/igt@gem_userptr_blits@sync-unmap-cycles.html

  * igt@i915_selftest@mock_requests:
    - shard-glk:          [PASS][17] -> [DMESG-WARN][18] ([fdo#112158])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-glk5/igt@i915_selftest@mock_requests.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-glk7/igt@i915_selftest@mock_requests.html

  * igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy:
    - shard-hsw:          [PASS][19] -> [FAIL][20] ([fdo#105767])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-hsw5/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-hsw8/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html

  * igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size:
    - shard-tglb:         [PASS][21] -> [INCOMPLETE][22] ([fdo#112035 ])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-tglb6/igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-tglb6/igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size.html

  * igt@kms_cursor_legacy@cursorb-vs-flipb-varying-size:
    - shard-hsw:          [PASS][23] -> [SKIP][24] ([fdo#109271])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-hsw5/igt@kms_cursor_legacy@cursorb-vs-flipb-varying-size.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-hsw1/igt@kms_cursor_legacy@cursorb-vs-flipb-varying-size.html

  * igt@kms_cursor_legacy@flip-vs-cursor-toggle:
    - shard-skl:          [PASS][25] -> [FAIL][26] ([fdo#102670] / [fdo#106081])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-skl10/igt@kms_cursor_legacy@flip-vs-cursor-toggle.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-skl7/igt@kms_cursor_legacy@flip-vs-cursor-toggle.html

  * igt@kms_flip@bo-too-big-interruptible:
    - shard-iclb:         [PASS][27] -> [INCOMPLETE][28] ([fdo#107713] / [fdo#110384])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-iclb3/igt@kms_flip@bo-too-big-interruptible.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-iclb6/igt@kms_flip@bo-too-big-interruptible.html

  * igt@kms_flip@busy-flip:
    - shard-tglb:         [PASS][29] -> [INCOMPLETE][30] ([fdo#112031]) +2 similar issues
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-tglb9/igt@kms_flip@busy-flip.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-tglb1/igt@kms_flip@busy-flip.html

  * igt@kms_flip@dpms-off-confusion:
    - shard-iclb:         [PASS][31] -> [INCOMPLETE][32] ([fdo#107713]) +25 similar issues
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-iclb7/igt@kms_flip@dpms-off-confusion.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-iclb8/igt@kms_flip@dpms-off-confusion.html

  * igt@kms_flip_tiling@flip-y-tiled:
    - shard-tglb:         [PASS][33] -> [INCOMPLETE][34] ([fdo#111747] / [fdo#112031]) +1 similar issue
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-tglb8/igt@kms_flip_tiling@flip-y-tiled.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-tglb1/igt@kms_flip_tiling@flip-y-tiled.html

  * igt@kms_frontbuffer_tracking@fbc-suspend:
    - shard-kbl:          [PASS][35] -> [DMESG-WARN][36] ([fdo#108566]) +3 similar issues
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-kbl6/igt@kms_frontbuffer_tracking@fbc-suspend.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-kbl1/igt@kms_frontbuffer_tracking@fbc-suspend.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-render:
    - shard-iclb:         [PASS][37] -> [INCOMPLETE][38] ([fdo#106978] / [fdo#107713]) +2 similar issues
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-iclb6/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-render.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-iclb4/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-mmap-gtt:
    - shard-tglb:         [PASS][39] -> [INCOMPLETE][40] ([fdo#111884]) +2 similar issues
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-tglb2/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-mmap-gtt.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-tglb9/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-mmap-gtt.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes:
    - shard-iclb:         [PASS][41] -> [INCOMPLETE][42] ([fdo#107713] / [fdo#110042])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-iclb5/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-iclb2/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html

  * igt@kms_plane@plane-panning-top-left-pipe-d-planes:
    - shard-tglb:         [PASS][43] -> [INCOMPLETE][44] ([fdo#111747]) +6 similar issues
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-tglb5/igt@kms_plane@plane-panning-top-left-pipe-d-planes.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-tglb2/igt@kms_plane@plane-panning-top-left-pipe-d-planes.html

  * igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
    - shard-skl:          [PASS][45] -> [FAIL][46] ([fdo#108145] / [fdo#110403])
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-skl5/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-skl2/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html

  * igt@kms_rotation_crc@primary-x-tiled-reflect-x-0:
    - shard-iclb:         [PASS][47] -> [INCOMPLETE][48] ([fdo#107713] / [fdo#110026])
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-iclb3/igt@kms_rotation_crc@primary-x-tiled-reflect-x-0.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-iclb6/igt@kms_rotation_crc@primary-x-tiled-reflect-x-0.html

  * igt@kms_vblank@pipe-b-ts-continuation-suspend:
    - shard-apl:          [PASS][49] -> [DMESG-WARN][50] ([fdo#108566]) +1 similar issue
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-apl1/igt@kms_vblank@pipe-b-ts-continuation-suspend.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-apl6/igt@kms_vblank@pipe-b-ts-continuation-suspend.html

  
#### Possible fixes ####

  * igt@gem_ctx_isolation@rcs0-s3:
    - shard-kbl:          [DMESG-WARN][51] ([fdo#108566]) -> [PASS][52] +1 similar issue
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-kbl1/igt@gem_ctx_isolation@rcs0-s3.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-kbl2/igt@gem_ctx_isolation@rcs0-s3.html

  * igt@gem_ctx_persistence@vcs1-mixed:
    - shard-iclb:         [SKIP][53] ([fdo#109276] / [fdo#112080]) -> [PASS][54]
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-iclb3/igt@gem_ctx_persistence@vcs1-mixed.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-iclb1/igt@gem_ctx_persistence@vcs1-mixed.html

  * igt@gem_exec_schedule@preempt-contexts-bsd1:
    - shard-iclb:         [SKIP][55] ([fdo#109276]) -> [PASS][56]
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-iclb3/igt@gem_exec_schedule@preempt-contexts-bsd1.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-iclb1/igt@gem_exec_schedule@preempt-contexts-bsd1.html

  * igt@gem_mmap_wc@set-cache-level:
    - shard-snb:          [SKIP][57] ([fdo#109271]) -> [PASS][58] +6 similar issues
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-snb5/igt@gem_mmap_wc@set-cache-level.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-snb4/igt@gem_mmap_wc@set-cache-level.html

  * igt@gem_userptr_blits@dmabuf-sync:
    - shard-snb:          [DMESG-WARN][59] ([fdo#111870]) -> [PASS][60] +1 similar issue
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-snb2/igt@gem_userptr_blits@dmabuf-sync.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-snb6/igt@gem_userptr_blits@dmabuf-sync.html

  * igt@gem_userptr_blits@sync-unmap:
    - shard-hsw:          [DMESG-WARN][61] ([fdo#111870]) -> [PASS][62] +1 similar issue
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-hsw5/igt@gem_userptr_blits@sync-unmap.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-hsw8/igt@gem_userptr_blits@sync-unmap.html

  * igt@kms_cursor_crc@pipe-b-cursor-128x128-offscreen:
    - shard-skl:          [FAIL][63] ([fdo#103232]) -> [PASS][64]
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-skl10/igt@kms_cursor_crc@pipe-b-cursor-128x128-offscreen.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-skl9/igt@kms_cursor_crc@pipe-b-cursor-128x128-offscreen.html

  * igt@kms_cursor_crc@pipe-c-cursor-suspend:
    - shard-apl:          [DMESG-WARN][65] ([fdo#108566]) -> [PASS][66] +1 similar issue
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-apl6/igt@kms_cursor_crc@pipe-c-cursor-suspend.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-apl8/igt@kms_cursor_crc@pipe-c-cursor-suspend.html

  * igt@kms_fbcon_fbt@psr-suspend:
    - shard-skl:          [INCOMPLETE][67] ([fdo#104108] / [fdo#107773]) -> [PASS][68]
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-skl4/igt@kms_fbcon_fbt@psr-suspend.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-skl7/igt@kms_fbcon_fbt@psr-suspend.html

  * igt@kms_flip@2x-flip-vs-suspend:
    - shard-hsw:          [INCOMPLETE][69] ([fdo#103540]) -> [PASS][70]
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-hsw5/igt@kms_flip@2x-flip-vs-suspend.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-hsw1/igt@kms_flip@2x-flip-vs-suspend.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-skl:          [INCOMPLETE][71] ([fdo#109507]) -> [PASS][72]
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-skl6/igt@kms_flip@flip-vs-suspend-interruptible.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-skl10/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min:
    - shard-skl:          [FAIL][73] ([fdo#108145]) -> [PASS][74]
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-skl2/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min.html
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-skl4/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min.html

  * igt@kms_setmode@basic:
    - shard-hsw:          [FAIL][75] ([fdo#99912]) -> [PASS][76]
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-hsw6/igt@kms_setmode@basic.html
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-hsw1/igt@kms_setmode@basic.html

  
#### Warnings ####

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw:
    - shard-tglb:         [FAIL][77] ([fdo#103167]) -> [INCOMPLETE][78] ([fdo#111884]) +1 similar issue
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-tglb8/igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw.html
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-tglb9/igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw.html
    - shard-iclb:         [FAIL][79] ([fdo#103167]) -> [INCOMPLETE][80] ([fdo#106978] / [fdo#107713]) +1 similar issue
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-iclb5/igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw.html
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-iclb3/igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes:
    - shard-tglb:         [INCOMPLETE][81] ([fdo#111832] / [fdo#111850]) -> [INCOMPLETE][82] ([fdo#111850])
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-tglb1/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-tglb8/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html

  
  [fdo#102670]: https://bugs.freedesktop.org/show_bug.cgi?id=102670
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#103540]: https://bugs.freedesktop.org/show_bug.cgi?id=103540
  [fdo#104108]: https://bugs.freedesktop.org/show_bug.cgi?id=104108
  [fdo#105767]: https://bugs.freedesktop.org/show_bug.cgi?id=105767
  [fdo#106081]: https://bugs.freedesktop.org/show_bug.cgi?id=106081
  [fdo#106978]: https://bugs.freedesktop.org/show_bug.cgi?id=106978
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#107773]: https://bugs.freedesktop.org/show_bug.cgi?id=107773
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
  [fdo#109507]: https://bugs.freedesktop.org/show_bug.cgi?id=109507
  [fdo#110026]: https://bugs.freedesktop.org/show_bug.cgi?id=110026
  [fdo#110042]: https://bugs.freedesktop.org/show_bug.cgi?id=110042
  [fdo#110384]: https://bugs.freedesktop.org/show_bug.cgi?id=110384
  [fdo#110403]: https://bugs.freedesktop.org/show_bug.cgi?id=110403
  [fdo#111747]: https://bugs.freedesktop.org/show_bug.cgi?id=111747
  [fdo#111832]: https://bugs.freedesktop.org/show_bug.cgi?id=111832
  [fdo#111850]: https://bugs.freedesktop.org/show_bug.cgi?id=111850
  [fdo#111870]: https://bugs.freedesktop.org/show_bug.cgi?id=111870
  [fdo#111884]: https://bugs.freedesktop.org/show_bug.cgi?id=111884
  [fdo#112031]: https://bugs.freedesktop.org/show_bug.cgi?id=112031
  [fdo#112035 ]: https://bugs.freedesktop.org/show_bug.cgi?id=112035 
  [fdo#112068 ]: https://bugs.freedesktop.org/show_bug.cgi?id=112068 
  [fdo#112080]: https://bugs.freedesktop.org/show_bug.cgi?id=112080
  [fdo#112158]: https://bugs.freedesktop.org/show_bug.cgi?id=112158
  [fdo#112309]: https://bugs.freedesktop.org/show_bug.cgi?id=112309
  [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912


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

  No changes in participating hosts


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

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_7370 -> Patchwork_15328

  CI-20190529: 20190529
  CI_DRM_7370: d2db945edccfe34bc3cc1d0accafac2036ad4e66 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5293: 4bb46f08f7cb6485642c4351cecdad93072d27a0 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_15328: 8d1db9bddfa74fd98434fde513734ccd952a6b22 @ 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_15328/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [Intel-gfx] ✗ Fi.CI.IGT: failure for Add support for mipi dsi cmd mode (rev2)
@ 2019-11-19 19:12   ` Patchwork
  0 siblings, 0 replies; 41+ messages in thread
From: Patchwork @ 2019-11-19 19:12 UTC (permalink / raw)
  To: Vandita Kulkarni; +Cc: intel-gfx

== Series Details ==

Series: Add support for mipi dsi cmd mode (rev2)
URL   : https://patchwork.freedesktop.org/series/69290/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_7370_full -> Patchwork_15328_full
====================================================

Summary
-------

  **FAILURE**

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

  

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@kms_cursor_crc@pipe-c-cursor-dpms:
    - shard-tglb:         [PASS][1] -> [INCOMPLETE][2] +13 similar issues
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-tglb4/igt@kms_cursor_crc@pipe-c-cursor-dpms.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-tglb3/igt@kms_cursor_crc@pipe-c-cursor-dpms.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_ctx_exec@basic-invalid-context-vcs1:
    - shard-iclb:         [PASS][3] -> [SKIP][4] ([fdo#112080])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-iclb1/igt@gem_ctx_exec@basic-invalid-context-vcs1.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-iclb6/igt@gem_ctx_exec@basic-invalid-context-vcs1.html

  * igt@gem_ctx_isolation@vcs0-s3:
    - shard-tglb:         [PASS][5] -> [INCOMPLETE][6] ([fdo#111832])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-tglb9/igt@gem_ctx_isolation@vcs0-s3.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-tglb2/igt@gem_ctx_isolation@vcs0-s3.html

  * igt@gem_exec_schedule@out-order-bsd2:
    - shard-iclb:         [PASS][7] -> [SKIP][8] ([fdo#109276]) +1 similar issue
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-iclb1/igt@gem_exec_schedule@out-order-bsd2.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-iclb7/igt@gem_exec_schedule@out-order-bsd2.html

  * igt@gem_persistent_relocs@forked-faulting-reloc-thrash-inactive:
    - shard-apl:          [PASS][9] -> [DMESG-FAIL][10] ([fdo#112309]) +1 similar issue
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-apl3/igt@gem_persistent_relocs@forked-faulting-reloc-thrash-inactive.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-apl8/igt@gem_persistent_relocs@forked-faulting-reloc-thrash-inactive.html

  * igt@gem_persistent_relocs@forked-thrash-inactive:
    - shard-kbl:          [PASS][11] -> [TIMEOUT][12] ([fdo#112068 ])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-kbl1/igt@gem_persistent_relocs@forked-thrash-inactive.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-kbl6/igt@gem_persistent_relocs@forked-thrash-inactive.html

  * igt@gem_userptr_blits@map-fixed-invalidate-busy:
    - shard-hsw:          [PASS][13] -> [DMESG-WARN][14] ([fdo#111870]) +1 similar issue
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-hsw8/igt@gem_userptr_blits@map-fixed-invalidate-busy.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-hsw8/igt@gem_userptr_blits@map-fixed-invalidate-busy.html

  * igt@gem_userptr_blits@sync-unmap-cycles:
    - shard-snb:          [PASS][15] -> [DMESG-WARN][16] ([fdo#111870]) +2 similar issues
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-snb1/igt@gem_userptr_blits@sync-unmap-cycles.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-snb5/igt@gem_userptr_blits@sync-unmap-cycles.html

  * igt@i915_selftest@mock_requests:
    - shard-glk:          [PASS][17] -> [DMESG-WARN][18] ([fdo#112158])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-glk5/igt@i915_selftest@mock_requests.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-glk7/igt@i915_selftest@mock_requests.html

  * igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy:
    - shard-hsw:          [PASS][19] -> [FAIL][20] ([fdo#105767])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-hsw5/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-hsw8/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html

  * igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size:
    - shard-tglb:         [PASS][21] -> [INCOMPLETE][22] ([fdo#112035 ])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-tglb6/igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-tglb6/igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size.html

  * igt@kms_cursor_legacy@cursorb-vs-flipb-varying-size:
    - shard-hsw:          [PASS][23] -> [SKIP][24] ([fdo#109271])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-hsw5/igt@kms_cursor_legacy@cursorb-vs-flipb-varying-size.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-hsw1/igt@kms_cursor_legacy@cursorb-vs-flipb-varying-size.html

  * igt@kms_cursor_legacy@flip-vs-cursor-toggle:
    - shard-skl:          [PASS][25] -> [FAIL][26] ([fdo#102670] / [fdo#106081])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-skl10/igt@kms_cursor_legacy@flip-vs-cursor-toggle.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-skl7/igt@kms_cursor_legacy@flip-vs-cursor-toggle.html

  * igt@kms_flip@bo-too-big-interruptible:
    - shard-iclb:         [PASS][27] -> [INCOMPLETE][28] ([fdo#107713] / [fdo#110384])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-iclb3/igt@kms_flip@bo-too-big-interruptible.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-iclb6/igt@kms_flip@bo-too-big-interruptible.html

  * igt@kms_flip@busy-flip:
    - shard-tglb:         [PASS][29] -> [INCOMPLETE][30] ([fdo#112031]) +2 similar issues
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-tglb9/igt@kms_flip@busy-flip.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-tglb1/igt@kms_flip@busy-flip.html

  * igt@kms_flip@dpms-off-confusion:
    - shard-iclb:         [PASS][31] -> [INCOMPLETE][32] ([fdo#107713]) +25 similar issues
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-iclb7/igt@kms_flip@dpms-off-confusion.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-iclb8/igt@kms_flip@dpms-off-confusion.html

  * igt@kms_flip_tiling@flip-y-tiled:
    - shard-tglb:         [PASS][33] -> [INCOMPLETE][34] ([fdo#111747] / [fdo#112031]) +1 similar issue
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-tglb8/igt@kms_flip_tiling@flip-y-tiled.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-tglb1/igt@kms_flip_tiling@flip-y-tiled.html

  * igt@kms_frontbuffer_tracking@fbc-suspend:
    - shard-kbl:          [PASS][35] -> [DMESG-WARN][36] ([fdo#108566]) +3 similar issues
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-kbl6/igt@kms_frontbuffer_tracking@fbc-suspend.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-kbl1/igt@kms_frontbuffer_tracking@fbc-suspend.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-render:
    - shard-iclb:         [PASS][37] -> [INCOMPLETE][38] ([fdo#106978] / [fdo#107713]) +2 similar issues
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-iclb6/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-render.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-iclb4/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-mmap-gtt:
    - shard-tglb:         [PASS][39] -> [INCOMPLETE][40] ([fdo#111884]) +2 similar issues
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-tglb2/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-mmap-gtt.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-tglb9/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-mmap-gtt.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes:
    - shard-iclb:         [PASS][41] -> [INCOMPLETE][42] ([fdo#107713] / [fdo#110042])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-iclb5/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-iclb2/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html

  * igt@kms_plane@plane-panning-top-left-pipe-d-planes:
    - shard-tglb:         [PASS][43] -> [INCOMPLETE][44] ([fdo#111747]) +6 similar issues
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-tglb5/igt@kms_plane@plane-panning-top-left-pipe-d-planes.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-tglb2/igt@kms_plane@plane-panning-top-left-pipe-d-planes.html

  * igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
    - shard-skl:          [PASS][45] -> [FAIL][46] ([fdo#108145] / [fdo#110403])
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-skl5/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-skl2/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html

  * igt@kms_rotation_crc@primary-x-tiled-reflect-x-0:
    - shard-iclb:         [PASS][47] -> [INCOMPLETE][48] ([fdo#107713] / [fdo#110026])
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-iclb3/igt@kms_rotation_crc@primary-x-tiled-reflect-x-0.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-iclb6/igt@kms_rotation_crc@primary-x-tiled-reflect-x-0.html

  * igt@kms_vblank@pipe-b-ts-continuation-suspend:
    - shard-apl:          [PASS][49] -> [DMESG-WARN][50] ([fdo#108566]) +1 similar issue
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-apl1/igt@kms_vblank@pipe-b-ts-continuation-suspend.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-apl6/igt@kms_vblank@pipe-b-ts-continuation-suspend.html

  
#### Possible fixes ####

  * igt@gem_ctx_isolation@rcs0-s3:
    - shard-kbl:          [DMESG-WARN][51] ([fdo#108566]) -> [PASS][52] +1 similar issue
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-kbl1/igt@gem_ctx_isolation@rcs0-s3.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-kbl2/igt@gem_ctx_isolation@rcs0-s3.html

  * igt@gem_ctx_persistence@vcs1-mixed:
    - shard-iclb:         [SKIP][53] ([fdo#109276] / [fdo#112080]) -> [PASS][54]
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-iclb3/igt@gem_ctx_persistence@vcs1-mixed.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-iclb1/igt@gem_ctx_persistence@vcs1-mixed.html

  * igt@gem_exec_schedule@preempt-contexts-bsd1:
    - shard-iclb:         [SKIP][55] ([fdo#109276]) -> [PASS][56]
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-iclb3/igt@gem_exec_schedule@preempt-contexts-bsd1.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-iclb1/igt@gem_exec_schedule@preempt-contexts-bsd1.html

  * igt@gem_mmap_wc@set-cache-level:
    - shard-snb:          [SKIP][57] ([fdo#109271]) -> [PASS][58] +6 similar issues
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-snb5/igt@gem_mmap_wc@set-cache-level.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-snb4/igt@gem_mmap_wc@set-cache-level.html

  * igt@gem_userptr_blits@dmabuf-sync:
    - shard-snb:          [DMESG-WARN][59] ([fdo#111870]) -> [PASS][60] +1 similar issue
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-snb2/igt@gem_userptr_blits@dmabuf-sync.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-snb6/igt@gem_userptr_blits@dmabuf-sync.html

  * igt@gem_userptr_blits@sync-unmap:
    - shard-hsw:          [DMESG-WARN][61] ([fdo#111870]) -> [PASS][62] +1 similar issue
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-hsw5/igt@gem_userptr_blits@sync-unmap.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-hsw8/igt@gem_userptr_blits@sync-unmap.html

  * igt@kms_cursor_crc@pipe-b-cursor-128x128-offscreen:
    - shard-skl:          [FAIL][63] ([fdo#103232]) -> [PASS][64]
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-skl10/igt@kms_cursor_crc@pipe-b-cursor-128x128-offscreen.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-skl9/igt@kms_cursor_crc@pipe-b-cursor-128x128-offscreen.html

  * igt@kms_cursor_crc@pipe-c-cursor-suspend:
    - shard-apl:          [DMESG-WARN][65] ([fdo#108566]) -> [PASS][66] +1 similar issue
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-apl6/igt@kms_cursor_crc@pipe-c-cursor-suspend.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-apl8/igt@kms_cursor_crc@pipe-c-cursor-suspend.html

  * igt@kms_fbcon_fbt@psr-suspend:
    - shard-skl:          [INCOMPLETE][67] ([fdo#104108] / [fdo#107773]) -> [PASS][68]
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-skl4/igt@kms_fbcon_fbt@psr-suspend.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-skl7/igt@kms_fbcon_fbt@psr-suspend.html

  * igt@kms_flip@2x-flip-vs-suspend:
    - shard-hsw:          [INCOMPLETE][69] ([fdo#103540]) -> [PASS][70]
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-hsw5/igt@kms_flip@2x-flip-vs-suspend.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-hsw1/igt@kms_flip@2x-flip-vs-suspend.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-skl:          [INCOMPLETE][71] ([fdo#109507]) -> [PASS][72]
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-skl6/igt@kms_flip@flip-vs-suspend-interruptible.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-skl10/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min:
    - shard-skl:          [FAIL][73] ([fdo#108145]) -> [PASS][74]
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-skl2/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min.html
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-skl4/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min.html

  * igt@kms_setmode@basic:
    - shard-hsw:          [FAIL][75] ([fdo#99912]) -> [PASS][76]
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-hsw6/igt@kms_setmode@basic.html
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-hsw1/igt@kms_setmode@basic.html

  
#### Warnings ####

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw:
    - shard-tglb:         [FAIL][77] ([fdo#103167]) -> [INCOMPLETE][78] ([fdo#111884]) +1 similar issue
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-tglb8/igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw.html
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-tglb9/igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw.html
    - shard-iclb:         [FAIL][79] ([fdo#103167]) -> [INCOMPLETE][80] ([fdo#106978] / [fdo#107713]) +1 similar issue
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-iclb5/igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw.html
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-iclb3/igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes:
    - shard-tglb:         [INCOMPLETE][81] ([fdo#111832] / [fdo#111850]) -> [INCOMPLETE][82] ([fdo#111850])
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7370/shard-tglb1/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15328/shard-tglb8/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html

  
  [fdo#102670]: https://bugs.freedesktop.org/show_bug.cgi?id=102670
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#103540]: https://bugs.freedesktop.org/show_bug.cgi?id=103540
  [fdo#104108]: https://bugs.freedesktop.org/show_bug.cgi?id=104108
  [fdo#105767]: https://bugs.freedesktop.org/show_bug.cgi?id=105767
  [fdo#106081]: https://bugs.freedesktop.org/show_bug.cgi?id=106081
  [fdo#106978]: https://bugs.freedesktop.org/show_bug.cgi?id=106978
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#107773]: https://bugs.freedesktop.org/show_bug.cgi?id=107773
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
  [fdo#109507]: https://bugs.freedesktop.org/show_bug.cgi?id=109507
  [fdo#110026]: https://bugs.freedesktop.org/show_bug.cgi?id=110026
  [fdo#110042]: https://bugs.freedesktop.org/show_bug.cgi?id=110042
  [fdo#110384]: https://bugs.freedesktop.org/show_bug.cgi?id=110384
  [fdo#110403]: https://bugs.freedesktop.org/show_bug.cgi?id=110403
  [fdo#111747]: https://bugs.freedesktop.org/show_bug.cgi?id=111747
  [fdo#111832]: https://bugs.freedesktop.org/show_bug.cgi?id=111832
  [fdo#111850]: https://bugs.freedesktop.org/show_bug.cgi?id=111850
  [fdo#111870]: https://bugs.freedesktop.org/show_bug.cgi?id=111870
  [fdo#111884]: https://bugs.freedesktop.org/show_bug.cgi?id=111884
  [fdo#112031]: https://bugs.freedesktop.org/show_bug.cgi?id=112031
  [fdo#112035 ]: https://bugs.freedesktop.org/show_bug.cgi?id=112035 
  [fdo#112068 ]: https://bugs.freedesktop.org/show_bug.cgi?id=112068 
  [fdo#112080]: https://bugs.freedesktop.org/show_bug.cgi?id=112080
  [fdo#112158]: https://bugs.freedesktop.org/show_bug.cgi?id=112158
  [fdo#112309]: https://bugs.freedesktop.org/show_bug.cgi?id=112309
  [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912


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

  No changes in participating hosts


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

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_7370 -> Patchwork_15328

  CI-20190529: 20190529
  CI_DRM_7370: d2db945edccfe34bc3cc1d0accafac2036ad4e66 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5293: 4bb46f08f7cb6485642c4351cecdad93072d27a0 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_15328: 8d1db9bddfa74fd98434fde513734ccd952a6b22 @ 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_15328/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [V3 1/8] drm/i915/dsi: Configure transcoder operation for command mode.
@ 2019-11-19 19:40     ` kbuild test robot
  0 siblings, 0 replies; 41+ messages in thread
From: kbuild test robot @ 2019-11-19 19:40 UTC (permalink / raw)
  To: Vandita Kulkarni; +Cc: jani.nikula, intel-gfx, kbuild-all

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

Hi Vandita,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm-intel/for-linux-next]
[cannot apply to v5.4-rc8 next-20191118]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Vandita-Kulkarni/Add-support-for-mipi-dsi-cmd-mode/20191120-015713
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: i386-defconfig (attached as .config)
compiler: gcc-7 (Debian 7.4.0-14) 7.4.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All error/warnings (new ones prefixed by >>):

   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_configure_transcoder':
>> drivers/gpu/drm/i915/display/icl_dsi.c:718:11: error: 'TE_SOURCE_GPIO' undeclared (first use in this function); did you mean 'DP_SOURCE_OUI'?
       tmp |= TE_SOURCE_GPIO;
              ^~~~~~~~~~~~~~
              DP_SOURCE_OUI
   drivers/gpu/drm/i915/display/icl_dsi.c:718:11: note: each undeclared identifier is reported only once for each function it appears in
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_config_util_pin':
>> drivers/gpu/drm/i915/display/icl_dsi.c:986:10: error: 'UTIL_PIN_DIRECTION_INPUT' undeclared (first use in this function); did you mean 'UTIL_PIN_PIPE_MASK'?
      tmp |= UTIL_PIN_DIRECTION_INPUT;
             ^~~~~~~~~~~~~~~~~~~~~~~~
             UTIL_PIN_PIPE_MASK
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_deconfigure_trancoder':
>> drivers/gpu/drm/i915/display/icl_dsi.c:1151:20: error: implicit declaration of function 'DSI_CMD_FRMCTL'; did you mean 'DSI_CMD_RXCTL'? [-Werror=implicit-function-declaration]
       tmp = I915_READ(DSI_CMD_FRMCTL(port));
                       ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
>> drivers/gpu/drm/i915/display/icl_dsi.c:1151:10: note: in expansion of macro 'I915_READ'
       tmp = I915_READ(DSI_CMD_FRMCTL(port));
             ^~~~~~~~~
>> drivers/gpu/drm/i915/i915_drv.h:1981:57: error: incompatible type for argument 2 of 'intel_uncore_read'
    #define I915_READ(reg__)  __I915_REG_OP(read, dev_priv, (reg__))
                                                            ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
>> drivers/gpu/drm/i915/display/icl_dsi.c:1151:10: note: in expansion of macro 'I915_READ'
       tmp = I915_READ(DSI_CMD_FRMCTL(port));
             ^~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/intel_uncore.h:287:22: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline u##x__ intel_uncore_##name__(struct intel_uncore *uncore, \
                         ^
>> drivers/gpu/drm/i915/intel_uncore.h:302:1: note: in expansion of macro '__uncore_read'
    __uncore_read(read, 32, l, true)
    ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/display/icl_dsi.c:1152:12: error: 'DSI_PERIODIC_FRAME_UPDATE_ENABLE' undeclared (first use in this function); did you mean 'GEN6_MBCTL_BME_UPDATE_ENABLE'?
       tmp &= ~DSI_PERIODIC_FRAME_UPDATE_ENABLE;
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               GEN6_MBCTL_BME_UPDATE_ENABLE
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
>> drivers/gpu/drm/i915/i915_drv.h:1982:65: error: incompatible type for argument 2 of 'intel_uncore_write'
    #define I915_WRITE(reg__, val__) __I915_REG_OP(write, dev_priv, (reg__), (val__))
                                                                    ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
>> drivers/gpu/drm/i915/display/icl_dsi.c:1153:4: note: in expansion of macro 'I915_WRITE'
       I915_WRITE(DSI_CMD_FRMCTL(port), tmp);
       ^~~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/intel_uncore.h:294:20: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline void intel_uncore_##name__(struct intel_uncore *uncore, \
                       ^
>> drivers/gpu/drm/i915/intel_uncore.h:308:1: note: in expansion of macro '__uncore_write'
    __uncore_write(write, 32, l, true)
    ^~~~~~~~~~~~~~
   cc1: some warnings being treated as errors

vim +718 drivers/gpu/drm/i915/display/icl_dsi.c

   621	
   622	static void
   623	gen11_dsi_configure_transcoder(struct intel_encoder *encoder,
   624				       const struct intel_crtc_state *pipe_config)
   625	{
   626		struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
   627		struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
   628		struct intel_crtc *intel_crtc = to_intel_crtc(pipe_config->base.crtc);
   629		enum pipe pipe = intel_crtc->pipe;
   630		u32 tmp;
   631		enum port port;
   632		enum transcoder dsi_trans;
   633	
   634		for_each_dsi_port(port, intel_dsi->ports) {
   635			dsi_trans = dsi_port_to_transcoder(port);
   636			tmp = I915_READ(DSI_TRANS_FUNC_CONF(dsi_trans));
   637	
   638			if (intel_dsi->eotp_pkt)
   639				tmp &= ~EOTP_DISABLED;
   640			else
   641				tmp |= EOTP_DISABLED;
   642	
   643			/* enable link calibration if freq > 1.5Gbps */
   644			if (intel_dsi_bitrate(intel_dsi) >= 1500 * 1000) {
   645				tmp &= ~LINK_CALIBRATION_MASK;
   646				tmp |= CALIBRATION_ENABLED_INITIAL_ONLY;
   647			}
   648	
   649			/* configure continuous clock */
   650			tmp &= ~CONTINUOUS_CLK_MASK;
   651			if (intel_dsi->clock_stop)
   652				tmp |= CLK_ENTER_LP_AFTER_DATA;
   653			else
   654				tmp |= CLK_HS_CONTINUOUS;
   655	
   656			/* configure buffer threshold limit to minimum */
   657			tmp &= ~PIX_BUF_THRESHOLD_MASK;
   658			tmp |= PIX_BUF_THRESHOLD_1_4;
   659	
   660			/* set virtual channel to '0' */
   661			tmp &= ~PIX_VIRT_CHAN_MASK;
   662			tmp |= PIX_VIRT_CHAN(0);
   663	
   664			/* program BGR transmission */
   665			if (intel_dsi->bgr_enabled)
   666				tmp |= BGR_TRANSMISSION;
   667	
   668			/* select pixel format */
   669			tmp &= ~PIX_FMT_MASK;
   670			switch (intel_dsi->pixel_format) {
   671			default:
   672				MISSING_CASE(intel_dsi->pixel_format);
   673				/* fallthrough */
   674			case MIPI_DSI_FMT_RGB565:
   675				tmp |= PIX_FMT_RGB565;
   676				break;
   677			case MIPI_DSI_FMT_RGB666_PACKED:
   678				tmp |= PIX_FMT_RGB666_PACKED;
   679				break;
   680			case MIPI_DSI_FMT_RGB666:
   681				tmp |= PIX_FMT_RGB666_LOOSE;
   682				break;
   683			case MIPI_DSI_FMT_RGB888:
   684				tmp |= PIX_FMT_RGB888;
   685				break;
   686			}
   687	
   688			if (INTEL_GEN(dev_priv) >= 12) {
   689				if (is_vid_mode(intel_dsi))
   690					tmp |= BLANKING_PACKET_ENABLE;
   691			}
   692	
   693			/* program DSI operation mode */
   694			if (is_vid_mode(intel_dsi)) {
   695				tmp &= ~OP_MODE_MASK;
   696				switch (intel_dsi->video_mode_format) {
   697				default:
   698					MISSING_CASE(intel_dsi->video_mode_format);
   699					/* fallthrough */
   700				case VIDEO_MODE_NON_BURST_WITH_SYNC_EVENTS:
   701					tmp |= VIDEO_MODE_SYNC_EVENT;
   702					break;
   703				case VIDEO_MODE_NON_BURST_WITH_SYNC_PULSE:
   704					tmp |= VIDEO_MODE_SYNC_PULSE;
   705					break;
   706				}
   707			} else {
   708				/*
   709				 * FIXME: Retrieve this info from VBT.
   710				 * As per the spec when dsi transcoder is operating
   711				 * in TE GATE mode, TE comes from GPIO
   712				 * which is UTIL PIN for DSI 0.
   713				 * Also this GPIO would not be used for other
   714				 * purposes is an assumption.
   715				 */
   716				tmp &= ~OP_MODE_MASK;
   717				tmp |= CMD_MODE_TE_GATE;
 > 718				tmp |= TE_SOURCE_GPIO;
   719			}
   720	
   721			I915_WRITE(DSI_TRANS_FUNC_CONF(dsi_trans), tmp);
   722		}
   723	
   724		/* enable port sync mode if dual link */
   725		if (intel_dsi->dual_link) {
   726			for_each_dsi_port(port, intel_dsi->ports) {
   727				dsi_trans = dsi_port_to_transcoder(port);
   728				tmp = I915_READ(TRANS_DDI_FUNC_CTL2(dsi_trans));
   729				tmp |= PORT_SYNC_MODE_ENABLE;
   730				I915_WRITE(TRANS_DDI_FUNC_CTL2(dsi_trans), tmp);
   731			}
   732	
   733			/* configure stream splitting */
   734			configure_dual_link_mode(encoder, pipe_config);
   735		}
   736	
   737		for_each_dsi_port(port, intel_dsi->ports) {
   738			dsi_trans = dsi_port_to_transcoder(port);
   739	
   740			/* select data lane width */
   741			tmp = I915_READ(TRANS_DDI_FUNC_CTL(dsi_trans));
   742			tmp &= ~DDI_PORT_WIDTH_MASK;
   743			tmp |= DDI_PORT_WIDTH(intel_dsi->lane_count);
   744	
   745			/* select input pipe */
   746			tmp &= ~TRANS_DDI_EDP_INPUT_MASK;
   747			switch (pipe) {
   748			default:
   749				MISSING_CASE(pipe);
   750				/* fallthrough */
   751			case PIPE_A:
   752				tmp |= TRANS_DDI_EDP_INPUT_A_ON;
   753				break;
   754			case PIPE_B:
   755				tmp |= TRANS_DDI_EDP_INPUT_B_ONOFF;
   756				break;
   757			case PIPE_C:
   758				tmp |= TRANS_DDI_EDP_INPUT_C_ONOFF;
   759				break;
   760			}
   761	
   762			/* enable DDI buffer */
   763			tmp |= TRANS_DDI_FUNC_ENABLE;
   764			I915_WRITE(TRANS_DDI_FUNC_CTL(dsi_trans), tmp);
   765		}
   766	
   767		/* wait for link ready */
   768		for_each_dsi_port(port, intel_dsi->ports) {
   769			dsi_trans = dsi_port_to_transcoder(port);
   770			if (wait_for_us((I915_READ(DSI_TRANS_FUNC_CONF(dsi_trans)) &
   771					LINK_READY), 2500))
   772				DRM_ERROR("DSI link not ready\n");
   773		}
   774	}
   775	

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 28187 bytes --]

[-- Attachment #3: Type: text/plain, Size: 159 bytes --]

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [V3 1/8] drm/i915/dsi: Configure transcoder operation for command mode.
@ 2019-11-19 19:40     ` kbuild test robot
  0 siblings, 0 replies; 41+ messages in thread
From: kbuild test robot @ 2019-11-19 19:40 UTC (permalink / raw)
  To: Vandita Kulkarni; +Cc: jani.nikula, intel-gfx, kbuild-all

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

Hi Vandita,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm-intel/for-linux-next]
[cannot apply to v5.4-rc8 next-20191118]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Vandita-Kulkarni/Add-support-for-mipi-dsi-cmd-mode/20191120-015713
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: i386-defconfig (attached as .config)
compiler: gcc-7 (Debian 7.4.0-14) 7.4.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All error/warnings (new ones prefixed by >>):

   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_configure_transcoder':
>> drivers/gpu/drm/i915/display/icl_dsi.c:718:11: error: 'TE_SOURCE_GPIO' undeclared (first use in this function); did you mean 'DP_SOURCE_OUI'?
       tmp |= TE_SOURCE_GPIO;
              ^~~~~~~~~~~~~~
              DP_SOURCE_OUI
   drivers/gpu/drm/i915/display/icl_dsi.c:718:11: note: each undeclared identifier is reported only once for each function it appears in
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_config_util_pin':
>> drivers/gpu/drm/i915/display/icl_dsi.c:986:10: error: 'UTIL_PIN_DIRECTION_INPUT' undeclared (first use in this function); did you mean 'UTIL_PIN_PIPE_MASK'?
      tmp |= UTIL_PIN_DIRECTION_INPUT;
             ^~~~~~~~~~~~~~~~~~~~~~~~
             UTIL_PIN_PIPE_MASK
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_deconfigure_trancoder':
>> drivers/gpu/drm/i915/display/icl_dsi.c:1151:20: error: implicit declaration of function 'DSI_CMD_FRMCTL'; did you mean 'DSI_CMD_RXCTL'? [-Werror=implicit-function-declaration]
       tmp = I915_READ(DSI_CMD_FRMCTL(port));
                       ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
>> drivers/gpu/drm/i915/display/icl_dsi.c:1151:10: note: in expansion of macro 'I915_READ'
       tmp = I915_READ(DSI_CMD_FRMCTL(port));
             ^~~~~~~~~
>> drivers/gpu/drm/i915/i915_drv.h:1981:57: error: incompatible type for argument 2 of 'intel_uncore_read'
    #define I915_READ(reg__)  __I915_REG_OP(read, dev_priv, (reg__))
                                                            ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
>> drivers/gpu/drm/i915/display/icl_dsi.c:1151:10: note: in expansion of macro 'I915_READ'
       tmp = I915_READ(DSI_CMD_FRMCTL(port));
             ^~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/intel_uncore.h:287:22: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline u##x__ intel_uncore_##name__(struct intel_uncore *uncore, \
                         ^
>> drivers/gpu/drm/i915/intel_uncore.h:302:1: note: in expansion of macro '__uncore_read'
    __uncore_read(read, 32, l, true)
    ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/display/icl_dsi.c:1152:12: error: 'DSI_PERIODIC_FRAME_UPDATE_ENABLE' undeclared (first use in this function); did you mean 'GEN6_MBCTL_BME_UPDATE_ENABLE'?
       tmp &= ~DSI_PERIODIC_FRAME_UPDATE_ENABLE;
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               GEN6_MBCTL_BME_UPDATE_ENABLE
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
>> drivers/gpu/drm/i915/i915_drv.h:1982:65: error: incompatible type for argument 2 of 'intel_uncore_write'
    #define I915_WRITE(reg__, val__) __I915_REG_OP(write, dev_priv, (reg__), (val__))
                                                                    ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
>> drivers/gpu/drm/i915/display/icl_dsi.c:1153:4: note: in expansion of macro 'I915_WRITE'
       I915_WRITE(DSI_CMD_FRMCTL(port), tmp);
       ^~~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/intel_uncore.h:294:20: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline void intel_uncore_##name__(struct intel_uncore *uncore, \
                       ^
>> drivers/gpu/drm/i915/intel_uncore.h:308:1: note: in expansion of macro '__uncore_write'
    __uncore_write(write, 32, l, true)
    ^~~~~~~~~~~~~~
   cc1: some warnings being treated as errors

vim +718 drivers/gpu/drm/i915/display/icl_dsi.c

   621	
   622	static void
   623	gen11_dsi_configure_transcoder(struct intel_encoder *encoder,
   624				       const struct intel_crtc_state *pipe_config)
   625	{
   626		struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
   627		struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
   628		struct intel_crtc *intel_crtc = to_intel_crtc(pipe_config->base.crtc);
   629		enum pipe pipe = intel_crtc->pipe;
   630		u32 tmp;
   631		enum port port;
   632		enum transcoder dsi_trans;
   633	
   634		for_each_dsi_port(port, intel_dsi->ports) {
   635			dsi_trans = dsi_port_to_transcoder(port);
   636			tmp = I915_READ(DSI_TRANS_FUNC_CONF(dsi_trans));
   637	
   638			if (intel_dsi->eotp_pkt)
   639				tmp &= ~EOTP_DISABLED;
   640			else
   641				tmp |= EOTP_DISABLED;
   642	
   643			/* enable link calibration if freq > 1.5Gbps */
   644			if (intel_dsi_bitrate(intel_dsi) >= 1500 * 1000) {
   645				tmp &= ~LINK_CALIBRATION_MASK;
   646				tmp |= CALIBRATION_ENABLED_INITIAL_ONLY;
   647			}
   648	
   649			/* configure continuous clock */
   650			tmp &= ~CONTINUOUS_CLK_MASK;
   651			if (intel_dsi->clock_stop)
   652				tmp |= CLK_ENTER_LP_AFTER_DATA;
   653			else
   654				tmp |= CLK_HS_CONTINUOUS;
   655	
   656			/* configure buffer threshold limit to minimum */
   657			tmp &= ~PIX_BUF_THRESHOLD_MASK;
   658			tmp |= PIX_BUF_THRESHOLD_1_4;
   659	
   660			/* set virtual channel to '0' */
   661			tmp &= ~PIX_VIRT_CHAN_MASK;
   662			tmp |= PIX_VIRT_CHAN(0);
   663	
   664			/* program BGR transmission */
   665			if (intel_dsi->bgr_enabled)
   666				tmp |= BGR_TRANSMISSION;
   667	
   668			/* select pixel format */
   669			tmp &= ~PIX_FMT_MASK;
   670			switch (intel_dsi->pixel_format) {
   671			default:
   672				MISSING_CASE(intel_dsi->pixel_format);
   673				/* fallthrough */
   674			case MIPI_DSI_FMT_RGB565:
   675				tmp |= PIX_FMT_RGB565;
   676				break;
   677			case MIPI_DSI_FMT_RGB666_PACKED:
   678				tmp |= PIX_FMT_RGB666_PACKED;
   679				break;
   680			case MIPI_DSI_FMT_RGB666:
   681				tmp |= PIX_FMT_RGB666_LOOSE;
   682				break;
   683			case MIPI_DSI_FMT_RGB888:
   684				tmp |= PIX_FMT_RGB888;
   685				break;
   686			}
   687	
   688			if (INTEL_GEN(dev_priv) >= 12) {
   689				if (is_vid_mode(intel_dsi))
   690					tmp |= BLANKING_PACKET_ENABLE;
   691			}
   692	
   693			/* program DSI operation mode */
   694			if (is_vid_mode(intel_dsi)) {
   695				tmp &= ~OP_MODE_MASK;
   696				switch (intel_dsi->video_mode_format) {
   697				default:
   698					MISSING_CASE(intel_dsi->video_mode_format);
   699					/* fallthrough */
   700				case VIDEO_MODE_NON_BURST_WITH_SYNC_EVENTS:
   701					tmp |= VIDEO_MODE_SYNC_EVENT;
   702					break;
   703				case VIDEO_MODE_NON_BURST_WITH_SYNC_PULSE:
   704					tmp |= VIDEO_MODE_SYNC_PULSE;
   705					break;
   706				}
   707			} else {
   708				/*
   709				 * FIXME: Retrieve this info from VBT.
   710				 * As per the spec when dsi transcoder is operating
   711				 * in TE GATE mode, TE comes from GPIO
   712				 * which is UTIL PIN for DSI 0.
   713				 * Also this GPIO would not be used for other
   714				 * purposes is an assumption.
   715				 */
   716				tmp &= ~OP_MODE_MASK;
   717				tmp |= CMD_MODE_TE_GATE;
 > 718				tmp |= TE_SOURCE_GPIO;
   719			}
   720	
   721			I915_WRITE(DSI_TRANS_FUNC_CONF(dsi_trans), tmp);
   722		}
   723	
   724		/* enable port sync mode if dual link */
   725		if (intel_dsi->dual_link) {
   726			for_each_dsi_port(port, intel_dsi->ports) {
   727				dsi_trans = dsi_port_to_transcoder(port);
   728				tmp = I915_READ(TRANS_DDI_FUNC_CTL2(dsi_trans));
   729				tmp |= PORT_SYNC_MODE_ENABLE;
   730				I915_WRITE(TRANS_DDI_FUNC_CTL2(dsi_trans), tmp);
   731			}
   732	
   733			/* configure stream splitting */
   734			configure_dual_link_mode(encoder, pipe_config);
   735		}
   736	
   737		for_each_dsi_port(port, intel_dsi->ports) {
   738			dsi_trans = dsi_port_to_transcoder(port);
   739	
   740			/* select data lane width */
   741			tmp = I915_READ(TRANS_DDI_FUNC_CTL(dsi_trans));
   742			tmp &= ~DDI_PORT_WIDTH_MASK;
   743			tmp |= DDI_PORT_WIDTH(intel_dsi->lane_count);
   744	
   745			/* select input pipe */
   746			tmp &= ~TRANS_DDI_EDP_INPUT_MASK;
   747			switch (pipe) {
   748			default:
   749				MISSING_CASE(pipe);
   750				/* fallthrough */
   751			case PIPE_A:
   752				tmp |= TRANS_DDI_EDP_INPUT_A_ON;
   753				break;
   754			case PIPE_B:
   755				tmp |= TRANS_DDI_EDP_INPUT_B_ONOFF;
   756				break;
   757			case PIPE_C:
   758				tmp |= TRANS_DDI_EDP_INPUT_C_ONOFF;
   759				break;
   760			}
   761	
   762			/* enable DDI buffer */
   763			tmp |= TRANS_DDI_FUNC_ENABLE;
   764			I915_WRITE(TRANS_DDI_FUNC_CTL(dsi_trans), tmp);
   765		}
   766	
   767		/* wait for link ready */
   768		for_each_dsi_port(port, intel_dsi->ports) {
   769			dsi_trans = dsi_port_to_transcoder(port);
   770			if (wait_for_us((I915_READ(DSI_TRANS_FUNC_CONF(dsi_trans)) &
   771					LINK_READY), 2500))
   772				DRM_ERROR("DSI link not ready\n");
   773		}
   774	}
   775	

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 28187 bytes --]

[-- Attachment #3: Type: text/plain, Size: 159 bytes --]

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [V3 1/8] drm/i915/dsi: Configure transcoder operation for command mode.
@ 2019-11-19 19:40     ` kbuild test robot
  0 siblings, 0 replies; 41+ messages in thread
From: kbuild test robot @ 2019-11-19 19:40 UTC (permalink / raw)
  To: kbuild-all

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

Hi Vandita,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm-intel/for-linux-next]
[cannot apply to v5.4-rc8 next-20191118]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Vandita-Kulkarni/Add-support-for-mipi-dsi-cmd-mode/20191120-015713
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: i386-defconfig (attached as .config)
compiler: gcc-7 (Debian 7.4.0-14) 7.4.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All error/warnings (new ones prefixed by >>):

   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_configure_transcoder':
>> drivers/gpu/drm/i915/display/icl_dsi.c:718:11: error: 'TE_SOURCE_GPIO' undeclared (first use in this function); did you mean 'DP_SOURCE_OUI'?
       tmp |= TE_SOURCE_GPIO;
              ^~~~~~~~~~~~~~
              DP_SOURCE_OUI
   drivers/gpu/drm/i915/display/icl_dsi.c:718:11: note: each undeclared identifier is reported only once for each function it appears in
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_config_util_pin':
>> drivers/gpu/drm/i915/display/icl_dsi.c:986:10: error: 'UTIL_PIN_DIRECTION_INPUT' undeclared (first use in this function); did you mean 'UTIL_PIN_PIPE_MASK'?
      tmp |= UTIL_PIN_DIRECTION_INPUT;
             ^~~~~~~~~~~~~~~~~~~~~~~~
             UTIL_PIN_PIPE_MASK
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_deconfigure_trancoder':
>> drivers/gpu/drm/i915/display/icl_dsi.c:1151:20: error: implicit declaration of function 'DSI_CMD_FRMCTL'; did you mean 'DSI_CMD_RXCTL'? [-Werror=implicit-function-declaration]
       tmp = I915_READ(DSI_CMD_FRMCTL(port));
                       ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
>> drivers/gpu/drm/i915/display/icl_dsi.c:1151:10: note: in expansion of macro 'I915_READ'
       tmp = I915_READ(DSI_CMD_FRMCTL(port));
             ^~~~~~~~~
>> drivers/gpu/drm/i915/i915_drv.h:1981:57: error: incompatible type for argument 2 of 'intel_uncore_read'
    #define I915_READ(reg__)  __I915_REG_OP(read, dev_priv, (reg__))
                                                            ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
>> drivers/gpu/drm/i915/display/icl_dsi.c:1151:10: note: in expansion of macro 'I915_READ'
       tmp = I915_READ(DSI_CMD_FRMCTL(port));
             ^~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/intel_uncore.h:287:22: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline u##x__ intel_uncore_##name__(struct intel_uncore *uncore, \
                         ^
>> drivers/gpu/drm/i915/intel_uncore.h:302:1: note: in expansion of macro '__uncore_read'
    __uncore_read(read, 32, l, true)
    ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/display/icl_dsi.c:1152:12: error: 'DSI_PERIODIC_FRAME_UPDATE_ENABLE' undeclared (first use in this function); did you mean 'GEN6_MBCTL_BME_UPDATE_ENABLE'?
       tmp &= ~DSI_PERIODIC_FRAME_UPDATE_ENABLE;
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               GEN6_MBCTL_BME_UPDATE_ENABLE
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
>> drivers/gpu/drm/i915/i915_drv.h:1982:65: error: incompatible type for argument 2 of 'intel_uncore_write'
    #define I915_WRITE(reg__, val__) __I915_REG_OP(write, dev_priv, (reg__), (val__))
                                                                    ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
>> drivers/gpu/drm/i915/display/icl_dsi.c:1153:4: note: in expansion of macro 'I915_WRITE'
       I915_WRITE(DSI_CMD_FRMCTL(port), tmp);
       ^~~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/intel_uncore.h:294:20: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline void intel_uncore_##name__(struct intel_uncore *uncore, \
                       ^
>> drivers/gpu/drm/i915/intel_uncore.h:308:1: note: in expansion of macro '__uncore_write'
    __uncore_write(write, 32, l, true)
    ^~~~~~~~~~~~~~
   cc1: some warnings being treated as errors

vim +718 drivers/gpu/drm/i915/display/icl_dsi.c

   621	
   622	static void
   623	gen11_dsi_configure_transcoder(struct intel_encoder *encoder,
   624				       const struct intel_crtc_state *pipe_config)
   625	{
   626		struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
   627		struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
   628		struct intel_crtc *intel_crtc = to_intel_crtc(pipe_config->base.crtc);
   629		enum pipe pipe = intel_crtc->pipe;
   630		u32 tmp;
   631		enum port port;
   632		enum transcoder dsi_trans;
   633	
   634		for_each_dsi_port(port, intel_dsi->ports) {
   635			dsi_trans = dsi_port_to_transcoder(port);
   636			tmp = I915_READ(DSI_TRANS_FUNC_CONF(dsi_trans));
   637	
   638			if (intel_dsi->eotp_pkt)
   639				tmp &= ~EOTP_DISABLED;
   640			else
   641				tmp |= EOTP_DISABLED;
   642	
   643			/* enable link calibration if freq > 1.5Gbps */
   644			if (intel_dsi_bitrate(intel_dsi) >= 1500 * 1000) {
   645				tmp &= ~LINK_CALIBRATION_MASK;
   646				tmp |= CALIBRATION_ENABLED_INITIAL_ONLY;
   647			}
   648	
   649			/* configure continuous clock */
   650			tmp &= ~CONTINUOUS_CLK_MASK;
   651			if (intel_dsi->clock_stop)
   652				tmp |= CLK_ENTER_LP_AFTER_DATA;
   653			else
   654				tmp |= CLK_HS_CONTINUOUS;
   655	
   656			/* configure buffer threshold limit to minimum */
   657			tmp &= ~PIX_BUF_THRESHOLD_MASK;
   658			tmp |= PIX_BUF_THRESHOLD_1_4;
   659	
   660			/* set virtual channel to '0' */
   661			tmp &= ~PIX_VIRT_CHAN_MASK;
   662			tmp |= PIX_VIRT_CHAN(0);
   663	
   664			/* program BGR transmission */
   665			if (intel_dsi->bgr_enabled)
   666				tmp |= BGR_TRANSMISSION;
   667	
   668			/* select pixel format */
   669			tmp &= ~PIX_FMT_MASK;
   670			switch (intel_dsi->pixel_format) {
   671			default:
   672				MISSING_CASE(intel_dsi->pixel_format);
   673				/* fallthrough */
   674			case MIPI_DSI_FMT_RGB565:
   675				tmp |= PIX_FMT_RGB565;
   676				break;
   677			case MIPI_DSI_FMT_RGB666_PACKED:
   678				tmp |= PIX_FMT_RGB666_PACKED;
   679				break;
   680			case MIPI_DSI_FMT_RGB666:
   681				tmp |= PIX_FMT_RGB666_LOOSE;
   682				break;
   683			case MIPI_DSI_FMT_RGB888:
   684				tmp |= PIX_FMT_RGB888;
   685				break;
   686			}
   687	
   688			if (INTEL_GEN(dev_priv) >= 12) {
   689				if (is_vid_mode(intel_dsi))
   690					tmp |= BLANKING_PACKET_ENABLE;
   691			}
   692	
   693			/* program DSI operation mode */
   694			if (is_vid_mode(intel_dsi)) {
   695				tmp &= ~OP_MODE_MASK;
   696				switch (intel_dsi->video_mode_format) {
   697				default:
   698					MISSING_CASE(intel_dsi->video_mode_format);
   699					/* fallthrough */
   700				case VIDEO_MODE_NON_BURST_WITH_SYNC_EVENTS:
   701					tmp |= VIDEO_MODE_SYNC_EVENT;
   702					break;
   703				case VIDEO_MODE_NON_BURST_WITH_SYNC_PULSE:
   704					tmp |= VIDEO_MODE_SYNC_PULSE;
   705					break;
   706				}
   707			} else {
   708				/*
   709				 * FIXME: Retrieve this info from VBT.
   710				 * As per the spec when dsi transcoder is operating
   711				 * in TE GATE mode, TE comes from GPIO
   712				 * which is UTIL PIN for DSI 0.
   713				 * Also this GPIO would not be used for other
   714				 * purposes is an assumption.
   715				 */
   716				tmp &= ~OP_MODE_MASK;
   717				tmp |= CMD_MODE_TE_GATE;
 > 718				tmp |= TE_SOURCE_GPIO;
   719			}
   720	
   721			I915_WRITE(DSI_TRANS_FUNC_CONF(dsi_trans), tmp);
   722		}
   723	
   724		/* enable port sync mode if dual link */
   725		if (intel_dsi->dual_link) {
   726			for_each_dsi_port(port, intel_dsi->ports) {
   727				dsi_trans = dsi_port_to_transcoder(port);
   728				tmp = I915_READ(TRANS_DDI_FUNC_CTL2(dsi_trans));
   729				tmp |= PORT_SYNC_MODE_ENABLE;
   730				I915_WRITE(TRANS_DDI_FUNC_CTL2(dsi_trans), tmp);
   731			}
   732	
   733			/* configure stream splitting */
   734			configure_dual_link_mode(encoder, pipe_config);
   735		}
   736	
   737		for_each_dsi_port(port, intel_dsi->ports) {
   738			dsi_trans = dsi_port_to_transcoder(port);
   739	
   740			/* select data lane width */
   741			tmp = I915_READ(TRANS_DDI_FUNC_CTL(dsi_trans));
   742			tmp &= ~DDI_PORT_WIDTH_MASK;
   743			tmp |= DDI_PORT_WIDTH(intel_dsi->lane_count);
   744	
   745			/* select input pipe */
   746			tmp &= ~TRANS_DDI_EDP_INPUT_MASK;
   747			switch (pipe) {
   748			default:
   749				MISSING_CASE(pipe);
   750				/* fallthrough */
   751			case PIPE_A:
   752				tmp |= TRANS_DDI_EDP_INPUT_A_ON;
   753				break;
   754			case PIPE_B:
   755				tmp |= TRANS_DDI_EDP_INPUT_B_ONOFF;
   756				break;
   757			case PIPE_C:
   758				tmp |= TRANS_DDI_EDP_INPUT_C_ONOFF;
   759				break;
   760			}
   761	
   762			/* enable DDI buffer */
   763			tmp |= TRANS_DDI_FUNC_ENABLE;
   764			I915_WRITE(TRANS_DDI_FUNC_CTL(dsi_trans), tmp);
   765		}
   766	
   767		/* wait for link ready */
   768		for_each_dsi_port(port, intel_dsi->ports) {
   769			dsi_trans = dsi_port_to_transcoder(port);
   770			if (wait_for_us((I915_READ(DSI_TRANS_FUNC_CONF(dsi_trans)) &
   771					LINK_READY), 2500))
   772				DRM_ERROR("DSI link not ready\n");
   773		}
   774	}
   775	

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org Intel Corporation

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 28187 bytes --]

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

* Re: [V3 4/8] drm/i915/dsi: Add check for periodic command mode
@ 2019-11-19 20:05     ` kbuild test robot
  0 siblings, 0 replies; 41+ messages in thread
From: kbuild test robot @ 2019-11-19 20:05 UTC (permalink / raw)
  To: Vandita Kulkarni; +Cc: jani.nikula, intel-gfx, kbuild-all

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

Hi Vandita,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on drm-intel/for-linux-next]
[cannot apply to v5.4-rc8 next-20191118]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Vandita-Kulkarni/Add-support-for-mipi-dsi-cmd-mode/20191120-015713
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: i386-defconfig (attached as .config)
compiler: gcc-7 (Debian 7.4.0-14) 7.4.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_configure_transcoder':
   drivers/gpu/drm/i915/display/icl_dsi.c:718:11: error: 'TE_SOURCE_GPIO' undeclared (first use in this function); did you mean 'DP_SOURCE_OUI'?
       tmp |= TE_SOURCE_GPIO;
              ^~~~~~~~~~~~~~
              DP_SOURCE_OUI
   drivers/gpu/drm/i915/display/icl_dsi.c:718:11: note: each undeclared identifier is reported only once for each function it appears in
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_config_util_pin':
   drivers/gpu/drm/i915/display/icl_dsi.c:999:10: error: 'UTIL_PIN_DIRECTION_INPUT' undeclared (first use in this function); did you mean 'UTIL_PIN_PIPE_MASK'?
      tmp |= UTIL_PIN_DIRECTION_INPUT;
             ^~~~~~~~~~~~~~~~~~~~~~~~
             UTIL_PIN_PIPE_MASK
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_deconfigure_trancoder':
   drivers/gpu/drm/i915/display/icl_dsi.c:1164:20: error: implicit declaration of function 'DSI_CMD_FRMCTL'; did you mean 'DSI_CMD_RXCTL'? [-Werror=implicit-function-declaration]
       tmp = I915_READ(DSI_CMD_FRMCTL(port));
                       ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:1164:10: note: in expansion of macro 'I915_READ'
       tmp = I915_READ(DSI_CMD_FRMCTL(port));
             ^~~~~~~~~
   drivers/gpu/drm/i915/i915_drv.h:1981:57: error: incompatible type for argument 2 of 'intel_uncore_read'
    #define I915_READ(reg__)  __I915_REG_OP(read, dev_priv, (reg__))
                                                            ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:1164:10: note: in expansion of macro 'I915_READ'
       tmp = I915_READ(DSI_CMD_FRMCTL(port));
             ^~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/intel_uncore.h:287:22: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline u##x__ intel_uncore_##name__(struct intel_uncore *uncore, \
                         ^
   drivers/gpu/drm/i915/intel_uncore.h:302:1: note: in expansion of macro '__uncore_read'
    __uncore_read(read, 32, l, true)
    ^~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:1165:12: error: 'DSI_PERIODIC_FRAME_UPDATE_ENABLE' undeclared (first use in this function); did you mean 'GEN6_MBCTL_BME_UPDATE_ENABLE'?
       tmp &= ~DSI_PERIODIC_FRAME_UPDATE_ENABLE;
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               GEN6_MBCTL_BME_UPDATE_ENABLE
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/i915_drv.h:1982:65: error: incompatible type for argument 2 of 'intel_uncore_write'
    #define I915_WRITE(reg__, val__) __I915_REG_OP(write, dev_priv, (reg__), (val__))
                                                                    ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:1166:4: note: in expansion of macro 'I915_WRITE'
       I915_WRITE(DSI_CMD_FRMCTL(port), tmp);
       ^~~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/intel_uncore.h:294:20: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline void intel_uncore_##name__(struct intel_uncore *uncore, \
                       ^
   drivers/gpu/drm/i915/intel_uncore.h:308:1: note: in expansion of macro '__uncore_write'
    __uncore_write(write, 32, l, true)
    ^~~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_is_periodic_cmd_mode':
   drivers/gpu/drm/i915/display/icl_dsi.c:1318:16: error: 'DSI_PERIODIC_FRAME_UPDATE_ENABLE' undeclared (first use in this function); did you mean 'GEN6_MBCTL_BME_UPDATE_ENABLE'?
     return (val & DSI_PERIODIC_FRAME_UPDATE_ENABLE);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   GEN6_MBCTL_BME_UPDATE_ENABLE
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_get_config':
   drivers/gpu/drm/i915/display/icl_dsi.c:1341:14: error: 'struct intel_crtc_state' has no member named 'hw'
      pipe_config->hw.adjusted_mode.private_flags |=
                 ^~
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_compute_config':
   drivers/gpu/drm/i915/display/icl_dsi.c:1374:13: error: 'struct intel_crtc_state' has no member named 'hw'
     pipe_config->hw.adjusted_mode.private_flags &=
                ^~
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_is_periodic_cmd_mode':
>> drivers/gpu/drm/i915/display/icl_dsi.c:1319:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   cc1: some warnings being treated as errors

vim +1319 drivers/gpu/drm/i915/display/icl_dsi.c

  1305	
  1306	bool gen11_dsi_is_periodic_cmd_mode(struct drm_i915_private *dev_priv,
  1307					    struct intel_dsi *intel_dsi)
  1308	{
  1309		u32 val;
  1310		enum transcoder dsi_trans;
  1311	
  1312		if (intel_dsi->ports == BIT(PORT_B))
  1313			dsi_trans = TRANSCODER_DSI_1;
  1314		else
  1315			dsi_trans = TRANSCODER_DSI_0;
  1316	
  1317		val = I915_READ(DSI_TRANS_FUNC_CONF(dsi_trans));
  1318		return (val & DSI_PERIODIC_FRAME_UPDATE_ENABLE);
> 1319	}
  1320	
  1321	static void gen11_dsi_get_config(struct intel_encoder *encoder,
  1322					 struct intel_crtc_state *pipe_config)
  1323	{
  1324		struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
  1325		struct intel_crtc *crtc = to_intel_crtc(pipe_config->base.crtc);
  1326		struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
  1327	
  1328		/* FIXME: adapt icl_ddi_clock_get() for DSI and use that? */
  1329		pipe_config->port_clock =
  1330			cnl_calc_wrpll_link(dev_priv, &pipe_config->dpll_hw_state);
  1331	
  1332		pipe_config->base.adjusted_mode.crtc_clock = intel_dsi->pclk;
  1333		if (intel_dsi->dual_link)
  1334			pipe_config->base.adjusted_mode.crtc_clock *= 2;
  1335	
  1336		gen11_dsi_get_timings(encoder, pipe_config);
  1337		pipe_config->output_types |= BIT(INTEL_OUTPUT_DSI);
  1338		pipe_config->pipe_bpp = bdw_get_pipemisc_bpp(crtc);
  1339	
  1340		if (gen11_dsi_is_periodic_cmd_mode(dev_priv, intel_dsi))
> 1341			pipe_config->hw.adjusted_mode.private_flags |=
  1342						I915_MODE_FLAG_DSI_PERIODIC_CMD_MODE;
  1343	}
  1344	

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 28187 bytes --]

[-- Attachment #3: Type: text/plain, Size: 159 bytes --]

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [V3 4/8] drm/i915/dsi: Add check for periodic command mode
@ 2019-11-19 20:05     ` kbuild test robot
  0 siblings, 0 replies; 41+ messages in thread
From: kbuild test robot @ 2019-11-19 20:05 UTC (permalink / raw)
  To: Vandita Kulkarni; +Cc: jani.nikula, intel-gfx, kbuild-all

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

Hi Vandita,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on drm-intel/for-linux-next]
[cannot apply to v5.4-rc8 next-20191118]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Vandita-Kulkarni/Add-support-for-mipi-dsi-cmd-mode/20191120-015713
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: i386-defconfig (attached as .config)
compiler: gcc-7 (Debian 7.4.0-14) 7.4.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_configure_transcoder':
   drivers/gpu/drm/i915/display/icl_dsi.c:718:11: error: 'TE_SOURCE_GPIO' undeclared (first use in this function); did you mean 'DP_SOURCE_OUI'?
       tmp |= TE_SOURCE_GPIO;
              ^~~~~~~~~~~~~~
              DP_SOURCE_OUI
   drivers/gpu/drm/i915/display/icl_dsi.c:718:11: note: each undeclared identifier is reported only once for each function it appears in
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_config_util_pin':
   drivers/gpu/drm/i915/display/icl_dsi.c:999:10: error: 'UTIL_PIN_DIRECTION_INPUT' undeclared (first use in this function); did you mean 'UTIL_PIN_PIPE_MASK'?
      tmp |= UTIL_PIN_DIRECTION_INPUT;
             ^~~~~~~~~~~~~~~~~~~~~~~~
             UTIL_PIN_PIPE_MASK
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_deconfigure_trancoder':
   drivers/gpu/drm/i915/display/icl_dsi.c:1164:20: error: implicit declaration of function 'DSI_CMD_FRMCTL'; did you mean 'DSI_CMD_RXCTL'? [-Werror=implicit-function-declaration]
       tmp = I915_READ(DSI_CMD_FRMCTL(port));
                       ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:1164:10: note: in expansion of macro 'I915_READ'
       tmp = I915_READ(DSI_CMD_FRMCTL(port));
             ^~~~~~~~~
   drivers/gpu/drm/i915/i915_drv.h:1981:57: error: incompatible type for argument 2 of 'intel_uncore_read'
    #define I915_READ(reg__)  __I915_REG_OP(read, dev_priv, (reg__))
                                                            ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:1164:10: note: in expansion of macro 'I915_READ'
       tmp = I915_READ(DSI_CMD_FRMCTL(port));
             ^~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/intel_uncore.h:287:22: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline u##x__ intel_uncore_##name__(struct intel_uncore *uncore, \
                         ^
   drivers/gpu/drm/i915/intel_uncore.h:302:1: note: in expansion of macro '__uncore_read'
    __uncore_read(read, 32, l, true)
    ^~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:1165:12: error: 'DSI_PERIODIC_FRAME_UPDATE_ENABLE' undeclared (first use in this function); did you mean 'GEN6_MBCTL_BME_UPDATE_ENABLE'?
       tmp &= ~DSI_PERIODIC_FRAME_UPDATE_ENABLE;
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               GEN6_MBCTL_BME_UPDATE_ENABLE
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/i915_drv.h:1982:65: error: incompatible type for argument 2 of 'intel_uncore_write'
    #define I915_WRITE(reg__, val__) __I915_REG_OP(write, dev_priv, (reg__), (val__))
                                                                    ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:1166:4: note: in expansion of macro 'I915_WRITE'
       I915_WRITE(DSI_CMD_FRMCTL(port), tmp);
       ^~~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/intel_uncore.h:294:20: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline void intel_uncore_##name__(struct intel_uncore *uncore, \
                       ^
   drivers/gpu/drm/i915/intel_uncore.h:308:1: note: in expansion of macro '__uncore_write'
    __uncore_write(write, 32, l, true)
    ^~~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_is_periodic_cmd_mode':
   drivers/gpu/drm/i915/display/icl_dsi.c:1318:16: error: 'DSI_PERIODIC_FRAME_UPDATE_ENABLE' undeclared (first use in this function); did you mean 'GEN6_MBCTL_BME_UPDATE_ENABLE'?
     return (val & DSI_PERIODIC_FRAME_UPDATE_ENABLE);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   GEN6_MBCTL_BME_UPDATE_ENABLE
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_get_config':
   drivers/gpu/drm/i915/display/icl_dsi.c:1341:14: error: 'struct intel_crtc_state' has no member named 'hw'
      pipe_config->hw.adjusted_mode.private_flags |=
                 ^~
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_compute_config':
   drivers/gpu/drm/i915/display/icl_dsi.c:1374:13: error: 'struct intel_crtc_state' has no member named 'hw'
     pipe_config->hw.adjusted_mode.private_flags &=
                ^~
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_is_periodic_cmd_mode':
>> drivers/gpu/drm/i915/display/icl_dsi.c:1319:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   cc1: some warnings being treated as errors

vim +1319 drivers/gpu/drm/i915/display/icl_dsi.c

  1305	
  1306	bool gen11_dsi_is_periodic_cmd_mode(struct drm_i915_private *dev_priv,
  1307					    struct intel_dsi *intel_dsi)
  1308	{
  1309		u32 val;
  1310		enum transcoder dsi_trans;
  1311	
  1312		if (intel_dsi->ports == BIT(PORT_B))
  1313			dsi_trans = TRANSCODER_DSI_1;
  1314		else
  1315			dsi_trans = TRANSCODER_DSI_0;
  1316	
  1317		val = I915_READ(DSI_TRANS_FUNC_CONF(dsi_trans));
  1318		return (val & DSI_PERIODIC_FRAME_UPDATE_ENABLE);
> 1319	}
  1320	
  1321	static void gen11_dsi_get_config(struct intel_encoder *encoder,
  1322					 struct intel_crtc_state *pipe_config)
  1323	{
  1324		struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
  1325		struct intel_crtc *crtc = to_intel_crtc(pipe_config->base.crtc);
  1326		struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
  1327	
  1328		/* FIXME: adapt icl_ddi_clock_get() for DSI and use that? */
  1329		pipe_config->port_clock =
  1330			cnl_calc_wrpll_link(dev_priv, &pipe_config->dpll_hw_state);
  1331	
  1332		pipe_config->base.adjusted_mode.crtc_clock = intel_dsi->pclk;
  1333		if (intel_dsi->dual_link)
  1334			pipe_config->base.adjusted_mode.crtc_clock *= 2;
  1335	
  1336		gen11_dsi_get_timings(encoder, pipe_config);
  1337		pipe_config->output_types |= BIT(INTEL_OUTPUT_DSI);
  1338		pipe_config->pipe_bpp = bdw_get_pipemisc_bpp(crtc);
  1339	
  1340		if (gen11_dsi_is_periodic_cmd_mode(dev_priv, intel_dsi))
> 1341			pipe_config->hw.adjusted_mode.private_flags |=
  1342						I915_MODE_FLAG_DSI_PERIODIC_CMD_MODE;
  1343	}
  1344	

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 28187 bytes --]

[-- Attachment #3: Type: text/plain, Size: 159 bytes --]

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [V3 4/8] drm/i915/dsi: Add check for periodic command mode
@ 2019-11-19 20:05     ` kbuild test robot
  0 siblings, 0 replies; 41+ messages in thread
From: kbuild test robot @ 2019-11-19 20:05 UTC (permalink / raw)
  To: kbuild-all

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

Hi Vandita,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on drm-intel/for-linux-next]
[cannot apply to v5.4-rc8 next-20191118]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Vandita-Kulkarni/Add-support-for-mipi-dsi-cmd-mode/20191120-015713
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: i386-defconfig (attached as .config)
compiler: gcc-7 (Debian 7.4.0-14) 7.4.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_configure_transcoder':
   drivers/gpu/drm/i915/display/icl_dsi.c:718:11: error: 'TE_SOURCE_GPIO' undeclared (first use in this function); did you mean 'DP_SOURCE_OUI'?
       tmp |= TE_SOURCE_GPIO;
              ^~~~~~~~~~~~~~
              DP_SOURCE_OUI
   drivers/gpu/drm/i915/display/icl_dsi.c:718:11: note: each undeclared identifier is reported only once for each function it appears in
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_config_util_pin':
   drivers/gpu/drm/i915/display/icl_dsi.c:999:10: error: 'UTIL_PIN_DIRECTION_INPUT' undeclared (first use in this function); did you mean 'UTIL_PIN_PIPE_MASK'?
      tmp |= UTIL_PIN_DIRECTION_INPUT;
             ^~~~~~~~~~~~~~~~~~~~~~~~
             UTIL_PIN_PIPE_MASK
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_deconfigure_trancoder':
   drivers/gpu/drm/i915/display/icl_dsi.c:1164:20: error: implicit declaration of function 'DSI_CMD_FRMCTL'; did you mean 'DSI_CMD_RXCTL'? [-Werror=implicit-function-declaration]
       tmp = I915_READ(DSI_CMD_FRMCTL(port));
                       ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:1164:10: note: in expansion of macro 'I915_READ'
       tmp = I915_READ(DSI_CMD_FRMCTL(port));
             ^~~~~~~~~
   drivers/gpu/drm/i915/i915_drv.h:1981:57: error: incompatible type for argument 2 of 'intel_uncore_read'
    #define I915_READ(reg__)  __I915_REG_OP(read, dev_priv, (reg__))
                                                            ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:1164:10: note: in expansion of macro 'I915_READ'
       tmp = I915_READ(DSI_CMD_FRMCTL(port));
             ^~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/intel_uncore.h:287:22: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline u##x__ intel_uncore_##name__(struct intel_uncore *uncore, \
                         ^
   drivers/gpu/drm/i915/intel_uncore.h:302:1: note: in expansion of macro '__uncore_read'
    __uncore_read(read, 32, l, true)
    ^~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:1165:12: error: 'DSI_PERIODIC_FRAME_UPDATE_ENABLE' undeclared (first use in this function); did you mean 'GEN6_MBCTL_BME_UPDATE_ENABLE'?
       tmp &= ~DSI_PERIODIC_FRAME_UPDATE_ENABLE;
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               GEN6_MBCTL_BME_UPDATE_ENABLE
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/i915_drv.h:1982:65: error: incompatible type for argument 2 of 'intel_uncore_write'
    #define I915_WRITE(reg__, val__) __I915_REG_OP(write, dev_priv, (reg__), (val__))
                                                                    ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:1166:4: note: in expansion of macro 'I915_WRITE'
       I915_WRITE(DSI_CMD_FRMCTL(port), tmp);
       ^~~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/intel_uncore.h:294:20: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline void intel_uncore_##name__(struct intel_uncore *uncore, \
                       ^
   drivers/gpu/drm/i915/intel_uncore.h:308:1: note: in expansion of macro '__uncore_write'
    __uncore_write(write, 32, l, true)
    ^~~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_is_periodic_cmd_mode':
   drivers/gpu/drm/i915/display/icl_dsi.c:1318:16: error: 'DSI_PERIODIC_FRAME_UPDATE_ENABLE' undeclared (first use in this function); did you mean 'GEN6_MBCTL_BME_UPDATE_ENABLE'?
     return (val & DSI_PERIODIC_FRAME_UPDATE_ENABLE);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   GEN6_MBCTL_BME_UPDATE_ENABLE
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_get_config':
   drivers/gpu/drm/i915/display/icl_dsi.c:1341:14: error: 'struct intel_crtc_state' has no member named 'hw'
      pipe_config->hw.adjusted_mode.private_flags |=
                 ^~
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_compute_config':
   drivers/gpu/drm/i915/display/icl_dsi.c:1374:13: error: 'struct intel_crtc_state' has no member named 'hw'
     pipe_config->hw.adjusted_mode.private_flags &=
                ^~
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_is_periodic_cmd_mode':
>> drivers/gpu/drm/i915/display/icl_dsi.c:1319:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   cc1: some warnings being treated as errors

vim +1319 drivers/gpu/drm/i915/display/icl_dsi.c

  1305	
  1306	bool gen11_dsi_is_periodic_cmd_mode(struct drm_i915_private *dev_priv,
  1307					    struct intel_dsi *intel_dsi)
  1308	{
  1309		u32 val;
  1310		enum transcoder dsi_trans;
  1311	
  1312		if (intel_dsi->ports == BIT(PORT_B))
  1313			dsi_trans = TRANSCODER_DSI_1;
  1314		else
  1315			dsi_trans = TRANSCODER_DSI_0;
  1316	
  1317		val = I915_READ(DSI_TRANS_FUNC_CONF(dsi_trans));
  1318		return (val & DSI_PERIODIC_FRAME_UPDATE_ENABLE);
> 1319	}
  1320	
  1321	static void gen11_dsi_get_config(struct intel_encoder *encoder,
  1322					 struct intel_crtc_state *pipe_config)
  1323	{
  1324		struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
  1325		struct intel_crtc *crtc = to_intel_crtc(pipe_config->base.crtc);
  1326		struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
  1327	
  1328		/* FIXME: adapt icl_ddi_clock_get() for DSI and use that? */
  1329		pipe_config->port_clock =
  1330			cnl_calc_wrpll_link(dev_priv, &pipe_config->dpll_hw_state);
  1331	
  1332		pipe_config->base.adjusted_mode.crtc_clock = intel_dsi->pclk;
  1333		if (intel_dsi->dual_link)
  1334			pipe_config->base.adjusted_mode.crtc_clock *= 2;
  1335	
  1336		gen11_dsi_get_timings(encoder, pipe_config);
  1337		pipe_config->output_types |= BIT(INTEL_OUTPUT_DSI);
  1338		pipe_config->pipe_bpp = bdw_get_pipemisc_bpp(crtc);
  1339	
  1340		if (gen11_dsi_is_periodic_cmd_mode(dev_priv, intel_dsi))
> 1341			pipe_config->hw.adjusted_mode.private_flags |=
  1342						I915_MODE_FLAG_DSI_PERIODIC_CMD_MODE;
  1343	}
  1344	

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org Intel Corporation

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 28187 bytes --]

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

* Re: [V3 6/8] drm/i915/dsi: Configure TE interrupt for cmd mode
@ 2019-11-19 20:23     ` kbuild test robot
  0 siblings, 0 replies; 41+ messages in thread
From: kbuild test robot @ 2019-11-19 20:23 UTC (permalink / raw)
  To: Vandita Kulkarni; +Cc: jani.nikula, intel-gfx, kbuild-all

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

Hi Vandita,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm-intel/for-linux-next]
[cannot apply to v5.4-rc8 next-20191118]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Vandita-Kulkarni/Add-support-for-mipi-dsi-cmd-mode/20191120-015713
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: i386-defconfig (attached as .config)
compiler: gcc-7 (Debian 7.4.0-14) 7.4.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All error/warnings (new ones prefixed by >>):

   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/i915_irq.c:39:
   drivers/gpu/drm/i915/i915_irq.c: In function 'gen11_dsi_configure_te':
>> drivers/gpu/drm/i915/i915_irq.c:2590:19: error: implicit declaration of function 'DSI_INTR_MASK_REG'; did you mean 'TSFS_INTR_MASK'? [-Werror=implicit-function-declaration]
     tmp =  I915_READ(DSI_INTR_MASK_REG(port));
                      ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
>> drivers/gpu/drm/i915/i915_irq.c:2590:9: note: in expansion of macro 'I915_READ'
     tmp =  I915_READ(DSI_INTR_MASK_REG(port));
            ^~~~~~~~~
   drivers/gpu/drm/i915/i915_drv.h:1981:57: error: incompatible type for argument 2 of 'intel_uncore_read'
    #define I915_READ(reg__)  __I915_REG_OP(read, dev_priv, (reg__))
                                                            ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
>> drivers/gpu/drm/i915/i915_irq.c:2590:9: note: in expansion of macro 'I915_READ'
     tmp =  I915_READ(DSI_INTR_MASK_REG(port));
            ^~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/i915_irq.c:39:
   drivers/gpu/drm/i915/intel_uncore.h:287:22: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline u##x__ intel_uncore_##name__(struct intel_uncore *uncore, \
                         ^
   drivers/gpu/drm/i915/intel_uncore.h:302:1: note: in expansion of macro '__uncore_read'
    __uncore_read(read, 32, l, true)
    ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/i915_irq.c:2592:11: error: 'DSI_TE_EVENT' undeclared (first use in this function); did you mean 'DEFINE_EVENT'?
      tmp &= ~DSI_TE_EVENT;
              ^~~~~~~~~~~~
              DEFINE_EVENT
   drivers/gpu/drm/i915/i915_irq.c:2592:11: note: each undeclared identifier is reported only once for each function it appears in
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/i915_irq.c:39:
   drivers/gpu/drm/i915/i915_drv.h:1982:65: error: incompatible type for argument 2 of 'intel_uncore_write'
    #define I915_WRITE(reg__, val__) __I915_REG_OP(write, dev_priv, (reg__), (val__))
                                                                    ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
>> drivers/gpu/drm/i915/i915_irq.c:2596:2: note: in expansion of macro 'I915_WRITE'
     I915_WRITE(DSI_INTR_MASK_REG(port), tmp);
     ^~~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/i915_irq.c:39:
   drivers/gpu/drm/i915/intel_uncore.h:294:20: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline void intel_uncore_##name__(struct intel_uncore *uncore, \
                       ^
   drivers/gpu/drm/i915/intel_uncore.h:308:1: note: in expansion of macro '__uncore_write'
    __uncore_write(write, 32, l, true)
    ^~~~~~~~~~~~~~
   drivers/gpu/drm/i915/i915_irq.c: In function 'gen8_de_irq_postinstall':
>> drivers/gpu/drm/i915/i915_irq.c:3401:22: error: 'DSI0_TE' undeclared (first use in this function)
       de_port_masked |= DSI0_TE | DSI1_TE;
                         ^~~~~~~
>> drivers/gpu/drm/i915/i915_irq.c:3401:32: error: 'DSI1_TE' undeclared (first use in this function); did you mean 'DSI0_TE'?
       de_port_masked |= DSI0_TE | DSI1_TE;
                                   ^~~~~~~
                                   DSI0_TE
   cc1: some warnings being treated as errors

vim +2590 drivers/gpu/drm/i915/i915_irq.c

  2574	
  2575	static bool gen11_dsi_configure_te(struct drm_i915_private *dev_priv,
  2576					   struct drm_display_mode *mode, bool enable)
  2577	{
  2578		enum port port;
  2579		u32 tmp;
  2580	
  2581		if (!(mode->private_flags &
  2582		    (I915_MODE_FLAG_DSI_USE_TE1 | I915_MODE_FLAG_DSI_USE_TE0)))
  2583			return false;
  2584	
  2585		if (mode->private_flags & I915_MODE_FLAG_DSI_USE_TE1)
  2586			port = PORT_B;
  2587		else
  2588			port = PORT_A;
  2589	
> 2590		tmp =  I915_READ(DSI_INTR_MASK_REG(port));
  2591		if (enable)
> 2592			tmp &= ~DSI_TE_EVENT;
  2593		else
  2594			tmp |= DSI_TE_EVENT;
  2595	
> 2596		I915_WRITE(DSI_INTR_MASK_REG(port), tmp);
  2597		return true;
  2598	}
  2599	

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 28187 bytes --]

[-- Attachment #3: Type: text/plain, Size: 159 bytes --]

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [V3 6/8] drm/i915/dsi: Configure TE interrupt for cmd mode
@ 2019-11-19 20:23     ` kbuild test robot
  0 siblings, 0 replies; 41+ messages in thread
From: kbuild test robot @ 2019-11-19 20:23 UTC (permalink / raw)
  To: Vandita Kulkarni; +Cc: jani.nikula, intel-gfx, kbuild-all

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

Hi Vandita,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm-intel/for-linux-next]
[cannot apply to v5.4-rc8 next-20191118]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Vandita-Kulkarni/Add-support-for-mipi-dsi-cmd-mode/20191120-015713
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: i386-defconfig (attached as .config)
compiler: gcc-7 (Debian 7.4.0-14) 7.4.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All error/warnings (new ones prefixed by >>):

   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/i915_irq.c:39:
   drivers/gpu/drm/i915/i915_irq.c: In function 'gen11_dsi_configure_te':
>> drivers/gpu/drm/i915/i915_irq.c:2590:19: error: implicit declaration of function 'DSI_INTR_MASK_REG'; did you mean 'TSFS_INTR_MASK'? [-Werror=implicit-function-declaration]
     tmp =  I915_READ(DSI_INTR_MASK_REG(port));
                      ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
>> drivers/gpu/drm/i915/i915_irq.c:2590:9: note: in expansion of macro 'I915_READ'
     tmp =  I915_READ(DSI_INTR_MASK_REG(port));
            ^~~~~~~~~
   drivers/gpu/drm/i915/i915_drv.h:1981:57: error: incompatible type for argument 2 of 'intel_uncore_read'
    #define I915_READ(reg__)  __I915_REG_OP(read, dev_priv, (reg__))
                                                            ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
>> drivers/gpu/drm/i915/i915_irq.c:2590:9: note: in expansion of macro 'I915_READ'
     tmp =  I915_READ(DSI_INTR_MASK_REG(port));
            ^~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/i915_irq.c:39:
   drivers/gpu/drm/i915/intel_uncore.h:287:22: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline u##x__ intel_uncore_##name__(struct intel_uncore *uncore, \
                         ^
   drivers/gpu/drm/i915/intel_uncore.h:302:1: note: in expansion of macro '__uncore_read'
    __uncore_read(read, 32, l, true)
    ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/i915_irq.c:2592:11: error: 'DSI_TE_EVENT' undeclared (first use in this function); did you mean 'DEFINE_EVENT'?
      tmp &= ~DSI_TE_EVENT;
              ^~~~~~~~~~~~
              DEFINE_EVENT
   drivers/gpu/drm/i915/i915_irq.c:2592:11: note: each undeclared identifier is reported only once for each function it appears in
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/i915_irq.c:39:
   drivers/gpu/drm/i915/i915_drv.h:1982:65: error: incompatible type for argument 2 of 'intel_uncore_write'
    #define I915_WRITE(reg__, val__) __I915_REG_OP(write, dev_priv, (reg__), (val__))
                                                                    ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
>> drivers/gpu/drm/i915/i915_irq.c:2596:2: note: in expansion of macro 'I915_WRITE'
     I915_WRITE(DSI_INTR_MASK_REG(port), tmp);
     ^~~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/i915_irq.c:39:
   drivers/gpu/drm/i915/intel_uncore.h:294:20: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline void intel_uncore_##name__(struct intel_uncore *uncore, \
                       ^
   drivers/gpu/drm/i915/intel_uncore.h:308:1: note: in expansion of macro '__uncore_write'
    __uncore_write(write, 32, l, true)
    ^~~~~~~~~~~~~~
   drivers/gpu/drm/i915/i915_irq.c: In function 'gen8_de_irq_postinstall':
>> drivers/gpu/drm/i915/i915_irq.c:3401:22: error: 'DSI0_TE' undeclared (first use in this function)
       de_port_masked |= DSI0_TE | DSI1_TE;
                         ^~~~~~~
>> drivers/gpu/drm/i915/i915_irq.c:3401:32: error: 'DSI1_TE' undeclared (first use in this function); did you mean 'DSI0_TE'?
       de_port_masked |= DSI0_TE | DSI1_TE;
                                   ^~~~~~~
                                   DSI0_TE
   cc1: some warnings being treated as errors

vim +2590 drivers/gpu/drm/i915/i915_irq.c

  2574	
  2575	static bool gen11_dsi_configure_te(struct drm_i915_private *dev_priv,
  2576					   struct drm_display_mode *mode, bool enable)
  2577	{
  2578		enum port port;
  2579		u32 tmp;
  2580	
  2581		if (!(mode->private_flags &
  2582		    (I915_MODE_FLAG_DSI_USE_TE1 | I915_MODE_FLAG_DSI_USE_TE0)))
  2583			return false;
  2584	
  2585		if (mode->private_flags & I915_MODE_FLAG_DSI_USE_TE1)
  2586			port = PORT_B;
  2587		else
  2588			port = PORT_A;
  2589	
> 2590		tmp =  I915_READ(DSI_INTR_MASK_REG(port));
  2591		if (enable)
> 2592			tmp &= ~DSI_TE_EVENT;
  2593		else
  2594			tmp |= DSI_TE_EVENT;
  2595	
> 2596		I915_WRITE(DSI_INTR_MASK_REG(port), tmp);
  2597		return true;
  2598	}
  2599	

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 28187 bytes --]

[-- Attachment #3: Type: text/plain, Size: 159 bytes --]

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [V3 6/8] drm/i915/dsi: Configure TE interrupt for cmd mode
@ 2019-11-19 20:23     ` kbuild test robot
  0 siblings, 0 replies; 41+ messages in thread
From: kbuild test robot @ 2019-11-19 20:23 UTC (permalink / raw)
  To: kbuild-all

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

Hi Vandita,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm-intel/for-linux-next]
[cannot apply to v5.4-rc8 next-20191118]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Vandita-Kulkarni/Add-support-for-mipi-dsi-cmd-mode/20191120-015713
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: i386-defconfig (attached as .config)
compiler: gcc-7 (Debian 7.4.0-14) 7.4.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All error/warnings (new ones prefixed by >>):

   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/i915_irq.c:39:
   drivers/gpu/drm/i915/i915_irq.c: In function 'gen11_dsi_configure_te':
>> drivers/gpu/drm/i915/i915_irq.c:2590:19: error: implicit declaration of function 'DSI_INTR_MASK_REG'; did you mean 'TSFS_INTR_MASK'? [-Werror=implicit-function-declaration]
     tmp =  I915_READ(DSI_INTR_MASK_REG(port));
                      ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
>> drivers/gpu/drm/i915/i915_irq.c:2590:9: note: in expansion of macro 'I915_READ'
     tmp =  I915_READ(DSI_INTR_MASK_REG(port));
            ^~~~~~~~~
   drivers/gpu/drm/i915/i915_drv.h:1981:57: error: incompatible type for argument 2 of 'intel_uncore_read'
    #define I915_READ(reg__)  __I915_REG_OP(read, dev_priv, (reg__))
                                                            ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
>> drivers/gpu/drm/i915/i915_irq.c:2590:9: note: in expansion of macro 'I915_READ'
     tmp =  I915_READ(DSI_INTR_MASK_REG(port));
            ^~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/i915_irq.c:39:
   drivers/gpu/drm/i915/intel_uncore.h:287:22: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline u##x__ intel_uncore_##name__(struct intel_uncore *uncore, \
                         ^
   drivers/gpu/drm/i915/intel_uncore.h:302:1: note: in expansion of macro '__uncore_read'
    __uncore_read(read, 32, l, true)
    ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/i915_irq.c:2592:11: error: 'DSI_TE_EVENT' undeclared (first use in this function); did you mean 'DEFINE_EVENT'?
      tmp &= ~DSI_TE_EVENT;
              ^~~~~~~~~~~~
              DEFINE_EVENT
   drivers/gpu/drm/i915/i915_irq.c:2592:11: note: each undeclared identifier is reported only once for each function it appears in
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/i915_irq.c:39:
   drivers/gpu/drm/i915/i915_drv.h:1982:65: error: incompatible type for argument 2 of 'intel_uncore_write'
    #define I915_WRITE(reg__, val__) __I915_REG_OP(write, dev_priv, (reg__), (val__))
                                                                    ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
>> drivers/gpu/drm/i915/i915_irq.c:2596:2: note: in expansion of macro 'I915_WRITE'
     I915_WRITE(DSI_INTR_MASK_REG(port), tmp);
     ^~~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/i915_irq.c:39:
   drivers/gpu/drm/i915/intel_uncore.h:294:20: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline void intel_uncore_##name__(struct intel_uncore *uncore, \
                       ^
   drivers/gpu/drm/i915/intel_uncore.h:308:1: note: in expansion of macro '__uncore_write'
    __uncore_write(write, 32, l, true)
    ^~~~~~~~~~~~~~
   drivers/gpu/drm/i915/i915_irq.c: In function 'gen8_de_irq_postinstall':
>> drivers/gpu/drm/i915/i915_irq.c:3401:22: error: 'DSI0_TE' undeclared (first use in this function)
       de_port_masked |= DSI0_TE | DSI1_TE;
                         ^~~~~~~
>> drivers/gpu/drm/i915/i915_irq.c:3401:32: error: 'DSI1_TE' undeclared (first use in this function); did you mean 'DSI0_TE'?
       de_port_masked |= DSI0_TE | DSI1_TE;
                                   ^~~~~~~
                                   DSI0_TE
   cc1: some warnings being treated as errors

vim +2590 drivers/gpu/drm/i915/i915_irq.c

  2574	
  2575	static bool gen11_dsi_configure_te(struct drm_i915_private *dev_priv,
  2576					   struct drm_display_mode *mode, bool enable)
  2577	{
  2578		enum port port;
  2579		u32 tmp;
  2580	
  2581		if (!(mode->private_flags &
  2582		    (I915_MODE_FLAG_DSI_USE_TE1 | I915_MODE_FLAG_DSI_USE_TE0)))
  2583			return false;
  2584	
  2585		if (mode->private_flags & I915_MODE_FLAG_DSI_USE_TE1)
  2586			port = PORT_B;
  2587		else
  2588			port = PORT_A;
  2589	
> 2590		tmp =  I915_READ(DSI_INTR_MASK_REG(port));
  2591		if (enable)
> 2592			tmp &= ~DSI_TE_EVENT;
  2593		else
  2594			tmp |= DSI_TE_EVENT;
  2595	
> 2596		I915_WRITE(DSI_INTR_MASK_REG(port), tmp);
  2597		return true;
  2598	}
  2599	

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org Intel Corporation

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 28187 bytes --]

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

* Re: [V3 7/8] drm/i915/dsi: Add TE handler for dsi cmd mode.
@ 2019-11-19 21:00     ` kbuild test robot
  0 siblings, 0 replies; 41+ messages in thread
From: kbuild test robot @ 2019-11-19 21:00 UTC (permalink / raw)
  To: Vandita Kulkarni; +Cc: jani.nikula, intel-gfx, kbuild-all

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

Hi Vandita,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm-intel/for-linux-next]
[cannot apply to v5.4-rc8 next-20191118]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Vandita-Kulkarni/Add-support-for-mipi-dsi-cmd-mode/20191120-015713
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: i386-defconfig (attached as .config)
compiler: gcc-7 (Debian 7.4.0-14) 7.4.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   drivers/gpu/drm/i915/i915_irq.c: In function 'gen11_dsi_te_interrupt_handler':
>> drivers/gpu/drm/i915/i915_irq.c:2252:24: error: 'DSI1_TE' undeclared (first use in this function)
     port = ((te_trigger & DSI1_TE && val) || (te_trigger & DSI0_TE)) ?
                           ^~~~~~~
   drivers/gpu/drm/i915/i915_irq.c:2252:24: note: each undeclared identifier is reported only once for each function it appears in
>> drivers/gpu/drm/i915/i915_irq.c:2252:57: error: 'DSI0_TE' undeclared (first use in this function); did you mean 'DSI1_TE'?
     port = ((te_trigger & DSI1_TE && val) || (te_trigger & DSI0_TE)) ?
                                                            ^~~~~~~
                                                            DSI1_TE
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/i915_irq.c:39:
>> drivers/gpu/drm/i915/i915_irq.c:2283:18: error: implicit declaration of function 'DSI_INTR_IDENT_REG'; did you mean 'GEN11_INTR_IDENTITY_REG'? [-Werror=implicit-function-declaration]
     tmp = I915_READ(DSI_INTR_IDENT_REG(port));
                     ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/i915_irq.c:2283:8: note: in expansion of macro 'I915_READ'
     tmp = I915_READ(DSI_INTR_IDENT_REG(port));
           ^~~~~~~~~
   drivers/gpu/drm/i915/i915_drv.h:1981:57: error: incompatible type for argument 2 of 'intel_uncore_read'
    #define I915_READ(reg__)  __I915_REG_OP(read, dev_priv, (reg__))
                                                            ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/i915_irq.c:2283:8: note: in expansion of macro 'I915_READ'
     tmp = I915_READ(DSI_INTR_IDENT_REG(port));
           ^~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/i915_irq.c:39:
   drivers/gpu/drm/i915/intel_uncore.h:287:22: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline u##x__ intel_uncore_##name__(struct intel_uncore *uncore, \
                         ^
   drivers/gpu/drm/i915/intel_uncore.h:302:1: note: in expansion of macro '__uncore_read'
    __uncore_read(read, 32, l, true)
    ^~~~~~~~~~~~~
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/i915_irq.c:39:
   drivers/gpu/drm/i915/i915_drv.h:1982:65: error: incompatible type for argument 2 of 'intel_uncore_write'
    #define I915_WRITE(reg__, val__) __I915_REG_OP(write, dev_priv, (reg__), (val__))
                                                                    ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/i915_irq.c:2284:2: note: in expansion of macro 'I915_WRITE'
     I915_WRITE(DSI_INTR_IDENT_REG(port), tmp);
     ^~~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/i915_irq.c:39:
   drivers/gpu/drm/i915/intel_uncore.h:294:20: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline void intel_uncore_##name__(struct intel_uncore *uncore, \
                       ^
   drivers/gpu/drm/i915/intel_uncore.h:308:1: note: in expansion of macro '__uncore_write'
    __uncore_write(write, 32, l, true)
    ^~~~~~~~~~~~~~
   drivers/gpu/drm/i915/i915_irq.c: In function 'gen8_de_irq_handler':
   drivers/gpu/drm/i915/i915_irq.c:2354:23: error: 'DSI0_TE' undeclared (first use in this function)
        tmp_mask = iir & (DSI0_TE | DSI1_TE);
                          ^~~~~~~
   drivers/gpu/drm/i915/i915_irq.c:2354:33: error: 'DSI1_TE' undeclared (first use in this function); did you mean 'DSI0_TE'?
        tmp_mask = iir & (DSI0_TE | DSI1_TE);
                                    ^~~~~~~
                                    DSI0_TE
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/i915_irq.c:39:
   drivers/gpu/drm/i915/i915_irq.c: In function 'gen11_dsi_configure_te':
   drivers/gpu/drm/i915/i915_irq.c:2654:19: error: implicit declaration of function 'DSI_INTR_MASK_REG'; did you mean 'TSFS_INTR_MASK'? [-Werror=implicit-function-declaration]
     tmp =  I915_READ(DSI_INTR_MASK_REG(port));
                      ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/i915_irq.c:2654:9: note: in expansion of macro 'I915_READ'
     tmp =  I915_READ(DSI_INTR_MASK_REG(port));
            ^~~~~~~~~
   drivers/gpu/drm/i915/i915_drv.h:1981:57: error: incompatible type for argument 2 of 'intel_uncore_read'
    #define I915_READ(reg__)  __I915_REG_OP(read, dev_priv, (reg__))
                                                            ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/i915_irq.c:2654:9: note: in expansion of macro 'I915_READ'
     tmp =  I915_READ(DSI_INTR_MASK_REG(port));
            ^~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/i915_irq.c:39:
   drivers/gpu/drm/i915/intel_uncore.h:287:22: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline u##x__ intel_uncore_##name__(struct intel_uncore *uncore, \
                         ^
   drivers/gpu/drm/i915/intel_uncore.h:302:1: note: in expansion of macro '__uncore_read'
    __uncore_read(read, 32, l, true)
    ^~~~~~~~~~~~~
   drivers/gpu/drm/i915/i915_irq.c:2656:11: error: 'DSI_TE_EVENT' undeclared (first use in this function); did you mean 'DEFINE_EVENT'?
      tmp &= ~DSI_TE_EVENT;
              ^~~~~~~~~~~~
              DEFINE_EVENT
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/i915_irq.c:39:
   drivers/gpu/drm/i915/i915_drv.h:1982:65: error: incompatible type for argument 2 of 'intel_uncore_write'

vim +/DSI1_TE +2252 drivers/gpu/drm/i915/i915_irq.c

  2232	
  2233	void gen11_dsi_te_interrupt_handler(struct drm_i915_private *dev_priv,
  2234					    u32 te_trigger)
  2235	{
  2236		enum pipe pipe = INVALID_PIPE;
  2237		enum transcoder dsi_trans;
  2238		enum port port;
  2239		u32 val, tmp;
  2240	
  2241		/*
  2242		 * Incase of dual link, TE comes from DSI_1
  2243		 * this is to check if dual link is enabled
  2244		 */
  2245		val = I915_READ(TRANS_DDI_FUNC_CTL2(TRANSCODER_DSI_0));
  2246		val &= PORT_SYNC_MODE_ENABLE;
  2247	
  2248		/*
  2249		 * if dual link is enabled, then read DSI_0
  2250		 * transcoder registers
  2251		 */
> 2252		port = ((te_trigger & DSI1_TE && val) || (te_trigger & DSI0_TE)) ?
  2253							  PORT_A : PORT_B;
  2254		dsi_trans = (port == PORT_A) ? TRANSCODER_DSI_0 : TRANSCODER_DSI_1;
  2255	
  2256		/* Check if DSI configured in command mode */
  2257		val = I915_READ(DSI_TRANS_FUNC_CONF(dsi_trans));
  2258		val = (val & OP_MODE_MASK) >> 28;
  2259	
  2260		if (val) {
  2261			DRM_ERROR("DSI trancoder not configured in command mode\n");
  2262			return;
  2263		}
  2264	
  2265		/* Get PIPE for handling VBLANK event */
  2266		val = I915_READ(TRANS_DDI_FUNC_CTL(dsi_trans));
  2267		switch (val & TRANS_DDI_EDP_INPUT_MASK) {
  2268		case TRANS_DDI_EDP_INPUT_A_ON:
  2269			pipe = PIPE_A;
  2270			break;
  2271		case TRANS_DDI_EDP_INPUT_B_ONOFF:
  2272			pipe = PIPE_B;
  2273			break;
  2274		case TRANS_DDI_EDP_INPUT_C_ONOFF:
  2275			pipe = PIPE_C;
  2276			break;
  2277		default:
  2278			DRM_ERROR("Invalid PIPE\n");
  2279		}
  2280	
  2281		/* clear TE in dsi IIR */
  2282		port = (te_trigger & DSI1_TE) ? PORT_B : PORT_A;
> 2283		tmp = I915_READ(DSI_INTR_IDENT_REG(port));
  2284		I915_WRITE(DSI_INTR_IDENT_REG(port), tmp);
  2285	
  2286		drm_handle_vblank(&dev_priv->drm, pipe);
  2287	}
  2288	

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 28187 bytes --]

[-- Attachment #3: Type: text/plain, Size: 159 bytes --]

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [V3 7/8] drm/i915/dsi: Add TE handler for dsi cmd mode.
@ 2019-11-19 21:00     ` kbuild test robot
  0 siblings, 0 replies; 41+ messages in thread
From: kbuild test robot @ 2019-11-19 21:00 UTC (permalink / raw)
  To: Vandita Kulkarni; +Cc: jani.nikula, intel-gfx, kbuild-all

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

Hi Vandita,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm-intel/for-linux-next]
[cannot apply to v5.4-rc8 next-20191118]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Vandita-Kulkarni/Add-support-for-mipi-dsi-cmd-mode/20191120-015713
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: i386-defconfig (attached as .config)
compiler: gcc-7 (Debian 7.4.0-14) 7.4.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   drivers/gpu/drm/i915/i915_irq.c: In function 'gen11_dsi_te_interrupt_handler':
>> drivers/gpu/drm/i915/i915_irq.c:2252:24: error: 'DSI1_TE' undeclared (first use in this function)
     port = ((te_trigger & DSI1_TE && val) || (te_trigger & DSI0_TE)) ?
                           ^~~~~~~
   drivers/gpu/drm/i915/i915_irq.c:2252:24: note: each undeclared identifier is reported only once for each function it appears in
>> drivers/gpu/drm/i915/i915_irq.c:2252:57: error: 'DSI0_TE' undeclared (first use in this function); did you mean 'DSI1_TE'?
     port = ((te_trigger & DSI1_TE && val) || (te_trigger & DSI0_TE)) ?
                                                            ^~~~~~~
                                                            DSI1_TE
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/i915_irq.c:39:
>> drivers/gpu/drm/i915/i915_irq.c:2283:18: error: implicit declaration of function 'DSI_INTR_IDENT_REG'; did you mean 'GEN11_INTR_IDENTITY_REG'? [-Werror=implicit-function-declaration]
     tmp = I915_READ(DSI_INTR_IDENT_REG(port));
                     ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/i915_irq.c:2283:8: note: in expansion of macro 'I915_READ'
     tmp = I915_READ(DSI_INTR_IDENT_REG(port));
           ^~~~~~~~~
   drivers/gpu/drm/i915/i915_drv.h:1981:57: error: incompatible type for argument 2 of 'intel_uncore_read'
    #define I915_READ(reg__)  __I915_REG_OP(read, dev_priv, (reg__))
                                                            ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/i915_irq.c:2283:8: note: in expansion of macro 'I915_READ'
     tmp = I915_READ(DSI_INTR_IDENT_REG(port));
           ^~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/i915_irq.c:39:
   drivers/gpu/drm/i915/intel_uncore.h:287:22: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline u##x__ intel_uncore_##name__(struct intel_uncore *uncore, \
                         ^
   drivers/gpu/drm/i915/intel_uncore.h:302:1: note: in expansion of macro '__uncore_read'
    __uncore_read(read, 32, l, true)
    ^~~~~~~~~~~~~
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/i915_irq.c:39:
   drivers/gpu/drm/i915/i915_drv.h:1982:65: error: incompatible type for argument 2 of 'intel_uncore_write'
    #define I915_WRITE(reg__, val__) __I915_REG_OP(write, dev_priv, (reg__), (val__))
                                                                    ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/i915_irq.c:2284:2: note: in expansion of macro 'I915_WRITE'
     I915_WRITE(DSI_INTR_IDENT_REG(port), tmp);
     ^~~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/i915_irq.c:39:
   drivers/gpu/drm/i915/intel_uncore.h:294:20: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline void intel_uncore_##name__(struct intel_uncore *uncore, \
                       ^
   drivers/gpu/drm/i915/intel_uncore.h:308:1: note: in expansion of macro '__uncore_write'
    __uncore_write(write, 32, l, true)
    ^~~~~~~~~~~~~~
   drivers/gpu/drm/i915/i915_irq.c: In function 'gen8_de_irq_handler':
   drivers/gpu/drm/i915/i915_irq.c:2354:23: error: 'DSI0_TE' undeclared (first use in this function)
        tmp_mask = iir & (DSI0_TE | DSI1_TE);
                          ^~~~~~~
   drivers/gpu/drm/i915/i915_irq.c:2354:33: error: 'DSI1_TE' undeclared (first use in this function); did you mean 'DSI0_TE'?
        tmp_mask = iir & (DSI0_TE | DSI1_TE);
                                    ^~~~~~~
                                    DSI0_TE
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/i915_irq.c:39:
   drivers/gpu/drm/i915/i915_irq.c: In function 'gen11_dsi_configure_te':
   drivers/gpu/drm/i915/i915_irq.c:2654:19: error: implicit declaration of function 'DSI_INTR_MASK_REG'; did you mean 'TSFS_INTR_MASK'? [-Werror=implicit-function-declaration]
     tmp =  I915_READ(DSI_INTR_MASK_REG(port));
                      ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/i915_irq.c:2654:9: note: in expansion of macro 'I915_READ'
     tmp =  I915_READ(DSI_INTR_MASK_REG(port));
            ^~~~~~~~~
   drivers/gpu/drm/i915/i915_drv.h:1981:57: error: incompatible type for argument 2 of 'intel_uncore_read'
    #define I915_READ(reg__)  __I915_REG_OP(read, dev_priv, (reg__))
                                                            ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/i915_irq.c:2654:9: note: in expansion of macro 'I915_READ'
     tmp =  I915_READ(DSI_INTR_MASK_REG(port));
            ^~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/i915_irq.c:39:
   drivers/gpu/drm/i915/intel_uncore.h:287:22: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline u##x__ intel_uncore_##name__(struct intel_uncore *uncore, \
                         ^
   drivers/gpu/drm/i915/intel_uncore.h:302:1: note: in expansion of macro '__uncore_read'
    __uncore_read(read, 32, l, true)
    ^~~~~~~~~~~~~
   drivers/gpu/drm/i915/i915_irq.c:2656:11: error: 'DSI_TE_EVENT' undeclared (first use in this function); did you mean 'DEFINE_EVENT'?
      tmp &= ~DSI_TE_EVENT;
              ^~~~~~~~~~~~
              DEFINE_EVENT
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/i915_irq.c:39:
   drivers/gpu/drm/i915/i915_drv.h:1982:65: error: incompatible type for argument 2 of 'intel_uncore_write'

vim +/DSI1_TE +2252 drivers/gpu/drm/i915/i915_irq.c

  2232	
  2233	void gen11_dsi_te_interrupt_handler(struct drm_i915_private *dev_priv,
  2234					    u32 te_trigger)
  2235	{
  2236		enum pipe pipe = INVALID_PIPE;
  2237		enum transcoder dsi_trans;
  2238		enum port port;
  2239		u32 val, tmp;
  2240	
  2241		/*
  2242		 * Incase of dual link, TE comes from DSI_1
  2243		 * this is to check if dual link is enabled
  2244		 */
  2245		val = I915_READ(TRANS_DDI_FUNC_CTL2(TRANSCODER_DSI_0));
  2246		val &= PORT_SYNC_MODE_ENABLE;
  2247	
  2248		/*
  2249		 * if dual link is enabled, then read DSI_0
  2250		 * transcoder registers
  2251		 */
> 2252		port = ((te_trigger & DSI1_TE && val) || (te_trigger & DSI0_TE)) ?
  2253							  PORT_A : PORT_B;
  2254		dsi_trans = (port == PORT_A) ? TRANSCODER_DSI_0 : TRANSCODER_DSI_1;
  2255	
  2256		/* Check if DSI configured in command mode */
  2257		val = I915_READ(DSI_TRANS_FUNC_CONF(dsi_trans));
  2258		val = (val & OP_MODE_MASK) >> 28;
  2259	
  2260		if (val) {
  2261			DRM_ERROR("DSI trancoder not configured in command mode\n");
  2262			return;
  2263		}
  2264	
  2265		/* Get PIPE for handling VBLANK event */
  2266		val = I915_READ(TRANS_DDI_FUNC_CTL(dsi_trans));
  2267		switch (val & TRANS_DDI_EDP_INPUT_MASK) {
  2268		case TRANS_DDI_EDP_INPUT_A_ON:
  2269			pipe = PIPE_A;
  2270			break;
  2271		case TRANS_DDI_EDP_INPUT_B_ONOFF:
  2272			pipe = PIPE_B;
  2273			break;
  2274		case TRANS_DDI_EDP_INPUT_C_ONOFF:
  2275			pipe = PIPE_C;
  2276			break;
  2277		default:
  2278			DRM_ERROR("Invalid PIPE\n");
  2279		}
  2280	
  2281		/* clear TE in dsi IIR */
  2282		port = (te_trigger & DSI1_TE) ? PORT_B : PORT_A;
> 2283		tmp = I915_READ(DSI_INTR_IDENT_REG(port));
  2284		I915_WRITE(DSI_INTR_IDENT_REG(port), tmp);
  2285	
  2286		drm_handle_vblank(&dev_priv->drm, pipe);
  2287	}
  2288	

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 28187 bytes --]

[-- Attachment #3: Type: text/plain, Size: 159 bytes --]

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [V3 7/8] drm/i915/dsi: Add TE handler for dsi cmd mode.
@ 2019-11-19 21:00     ` kbuild test robot
  0 siblings, 0 replies; 41+ messages in thread
From: kbuild test robot @ 2019-11-19 21:00 UTC (permalink / raw)
  To: kbuild-all

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

Hi Vandita,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm-intel/for-linux-next]
[cannot apply to v5.4-rc8 next-20191118]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Vandita-Kulkarni/Add-support-for-mipi-dsi-cmd-mode/20191120-015713
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: i386-defconfig (attached as .config)
compiler: gcc-7 (Debian 7.4.0-14) 7.4.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   drivers/gpu/drm/i915/i915_irq.c: In function 'gen11_dsi_te_interrupt_handler':
>> drivers/gpu/drm/i915/i915_irq.c:2252:24: error: 'DSI1_TE' undeclared (first use in this function)
     port = ((te_trigger & DSI1_TE && val) || (te_trigger & DSI0_TE)) ?
                           ^~~~~~~
   drivers/gpu/drm/i915/i915_irq.c:2252:24: note: each undeclared identifier is reported only once for each function it appears in
>> drivers/gpu/drm/i915/i915_irq.c:2252:57: error: 'DSI0_TE' undeclared (first use in this function); did you mean 'DSI1_TE'?
     port = ((te_trigger & DSI1_TE && val) || (te_trigger & DSI0_TE)) ?
                                                            ^~~~~~~
                                                            DSI1_TE
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/i915_irq.c:39:
>> drivers/gpu/drm/i915/i915_irq.c:2283:18: error: implicit declaration of function 'DSI_INTR_IDENT_REG'; did you mean 'GEN11_INTR_IDENTITY_REG'? [-Werror=implicit-function-declaration]
     tmp = I915_READ(DSI_INTR_IDENT_REG(port));
                     ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/i915_irq.c:2283:8: note: in expansion of macro 'I915_READ'
     tmp = I915_READ(DSI_INTR_IDENT_REG(port));
           ^~~~~~~~~
   drivers/gpu/drm/i915/i915_drv.h:1981:57: error: incompatible type for argument 2 of 'intel_uncore_read'
    #define I915_READ(reg__)  __I915_REG_OP(read, dev_priv, (reg__))
                                                            ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/i915_irq.c:2283:8: note: in expansion of macro 'I915_READ'
     tmp = I915_READ(DSI_INTR_IDENT_REG(port));
           ^~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/i915_irq.c:39:
   drivers/gpu/drm/i915/intel_uncore.h:287:22: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline u##x__ intel_uncore_##name__(struct intel_uncore *uncore, \
                         ^
   drivers/gpu/drm/i915/intel_uncore.h:302:1: note: in expansion of macro '__uncore_read'
    __uncore_read(read, 32, l, true)
    ^~~~~~~~~~~~~
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/i915_irq.c:39:
   drivers/gpu/drm/i915/i915_drv.h:1982:65: error: incompatible type for argument 2 of 'intel_uncore_write'
    #define I915_WRITE(reg__, val__) __I915_REG_OP(write, dev_priv, (reg__), (val__))
                                                                    ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/i915_irq.c:2284:2: note: in expansion of macro 'I915_WRITE'
     I915_WRITE(DSI_INTR_IDENT_REG(port), tmp);
     ^~~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/i915_irq.c:39:
   drivers/gpu/drm/i915/intel_uncore.h:294:20: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline void intel_uncore_##name__(struct intel_uncore *uncore, \
                       ^
   drivers/gpu/drm/i915/intel_uncore.h:308:1: note: in expansion of macro '__uncore_write'
    __uncore_write(write, 32, l, true)
    ^~~~~~~~~~~~~~
   drivers/gpu/drm/i915/i915_irq.c: In function 'gen8_de_irq_handler':
   drivers/gpu/drm/i915/i915_irq.c:2354:23: error: 'DSI0_TE' undeclared (first use in this function)
        tmp_mask = iir & (DSI0_TE | DSI1_TE);
                          ^~~~~~~
   drivers/gpu/drm/i915/i915_irq.c:2354:33: error: 'DSI1_TE' undeclared (first use in this function); did you mean 'DSI0_TE'?
        tmp_mask = iir & (DSI0_TE | DSI1_TE);
                                    ^~~~~~~
                                    DSI0_TE
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/i915_irq.c:39:
   drivers/gpu/drm/i915/i915_irq.c: In function 'gen11_dsi_configure_te':
   drivers/gpu/drm/i915/i915_irq.c:2654:19: error: implicit declaration of function 'DSI_INTR_MASK_REG'; did you mean 'TSFS_INTR_MASK'? [-Werror=implicit-function-declaration]
     tmp =  I915_READ(DSI_INTR_MASK_REG(port));
                      ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/i915_irq.c:2654:9: note: in expansion of macro 'I915_READ'
     tmp =  I915_READ(DSI_INTR_MASK_REG(port));
            ^~~~~~~~~
   drivers/gpu/drm/i915/i915_drv.h:1981:57: error: incompatible type for argument 2 of 'intel_uncore_read'
    #define I915_READ(reg__)  __I915_REG_OP(read, dev_priv, (reg__))
                                                            ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/i915_irq.c:2654:9: note: in expansion of macro 'I915_READ'
     tmp =  I915_READ(DSI_INTR_MASK_REG(port));
            ^~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/i915_irq.c:39:
   drivers/gpu/drm/i915/intel_uncore.h:287:22: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline u##x__ intel_uncore_##name__(struct intel_uncore *uncore, \
                         ^
   drivers/gpu/drm/i915/intel_uncore.h:302:1: note: in expansion of macro '__uncore_read'
    __uncore_read(read, 32, l, true)
    ^~~~~~~~~~~~~
   drivers/gpu/drm/i915/i915_irq.c:2656:11: error: 'DSI_TE_EVENT' undeclared (first use in this function); did you mean 'DEFINE_EVENT'?
      tmp &= ~DSI_TE_EVENT;
              ^~~~~~~~~~~~
              DEFINE_EVENT
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/i915_irq.c:39:
   drivers/gpu/drm/i915/i915_drv.h:1982:65: error: incompatible type for argument 2 of 'intel_uncore_write'

vim +/DSI1_TE +2252 drivers/gpu/drm/i915/i915_irq.c

  2232	
  2233	void gen11_dsi_te_interrupt_handler(struct drm_i915_private *dev_priv,
  2234					    u32 te_trigger)
  2235	{
  2236		enum pipe pipe = INVALID_PIPE;
  2237		enum transcoder dsi_trans;
  2238		enum port port;
  2239		u32 val, tmp;
  2240	
  2241		/*
  2242		 * Incase of dual link, TE comes from DSI_1
  2243		 * this is to check if dual link is enabled
  2244		 */
  2245		val = I915_READ(TRANS_DDI_FUNC_CTL2(TRANSCODER_DSI_0));
  2246		val &= PORT_SYNC_MODE_ENABLE;
  2247	
  2248		/*
  2249		 * if dual link is enabled, then read DSI_0
  2250		 * transcoder registers
  2251		 */
> 2252		port = ((te_trigger & DSI1_TE && val) || (te_trigger & DSI0_TE)) ?
  2253							  PORT_A : PORT_B;
  2254		dsi_trans = (port == PORT_A) ? TRANSCODER_DSI_0 : TRANSCODER_DSI_1;
  2255	
  2256		/* Check if DSI configured in command mode */
  2257		val = I915_READ(DSI_TRANS_FUNC_CONF(dsi_trans));
  2258		val = (val & OP_MODE_MASK) >> 28;
  2259	
  2260		if (val) {
  2261			DRM_ERROR("DSI trancoder not configured in command mode\n");
  2262			return;
  2263		}
  2264	
  2265		/* Get PIPE for handling VBLANK event */
  2266		val = I915_READ(TRANS_DDI_FUNC_CTL(dsi_trans));
  2267		switch (val & TRANS_DDI_EDP_INPUT_MASK) {
  2268		case TRANS_DDI_EDP_INPUT_A_ON:
  2269			pipe = PIPE_A;
  2270			break;
  2271		case TRANS_DDI_EDP_INPUT_B_ONOFF:
  2272			pipe = PIPE_B;
  2273			break;
  2274		case TRANS_DDI_EDP_INPUT_C_ONOFF:
  2275			pipe = PIPE_C;
  2276			break;
  2277		default:
  2278			DRM_ERROR("Invalid PIPE\n");
  2279		}
  2280	
  2281		/* clear TE in dsi IIR */
  2282		port = (te_trigger & DSI1_TE) ? PORT_B : PORT_A;
> 2283		tmp = I915_READ(DSI_INTR_IDENT_REG(port));
  2284		I915_WRITE(DSI_INTR_IDENT_REG(port), tmp);
  2285	
  2286		drm_handle_vblank(&dev_priv->drm, pipe);
  2287	}
  2288	

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org Intel Corporation

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 28187 bytes --]

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

* Re: [V3 8/8] drm/i915/dsi: Initiate fame request in cmd mode
@ 2019-11-19 21:30     ` kbuild test robot
  0 siblings, 0 replies; 41+ messages in thread
From: kbuild test robot @ 2019-11-19 21:30 UTC (permalink / raw)
  To: Vandita Kulkarni; +Cc: jani.nikula, intel-gfx, kbuild-all

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

Hi Vandita,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm-intel/for-linux-next]
[cannot apply to v5.4-rc8 next-20191118]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Vandita-Kulkarni/Add-support-for-mipi-dsi-cmd-mode/20191120-015713
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: i386-defconfig (attached as .config)
compiler: gcc-7 (Debian 7.4.0-14) 7.4.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   drivers/gpu/drm/i915/display/icl_dsi.c:203:52: error: 'struct intel_crtc_state' has no member named 'uapi'
     struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
                                                       ^
   include/linux/kernel.h:993:26: note: in definition of macro 'container_of'
     void *__mptr = (void *)(ptr);     \
                             ^~~
   drivers/gpu/drm/i915/display/icl_dsi.c:203:28: note: in expansion of macro 'to_intel_crtc'
     struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
                               ^~~~~~~~~~~~~
   In file included from include/linux/ioport.h:13:0,
                    from include/linux/acpi.h:12,
                    from include/linux/i2c.h:13,
                    from include/drm/drm_crtc.h:28,
                    from include/drm/drm_atomic_helper.h:31,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:28:
   drivers/gpu/drm/i915/display/icl_dsi.c:203:52: error: 'struct intel_crtc_state' has no member named 'uapi'
     struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
                                                       ^
   include/linux/compiler.h:330:9: note: in definition of macro '__compiletime_assert'
      if (!(condition))     \
            ^~~~~~~~~
   include/linux/compiler.h:350:2: note: in expansion of macro '_compiletime_assert'
     _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
     ^~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
    #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                        ^~~~~~~~~~~~~~~~~~
   include/linux/kernel.h:994:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
     BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
     ^~~~~~~~~~~~~~~~
   include/linux/kernel.h:994:20: note: in expansion of macro '__same_type'
     BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
                       ^~~~~~~~~~~
   drivers/gpu/drm/i915/display/intel_display_types.h:1125:26: note: in expansion of macro 'container_of'
    #define to_intel_crtc(x) container_of(x, struct intel_crtc, base)
                             ^~~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:203:28: note: in expansion of macro 'to_intel_crtc'
     struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
                               ^~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:203:52: error: 'struct intel_crtc_state' has no member named 'uapi'
     struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
                                                       ^
   include/linux/compiler.h:330:9: note: in definition of macro '__compiletime_assert'
      if (!(condition))     \
            ^~~~~~~~~
   include/linux/compiler.h:350:2: note: in expansion of macro '_compiletime_assert'
     _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
     ^~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
    #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                        ^~~~~~~~~~~~~~~~~~
   include/linux/kernel.h:994:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
     BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
     ^~~~~~~~~~~~~~~~
   include/linux/kernel.h:995:6: note: in expansion of macro '__same_type'
        !__same_type(*(ptr), void),   \
         ^~~~~~~~~~~
   drivers/gpu/drm/i915/display/intel_display_types.h:1125:26: note: in expansion of macro 'container_of'
    #define to_intel_crtc(x) container_of(x, struct intel_crtc, base)
                             ^~~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:203:28: note: in expansion of macro 'to_intel_crtc'
     struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
                               ^~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:208:28: error: 'struct intel_crtc_state' has no member named 'hw'
     private_flags = crtc_state->hw.adjusted_mode.private_flags;
                               ^~
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/display/icl_dsi.c:218:18: error: implicit declaration of function 'DSI_CMD_FRMCTL'; did you mean 'DSI_CMD_RXCTL'? [-Werror=implicit-function-declaration]
     tmp = I915_READ(DSI_CMD_FRMCTL(port));
                     ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:218:8: note: in expansion of macro 'I915_READ'
     tmp = I915_READ(DSI_CMD_FRMCTL(port));
           ^~~~~~~~~
   drivers/gpu/drm/i915/i915_drv.h:1981:57: error: incompatible type for argument 2 of 'intel_uncore_read'
    #define I915_READ(reg__)  __I915_REG_OP(read, dev_priv, (reg__))
                                                            ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:218:8: note: in expansion of macro 'I915_READ'
     tmp = I915_READ(DSI_CMD_FRMCTL(port));
           ^~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/intel_uncore.h:287:22: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline u##x__ intel_uncore_##name__(struct intel_uncore *uncore, \
                         ^
   drivers/gpu/drm/i915/intel_uncore.h:302:1: note: in expansion of macro '__uncore_read'
    __uncore_read(read, 32, l, true)
    ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/display/icl_dsi.c:219:9: error: 'DSI_FRAME_UPDATE_REQUEST' undeclared (first use in this function); did you mean 'HDCP_REAUTH_REQUEST'?
     tmp |= DSI_FRAME_UPDATE_REQUEST;
            ^~~~~~~~~~~~~~~~~~~~~~~~
            HDCP_REAUTH_REQUEST
   drivers/gpu/drm/i915/display/icl_dsi.c:219:9: note: each undeclared identifier is reported only once for each function it appears in
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/i915_drv.h:1982:65: error: incompatible type for argument 2 of 'intel_uncore_write'
    #define I915_WRITE(reg__, val__) __I915_REG_OP(write, dev_priv, (reg__), (val__))
                                                                    ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:220:2: note: in expansion of macro 'I915_WRITE'
     I915_WRITE(DSI_CMD_FRMCTL(port), tmp);
     ^~~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/intel_uncore.h:294:20: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline void intel_uncore_##name__(struct intel_uncore *uncore, \
                       ^
   drivers/gpu/drm/i915/intel_uncore.h:308:1: note: in expansion of macro '__uncore_write'
    __uncore_write(write, 32, l, true)
    ^~~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_configure_transcoder':
   drivers/gpu/drm/i915/display/icl_dsi.c:740:11: error: 'TE_SOURCE_GPIO' undeclared (first use in this function); did you mean 'DP_SOURCE_OUI'?
       tmp |= TE_SOURCE_GPIO;
              ^~~~~~~~~~~~~~
              DP_SOURCE_OUI
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_config_util_pin':
   drivers/gpu/drm/i915/display/icl_dsi.c:1021:10: error: 'UTIL_PIN_DIRECTION_INPUT' undeclared (first use in this function); did you mean 'UTIL_PIN_PIPE_MASK'?
      tmp |= UTIL_PIN_DIRECTION_INPUT;
             ^~~~~~~~~~~~~~~~~~~~~~~~
             UTIL_PIN_PIPE_MASK
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_deconfigure_trancoder':
   drivers/gpu/drm/i915/i915_drv.h:1981:57: error: incompatible type for argument 2 of 'intel_uncore_read'
    #define I915_READ(reg__)  __I915_REG_OP(read, dev_priv, (reg__))
                                                            ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:1186:10: note: in expansion of macro 'I915_READ'
       tmp = I915_READ(DSI_CMD_FRMCTL(port));
             ^~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/intel_uncore.h:287:22: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline u##x__ intel_uncore_##name__(struct intel_uncore *uncore, \
                         ^
   drivers/gpu/drm/i915/intel_uncore.h:302:1: note: in expansion of macro '__uncore_read'
    __uncore_read(read, 32, l, true)
    ^~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:1187:12: error: 'DSI_PERIODIC_FRAME_UPDATE_ENABLE' undeclared (first use in this function); did you mean 'GEN6_MBCTL_BME_UPDATE_ENABLE'?
       tmp &= ~DSI_PERIODIC_FRAME_UPDATE_ENABLE;
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               GEN6_MBCTL_BME_UPDATE_ENABLE
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/i915_drv.h:1982:65: error: incompatible type for argument 2 of 'intel_uncore_write'
    #define I915_WRITE(reg__, val__) __I915_REG_OP(write, dev_priv, (reg__), (val__))
                                                                    ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:1188:4: note: in expansion of macro 'I915_WRITE'
       I915_WRITE(DSI_CMD_FRMCTL(port), tmp);
       ^~~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/intel_uncore.h:294:20: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline void intel_uncore_##name__(struct intel_uncore *uncore, \
                       ^
   drivers/gpu/drm/i915/intel_uncore.h:308:1: note: in expansion of macro '__uncore_write'
    __uncore_write(write, 32, l, true)
    ^~~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_is_periodic_cmd_mode':
   drivers/gpu/drm/i915/display/icl_dsi.c:1340:16: error: 'DSI_PERIODIC_FRAME_UPDATE_ENABLE' undeclared (first use in this function); did you mean 'GEN6_MBCTL_BME_UPDATE_ENABLE'?
     return (val & DSI_PERIODIC_FRAME_UPDATE_ENABLE);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   GEN6_MBCTL_BME_UPDATE_ENABLE
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_get_config':

vim +219 drivers/gpu/drm/i915/display/icl_dsi.c

    30	
    31	#include "intel_atomic.h"
    32	#include "intel_combo_phy.h"
    33	#include "intel_connector.h"
    34	#include "intel_ddi.h"
  > 35	#include "intel_dsi.h"
    36	#include "intel_panel.h"
    37	
    38	static inline int header_credits_available(struct drm_i915_private *dev_priv,
    39						   enum transcoder dsi_trans)
    40	{
    41		return (I915_READ(DSI_CMD_TXCTL(dsi_trans)) & FREE_HEADER_CREDIT_MASK)
    42			>> FREE_HEADER_CREDIT_SHIFT;
    43	}
    44	
    45	static inline int payload_credits_available(struct drm_i915_private *dev_priv,
    46						    enum transcoder dsi_trans)
    47	{
    48		return (I915_READ(DSI_CMD_TXCTL(dsi_trans)) & FREE_PLOAD_CREDIT_MASK)
    49			>> FREE_PLOAD_CREDIT_SHIFT;
    50	}
    51	
    52	static void wait_for_header_credits(struct drm_i915_private *dev_priv,
    53					    enum transcoder dsi_trans)
    54	{
    55		if (wait_for_us(header_credits_available(dev_priv, dsi_trans) >=
    56				MAX_HEADER_CREDIT, 100))
    57			DRM_ERROR("DSI header credits not released\n");
    58	}
    59	
    60	static void wait_for_payload_credits(struct drm_i915_private *dev_priv,
    61					     enum transcoder dsi_trans)
    62	{
    63		if (wait_for_us(payload_credits_available(dev_priv, dsi_trans) >=
    64				MAX_PLOAD_CREDIT, 100))
    65			DRM_ERROR("DSI payload credits not released\n");
    66	}
    67	
    68	static enum transcoder dsi_port_to_transcoder(enum port port)
    69	{
    70		if (port == PORT_A)
    71			return TRANSCODER_DSI_0;
    72		else
    73			return TRANSCODER_DSI_1;
    74	}
    75	
    76	static void wait_for_cmds_dispatched_to_panel(struct intel_encoder *encoder)
    77	{
    78		struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
    79		struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
    80		struct mipi_dsi_device *dsi;
    81		enum port port;
    82		enum transcoder dsi_trans;
    83		int ret;
    84	
    85		/* wait for header/payload credits to be released */
    86		for_each_dsi_port(port, intel_dsi->ports) {
    87			dsi_trans = dsi_port_to_transcoder(port);
    88			wait_for_header_credits(dev_priv, dsi_trans);
    89			wait_for_payload_credits(dev_priv, dsi_trans);
    90		}
    91	
    92		/* send nop DCS command */
    93		for_each_dsi_port(port, intel_dsi->ports) {
    94			dsi = intel_dsi->dsi_hosts[port]->device;
    95			dsi->mode_flags |= MIPI_DSI_MODE_LPM;
    96			dsi->channel = 0;
    97			ret = mipi_dsi_dcs_nop(dsi);
    98			if (ret < 0)
    99				DRM_ERROR("error sending DCS NOP command\n");
   100		}
   101	
   102		/* wait for header credits to be released */
   103		for_each_dsi_port(port, intel_dsi->ports) {
   104			dsi_trans = dsi_port_to_transcoder(port);
   105			wait_for_header_credits(dev_priv, dsi_trans);
   106		}
   107	
   108		/* wait for LP TX in progress bit to be cleared */
   109		for_each_dsi_port(port, intel_dsi->ports) {
   110			dsi_trans = dsi_port_to_transcoder(port);
   111			if (wait_for_us(!(I915_READ(DSI_LP_MSG(dsi_trans)) &
   112					  LPTX_IN_PROGRESS), 20))
   113				DRM_ERROR("LPTX bit not cleared\n");
   114		}
   115	}
   116	
   117	static bool add_payld_to_queue(struct intel_dsi_host *host, const u8 *data,
   118				       u32 len)
   119	{
   120		struct intel_dsi *intel_dsi = host->intel_dsi;
   121		struct drm_i915_private *dev_priv = to_i915(intel_dsi->base.base.dev);
   122		enum transcoder dsi_trans = dsi_port_to_transcoder(host->port);
   123		int free_credits;
   124		int i, j;
   125	
   126		for (i = 0; i < len; i += 4) {
   127			u32 tmp = 0;
   128	
   129			free_credits = payload_credits_available(dev_priv, dsi_trans);
   130			if (free_credits < 1) {
   131				DRM_ERROR("Payload credit not available\n");
   132				return false;
   133			}
   134	
   135			for (j = 0; j < min_t(u32, len - i, 4); j++)
   136				tmp |= *data++ << 8 * j;
   137	
   138			I915_WRITE(DSI_CMD_TXPYLD(dsi_trans), tmp);
   139		}
   140	
   141		return true;
   142	}
   143	
   144	static int dsi_send_pkt_hdr(struct intel_dsi_host *host,
   145				    struct mipi_dsi_packet pkt, bool enable_lpdt)
   146	{
   147		struct intel_dsi *intel_dsi = host->intel_dsi;
   148		struct drm_i915_private *dev_priv = to_i915(intel_dsi->base.base.dev);
   149		enum transcoder dsi_trans = dsi_port_to_transcoder(host->port);
   150		u32 tmp;
   151		int free_credits;
   152	
   153		/* check if header credit available */
   154		free_credits = header_credits_available(dev_priv, dsi_trans);
   155		if (free_credits < 1) {
   156			DRM_ERROR("send pkt header failed, not enough hdr credits\n");
   157			return -1;
   158		}
   159	
   160		tmp = I915_READ(DSI_CMD_TXHDR(dsi_trans));
   161	
   162		if (pkt.payload)
   163			tmp |= PAYLOAD_PRESENT;
   164		else
   165			tmp &= ~PAYLOAD_PRESENT;
   166	
   167		tmp &= ~VBLANK_FENCE;
   168	
   169		if (enable_lpdt)
   170			tmp |= LP_DATA_TRANSFER;
   171	
   172		tmp &= ~(PARAM_WC_MASK | VC_MASK | DT_MASK);
   173		tmp |= ((pkt.header[0] & VC_MASK) << VC_SHIFT);
   174		tmp |= ((pkt.header[0] & DT_MASK) << DT_SHIFT);
   175		tmp |= (pkt.header[1] << PARAM_WC_LOWER_SHIFT);
   176		tmp |= (pkt.header[2] << PARAM_WC_UPPER_SHIFT);
   177		I915_WRITE(DSI_CMD_TXHDR(dsi_trans), tmp);
   178	
   179		return 0;
   180	}
   181	
   182	static int dsi_send_pkt_payld(struct intel_dsi_host *host,
   183				      struct mipi_dsi_packet pkt)
   184	{
   185		/* payload queue can accept *256 bytes*, check limit */
   186		if (pkt.payload_length > MAX_PLOAD_CREDIT * 4) {
   187			DRM_ERROR("payload size exceeds max queue limit\n");
   188			return -1;
   189		}
   190	
   191		/* load data into command payload queue */
   192		if (!add_payld_to_queue(host, pkt.payload,
   193					pkt.payload_length)) {
   194			DRM_ERROR("adding payload to queue failed\n");
   195			return -1;
   196		}
   197	
   198		return 0;
   199	}
   200	
   201	void gen11_dsi_frame_update(struct intel_crtc_state *crtc_state)
   202	{
   203		struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
   204		struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
   205		u32 tmp, private_flags;
   206		enum port port;
   207	
   208		private_flags = crtc_state->hw.adjusted_mode.private_flags;
   209	
   210		/* case 1 also covers dual link */
   211		if (private_flags & I915_MODE_FLAG_DSI_USE_TE0)
   212			port = PORT_A;
   213		else if (private_flags & I915_MODE_FLAG_DSI_USE_TE1)
   214			port = PORT_B;
   215		else
   216			return;
   217	
   218		tmp = I915_READ(DSI_CMD_FRMCTL(port));
 > 219		tmp |= DSI_FRAME_UPDATE_REQUEST;
   220		I915_WRITE(DSI_CMD_FRMCTL(port), tmp);
   221	}
   222	

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 28187 bytes --]

[-- Attachment #3: Type: text/plain, Size: 159 bytes --]

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [V3 8/8] drm/i915/dsi: Initiate fame request in cmd mode
@ 2019-11-19 21:30     ` kbuild test robot
  0 siblings, 0 replies; 41+ messages in thread
From: kbuild test robot @ 2019-11-19 21:30 UTC (permalink / raw)
  To: Vandita Kulkarni; +Cc: jani.nikula, intel-gfx, kbuild-all

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

Hi Vandita,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm-intel/for-linux-next]
[cannot apply to v5.4-rc8 next-20191118]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Vandita-Kulkarni/Add-support-for-mipi-dsi-cmd-mode/20191120-015713
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: i386-defconfig (attached as .config)
compiler: gcc-7 (Debian 7.4.0-14) 7.4.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   drivers/gpu/drm/i915/display/icl_dsi.c:203:52: error: 'struct intel_crtc_state' has no member named 'uapi'
     struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
                                                       ^
   include/linux/kernel.h:993:26: note: in definition of macro 'container_of'
     void *__mptr = (void *)(ptr);     \
                             ^~~
   drivers/gpu/drm/i915/display/icl_dsi.c:203:28: note: in expansion of macro 'to_intel_crtc'
     struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
                               ^~~~~~~~~~~~~
   In file included from include/linux/ioport.h:13:0,
                    from include/linux/acpi.h:12,
                    from include/linux/i2c.h:13,
                    from include/drm/drm_crtc.h:28,
                    from include/drm/drm_atomic_helper.h:31,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:28:
   drivers/gpu/drm/i915/display/icl_dsi.c:203:52: error: 'struct intel_crtc_state' has no member named 'uapi'
     struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
                                                       ^
   include/linux/compiler.h:330:9: note: in definition of macro '__compiletime_assert'
      if (!(condition))     \
            ^~~~~~~~~
   include/linux/compiler.h:350:2: note: in expansion of macro '_compiletime_assert'
     _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
     ^~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
    #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                        ^~~~~~~~~~~~~~~~~~
   include/linux/kernel.h:994:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
     BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
     ^~~~~~~~~~~~~~~~
   include/linux/kernel.h:994:20: note: in expansion of macro '__same_type'
     BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
                       ^~~~~~~~~~~
   drivers/gpu/drm/i915/display/intel_display_types.h:1125:26: note: in expansion of macro 'container_of'
    #define to_intel_crtc(x) container_of(x, struct intel_crtc, base)
                             ^~~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:203:28: note: in expansion of macro 'to_intel_crtc'
     struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
                               ^~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:203:52: error: 'struct intel_crtc_state' has no member named 'uapi'
     struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
                                                       ^
   include/linux/compiler.h:330:9: note: in definition of macro '__compiletime_assert'
      if (!(condition))     \
            ^~~~~~~~~
   include/linux/compiler.h:350:2: note: in expansion of macro '_compiletime_assert'
     _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
     ^~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
    #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                        ^~~~~~~~~~~~~~~~~~
   include/linux/kernel.h:994:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
     BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
     ^~~~~~~~~~~~~~~~
   include/linux/kernel.h:995:6: note: in expansion of macro '__same_type'
        !__same_type(*(ptr), void),   \
         ^~~~~~~~~~~
   drivers/gpu/drm/i915/display/intel_display_types.h:1125:26: note: in expansion of macro 'container_of'
    #define to_intel_crtc(x) container_of(x, struct intel_crtc, base)
                             ^~~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:203:28: note: in expansion of macro 'to_intel_crtc'
     struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
                               ^~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:208:28: error: 'struct intel_crtc_state' has no member named 'hw'
     private_flags = crtc_state->hw.adjusted_mode.private_flags;
                               ^~
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/display/icl_dsi.c:218:18: error: implicit declaration of function 'DSI_CMD_FRMCTL'; did you mean 'DSI_CMD_RXCTL'? [-Werror=implicit-function-declaration]
     tmp = I915_READ(DSI_CMD_FRMCTL(port));
                     ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:218:8: note: in expansion of macro 'I915_READ'
     tmp = I915_READ(DSI_CMD_FRMCTL(port));
           ^~~~~~~~~
   drivers/gpu/drm/i915/i915_drv.h:1981:57: error: incompatible type for argument 2 of 'intel_uncore_read'
    #define I915_READ(reg__)  __I915_REG_OP(read, dev_priv, (reg__))
                                                            ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:218:8: note: in expansion of macro 'I915_READ'
     tmp = I915_READ(DSI_CMD_FRMCTL(port));
           ^~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/intel_uncore.h:287:22: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline u##x__ intel_uncore_##name__(struct intel_uncore *uncore, \
                         ^
   drivers/gpu/drm/i915/intel_uncore.h:302:1: note: in expansion of macro '__uncore_read'
    __uncore_read(read, 32, l, true)
    ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/display/icl_dsi.c:219:9: error: 'DSI_FRAME_UPDATE_REQUEST' undeclared (first use in this function); did you mean 'HDCP_REAUTH_REQUEST'?
     tmp |= DSI_FRAME_UPDATE_REQUEST;
            ^~~~~~~~~~~~~~~~~~~~~~~~
            HDCP_REAUTH_REQUEST
   drivers/gpu/drm/i915/display/icl_dsi.c:219:9: note: each undeclared identifier is reported only once for each function it appears in
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/i915_drv.h:1982:65: error: incompatible type for argument 2 of 'intel_uncore_write'
    #define I915_WRITE(reg__, val__) __I915_REG_OP(write, dev_priv, (reg__), (val__))
                                                                    ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:220:2: note: in expansion of macro 'I915_WRITE'
     I915_WRITE(DSI_CMD_FRMCTL(port), tmp);
     ^~~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/intel_uncore.h:294:20: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline void intel_uncore_##name__(struct intel_uncore *uncore, \
                       ^
   drivers/gpu/drm/i915/intel_uncore.h:308:1: note: in expansion of macro '__uncore_write'
    __uncore_write(write, 32, l, true)
    ^~~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_configure_transcoder':
   drivers/gpu/drm/i915/display/icl_dsi.c:740:11: error: 'TE_SOURCE_GPIO' undeclared (first use in this function); did you mean 'DP_SOURCE_OUI'?
       tmp |= TE_SOURCE_GPIO;
              ^~~~~~~~~~~~~~
              DP_SOURCE_OUI
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_config_util_pin':
   drivers/gpu/drm/i915/display/icl_dsi.c:1021:10: error: 'UTIL_PIN_DIRECTION_INPUT' undeclared (first use in this function); did you mean 'UTIL_PIN_PIPE_MASK'?
      tmp |= UTIL_PIN_DIRECTION_INPUT;
             ^~~~~~~~~~~~~~~~~~~~~~~~
             UTIL_PIN_PIPE_MASK
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_deconfigure_trancoder':
   drivers/gpu/drm/i915/i915_drv.h:1981:57: error: incompatible type for argument 2 of 'intel_uncore_read'
    #define I915_READ(reg__)  __I915_REG_OP(read, dev_priv, (reg__))
                                                            ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:1186:10: note: in expansion of macro 'I915_READ'
       tmp = I915_READ(DSI_CMD_FRMCTL(port));
             ^~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/intel_uncore.h:287:22: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline u##x__ intel_uncore_##name__(struct intel_uncore *uncore, \
                         ^
   drivers/gpu/drm/i915/intel_uncore.h:302:1: note: in expansion of macro '__uncore_read'
    __uncore_read(read, 32, l, true)
    ^~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:1187:12: error: 'DSI_PERIODIC_FRAME_UPDATE_ENABLE' undeclared (first use in this function); did you mean 'GEN6_MBCTL_BME_UPDATE_ENABLE'?
       tmp &= ~DSI_PERIODIC_FRAME_UPDATE_ENABLE;
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               GEN6_MBCTL_BME_UPDATE_ENABLE
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/i915_drv.h:1982:65: error: incompatible type for argument 2 of 'intel_uncore_write'
    #define I915_WRITE(reg__, val__) __I915_REG_OP(write, dev_priv, (reg__), (val__))
                                                                    ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:1188:4: note: in expansion of macro 'I915_WRITE'
       I915_WRITE(DSI_CMD_FRMCTL(port), tmp);
       ^~~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/intel_uncore.h:294:20: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline void intel_uncore_##name__(struct intel_uncore *uncore, \
                       ^
   drivers/gpu/drm/i915/intel_uncore.h:308:1: note: in expansion of macro '__uncore_write'
    __uncore_write(write, 32, l, true)
    ^~~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_is_periodic_cmd_mode':
   drivers/gpu/drm/i915/display/icl_dsi.c:1340:16: error: 'DSI_PERIODIC_FRAME_UPDATE_ENABLE' undeclared (first use in this function); did you mean 'GEN6_MBCTL_BME_UPDATE_ENABLE'?
     return (val & DSI_PERIODIC_FRAME_UPDATE_ENABLE);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   GEN6_MBCTL_BME_UPDATE_ENABLE
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_get_config':

vim +219 drivers/gpu/drm/i915/display/icl_dsi.c

    30	
    31	#include "intel_atomic.h"
    32	#include "intel_combo_phy.h"
    33	#include "intel_connector.h"
    34	#include "intel_ddi.h"
  > 35	#include "intel_dsi.h"
    36	#include "intel_panel.h"
    37	
    38	static inline int header_credits_available(struct drm_i915_private *dev_priv,
    39						   enum transcoder dsi_trans)
    40	{
    41		return (I915_READ(DSI_CMD_TXCTL(dsi_trans)) & FREE_HEADER_CREDIT_MASK)
    42			>> FREE_HEADER_CREDIT_SHIFT;
    43	}
    44	
    45	static inline int payload_credits_available(struct drm_i915_private *dev_priv,
    46						    enum transcoder dsi_trans)
    47	{
    48		return (I915_READ(DSI_CMD_TXCTL(dsi_trans)) & FREE_PLOAD_CREDIT_MASK)
    49			>> FREE_PLOAD_CREDIT_SHIFT;
    50	}
    51	
    52	static void wait_for_header_credits(struct drm_i915_private *dev_priv,
    53					    enum transcoder dsi_trans)
    54	{
    55		if (wait_for_us(header_credits_available(dev_priv, dsi_trans) >=
    56				MAX_HEADER_CREDIT, 100))
    57			DRM_ERROR("DSI header credits not released\n");
    58	}
    59	
    60	static void wait_for_payload_credits(struct drm_i915_private *dev_priv,
    61					     enum transcoder dsi_trans)
    62	{
    63		if (wait_for_us(payload_credits_available(dev_priv, dsi_trans) >=
    64				MAX_PLOAD_CREDIT, 100))
    65			DRM_ERROR("DSI payload credits not released\n");
    66	}
    67	
    68	static enum transcoder dsi_port_to_transcoder(enum port port)
    69	{
    70		if (port == PORT_A)
    71			return TRANSCODER_DSI_0;
    72		else
    73			return TRANSCODER_DSI_1;
    74	}
    75	
    76	static void wait_for_cmds_dispatched_to_panel(struct intel_encoder *encoder)
    77	{
    78		struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
    79		struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
    80		struct mipi_dsi_device *dsi;
    81		enum port port;
    82		enum transcoder dsi_trans;
    83		int ret;
    84	
    85		/* wait for header/payload credits to be released */
    86		for_each_dsi_port(port, intel_dsi->ports) {
    87			dsi_trans = dsi_port_to_transcoder(port);
    88			wait_for_header_credits(dev_priv, dsi_trans);
    89			wait_for_payload_credits(dev_priv, dsi_trans);
    90		}
    91	
    92		/* send nop DCS command */
    93		for_each_dsi_port(port, intel_dsi->ports) {
    94			dsi = intel_dsi->dsi_hosts[port]->device;
    95			dsi->mode_flags |= MIPI_DSI_MODE_LPM;
    96			dsi->channel = 0;
    97			ret = mipi_dsi_dcs_nop(dsi);
    98			if (ret < 0)
    99				DRM_ERROR("error sending DCS NOP command\n");
   100		}
   101	
   102		/* wait for header credits to be released */
   103		for_each_dsi_port(port, intel_dsi->ports) {
   104			dsi_trans = dsi_port_to_transcoder(port);
   105			wait_for_header_credits(dev_priv, dsi_trans);
   106		}
   107	
   108		/* wait for LP TX in progress bit to be cleared */
   109		for_each_dsi_port(port, intel_dsi->ports) {
   110			dsi_trans = dsi_port_to_transcoder(port);
   111			if (wait_for_us(!(I915_READ(DSI_LP_MSG(dsi_trans)) &
   112					  LPTX_IN_PROGRESS), 20))
   113				DRM_ERROR("LPTX bit not cleared\n");
   114		}
   115	}
   116	
   117	static bool add_payld_to_queue(struct intel_dsi_host *host, const u8 *data,
   118				       u32 len)
   119	{
   120		struct intel_dsi *intel_dsi = host->intel_dsi;
   121		struct drm_i915_private *dev_priv = to_i915(intel_dsi->base.base.dev);
   122		enum transcoder dsi_trans = dsi_port_to_transcoder(host->port);
   123		int free_credits;
   124		int i, j;
   125	
   126		for (i = 0; i < len; i += 4) {
   127			u32 tmp = 0;
   128	
   129			free_credits = payload_credits_available(dev_priv, dsi_trans);
   130			if (free_credits < 1) {
   131				DRM_ERROR("Payload credit not available\n");
   132				return false;
   133			}
   134	
   135			for (j = 0; j < min_t(u32, len - i, 4); j++)
   136				tmp |= *data++ << 8 * j;
   137	
   138			I915_WRITE(DSI_CMD_TXPYLD(dsi_trans), tmp);
   139		}
   140	
   141		return true;
   142	}
   143	
   144	static int dsi_send_pkt_hdr(struct intel_dsi_host *host,
   145				    struct mipi_dsi_packet pkt, bool enable_lpdt)
   146	{
   147		struct intel_dsi *intel_dsi = host->intel_dsi;
   148		struct drm_i915_private *dev_priv = to_i915(intel_dsi->base.base.dev);
   149		enum transcoder dsi_trans = dsi_port_to_transcoder(host->port);
   150		u32 tmp;
   151		int free_credits;
   152	
   153		/* check if header credit available */
   154		free_credits = header_credits_available(dev_priv, dsi_trans);
   155		if (free_credits < 1) {
   156			DRM_ERROR("send pkt header failed, not enough hdr credits\n");
   157			return -1;
   158		}
   159	
   160		tmp = I915_READ(DSI_CMD_TXHDR(dsi_trans));
   161	
   162		if (pkt.payload)
   163			tmp |= PAYLOAD_PRESENT;
   164		else
   165			tmp &= ~PAYLOAD_PRESENT;
   166	
   167		tmp &= ~VBLANK_FENCE;
   168	
   169		if (enable_lpdt)
   170			tmp |= LP_DATA_TRANSFER;
   171	
   172		tmp &= ~(PARAM_WC_MASK | VC_MASK | DT_MASK);
   173		tmp |= ((pkt.header[0] & VC_MASK) << VC_SHIFT);
   174		tmp |= ((pkt.header[0] & DT_MASK) << DT_SHIFT);
   175		tmp |= (pkt.header[1] << PARAM_WC_LOWER_SHIFT);
   176		tmp |= (pkt.header[2] << PARAM_WC_UPPER_SHIFT);
   177		I915_WRITE(DSI_CMD_TXHDR(dsi_trans), tmp);
   178	
   179		return 0;
   180	}
   181	
   182	static int dsi_send_pkt_payld(struct intel_dsi_host *host,
   183				      struct mipi_dsi_packet pkt)
   184	{
   185		/* payload queue can accept *256 bytes*, check limit */
   186		if (pkt.payload_length > MAX_PLOAD_CREDIT * 4) {
   187			DRM_ERROR("payload size exceeds max queue limit\n");
   188			return -1;
   189		}
   190	
   191		/* load data into command payload queue */
   192		if (!add_payld_to_queue(host, pkt.payload,
   193					pkt.payload_length)) {
   194			DRM_ERROR("adding payload to queue failed\n");
   195			return -1;
   196		}
   197	
   198		return 0;
   199	}
   200	
   201	void gen11_dsi_frame_update(struct intel_crtc_state *crtc_state)
   202	{
   203		struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
   204		struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
   205		u32 tmp, private_flags;
   206		enum port port;
   207	
   208		private_flags = crtc_state->hw.adjusted_mode.private_flags;
   209	
   210		/* case 1 also covers dual link */
   211		if (private_flags & I915_MODE_FLAG_DSI_USE_TE0)
   212			port = PORT_A;
   213		else if (private_flags & I915_MODE_FLAG_DSI_USE_TE1)
   214			port = PORT_B;
   215		else
   216			return;
   217	
   218		tmp = I915_READ(DSI_CMD_FRMCTL(port));
 > 219		tmp |= DSI_FRAME_UPDATE_REQUEST;
   220		I915_WRITE(DSI_CMD_FRMCTL(port), tmp);
   221	}
   222	

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 28187 bytes --]

[-- Attachment #3: Type: text/plain, Size: 159 bytes --]

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [V3 8/8] drm/i915/dsi: Initiate fame request in cmd mode
@ 2019-11-19 21:30     ` kbuild test robot
  0 siblings, 0 replies; 41+ messages in thread
From: kbuild test robot @ 2019-11-19 21:30 UTC (permalink / raw)
  To: kbuild-all

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

Hi Vandita,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm-intel/for-linux-next]
[cannot apply to v5.4-rc8 next-20191118]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Vandita-Kulkarni/Add-support-for-mipi-dsi-cmd-mode/20191120-015713
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: i386-defconfig (attached as .config)
compiler: gcc-7 (Debian 7.4.0-14) 7.4.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   drivers/gpu/drm/i915/display/icl_dsi.c:203:52: error: 'struct intel_crtc_state' has no member named 'uapi'
     struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
                                                       ^
   include/linux/kernel.h:993:26: note: in definition of macro 'container_of'
     void *__mptr = (void *)(ptr);     \
                             ^~~
   drivers/gpu/drm/i915/display/icl_dsi.c:203:28: note: in expansion of macro 'to_intel_crtc'
     struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
                               ^~~~~~~~~~~~~
   In file included from include/linux/ioport.h:13:0,
                    from include/linux/acpi.h:12,
                    from include/linux/i2c.h:13,
                    from include/drm/drm_crtc.h:28,
                    from include/drm/drm_atomic_helper.h:31,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:28:
   drivers/gpu/drm/i915/display/icl_dsi.c:203:52: error: 'struct intel_crtc_state' has no member named 'uapi'
     struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
                                                       ^
   include/linux/compiler.h:330:9: note: in definition of macro '__compiletime_assert'
      if (!(condition))     \
            ^~~~~~~~~
   include/linux/compiler.h:350:2: note: in expansion of macro '_compiletime_assert'
     _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
     ^~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
    #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                        ^~~~~~~~~~~~~~~~~~
   include/linux/kernel.h:994:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
     BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
     ^~~~~~~~~~~~~~~~
   include/linux/kernel.h:994:20: note: in expansion of macro '__same_type'
     BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
                       ^~~~~~~~~~~
   drivers/gpu/drm/i915/display/intel_display_types.h:1125:26: note: in expansion of macro 'container_of'
    #define to_intel_crtc(x) container_of(x, struct intel_crtc, base)
                             ^~~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:203:28: note: in expansion of macro 'to_intel_crtc'
     struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
                               ^~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:203:52: error: 'struct intel_crtc_state' has no member named 'uapi'
     struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
                                                       ^
   include/linux/compiler.h:330:9: note: in definition of macro '__compiletime_assert'
      if (!(condition))     \
            ^~~~~~~~~
   include/linux/compiler.h:350:2: note: in expansion of macro '_compiletime_assert'
     _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
     ^~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
    #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                        ^~~~~~~~~~~~~~~~~~
   include/linux/kernel.h:994:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
     BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
     ^~~~~~~~~~~~~~~~
   include/linux/kernel.h:995:6: note: in expansion of macro '__same_type'
        !__same_type(*(ptr), void),   \
         ^~~~~~~~~~~
   drivers/gpu/drm/i915/display/intel_display_types.h:1125:26: note: in expansion of macro 'container_of'
    #define to_intel_crtc(x) container_of(x, struct intel_crtc, base)
                             ^~~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:203:28: note: in expansion of macro 'to_intel_crtc'
     struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
                               ^~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:208:28: error: 'struct intel_crtc_state' has no member named 'hw'
     private_flags = crtc_state->hw.adjusted_mode.private_flags;
                               ^~
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/display/icl_dsi.c:218:18: error: implicit declaration of function 'DSI_CMD_FRMCTL'; did you mean 'DSI_CMD_RXCTL'? [-Werror=implicit-function-declaration]
     tmp = I915_READ(DSI_CMD_FRMCTL(port));
                     ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:218:8: note: in expansion of macro 'I915_READ'
     tmp = I915_READ(DSI_CMD_FRMCTL(port));
           ^~~~~~~~~
   drivers/gpu/drm/i915/i915_drv.h:1981:57: error: incompatible type for argument 2 of 'intel_uncore_read'
    #define I915_READ(reg__)  __I915_REG_OP(read, dev_priv, (reg__))
                                                            ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:218:8: note: in expansion of macro 'I915_READ'
     tmp = I915_READ(DSI_CMD_FRMCTL(port));
           ^~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/intel_uncore.h:287:22: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline u##x__ intel_uncore_##name__(struct intel_uncore *uncore, \
                         ^
   drivers/gpu/drm/i915/intel_uncore.h:302:1: note: in expansion of macro '__uncore_read'
    __uncore_read(read, 32, l, true)
    ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/display/icl_dsi.c:219:9: error: 'DSI_FRAME_UPDATE_REQUEST' undeclared (first use in this function); did you mean 'HDCP_REAUTH_REQUEST'?
     tmp |= DSI_FRAME_UPDATE_REQUEST;
            ^~~~~~~~~~~~~~~~~~~~~~~~
            HDCP_REAUTH_REQUEST
   drivers/gpu/drm/i915/display/icl_dsi.c:219:9: note: each undeclared identifier is reported only once for each function it appears in
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/i915_drv.h:1982:65: error: incompatible type for argument 2 of 'intel_uncore_write'
    #define I915_WRITE(reg__, val__) __I915_REG_OP(write, dev_priv, (reg__), (val__))
                                                                    ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:220:2: note: in expansion of macro 'I915_WRITE'
     I915_WRITE(DSI_CMD_FRMCTL(port), tmp);
     ^~~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/intel_uncore.h:294:20: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline void intel_uncore_##name__(struct intel_uncore *uncore, \
                       ^
   drivers/gpu/drm/i915/intel_uncore.h:308:1: note: in expansion of macro '__uncore_write'
    __uncore_write(write, 32, l, true)
    ^~~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_configure_transcoder':
   drivers/gpu/drm/i915/display/icl_dsi.c:740:11: error: 'TE_SOURCE_GPIO' undeclared (first use in this function); did you mean 'DP_SOURCE_OUI'?
       tmp |= TE_SOURCE_GPIO;
              ^~~~~~~~~~~~~~
              DP_SOURCE_OUI
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_config_util_pin':
   drivers/gpu/drm/i915/display/icl_dsi.c:1021:10: error: 'UTIL_PIN_DIRECTION_INPUT' undeclared (first use in this function); did you mean 'UTIL_PIN_PIPE_MASK'?
      tmp |= UTIL_PIN_DIRECTION_INPUT;
             ^~~~~~~~~~~~~~~~~~~~~~~~
             UTIL_PIN_PIPE_MASK
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_deconfigure_trancoder':
   drivers/gpu/drm/i915/i915_drv.h:1981:57: error: incompatible type for argument 2 of 'intel_uncore_read'
    #define I915_READ(reg__)  __I915_REG_OP(read, dev_priv, (reg__))
                                                            ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:1186:10: note: in expansion of macro 'I915_READ'
       tmp = I915_READ(DSI_CMD_FRMCTL(port));
             ^~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/intel_uncore.h:287:22: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline u##x__ intel_uncore_##name__(struct intel_uncore *uncore, \
                         ^
   drivers/gpu/drm/i915/intel_uncore.h:302:1: note: in expansion of macro '__uncore_read'
    __uncore_read(read, 32, l, true)
    ^~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:1187:12: error: 'DSI_PERIODIC_FRAME_UPDATE_ENABLE' undeclared (first use in this function); did you mean 'GEN6_MBCTL_BME_UPDATE_ENABLE'?
       tmp &= ~DSI_PERIODIC_FRAME_UPDATE_ENABLE;
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               GEN6_MBCTL_BME_UPDATE_ENABLE
   In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/i915_drv.h:1982:65: error: incompatible type for argument 2 of 'intel_uncore_write'
    #define I915_WRITE(reg__, val__) __I915_REG_OP(write, dev_priv, (reg__), (val__))
                                                                    ^
   drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
     intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
                                                ^~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c:1188:4: note: in expansion of macro 'I915_WRITE'
       I915_WRITE(DSI_CMD_FRMCTL(port), tmp);
       ^~~~~~~~~~
   In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:81,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/display/intel_dsi.h:30,
                    from drivers/gpu/drm/i915/display/icl_dsi.c:35:
   drivers/gpu/drm/i915/intel_uncore.h:294:20: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
    static inline void intel_uncore_##name__(struct intel_uncore *uncore, \
                       ^
   drivers/gpu/drm/i915/intel_uncore.h:308:1: note: in expansion of macro '__uncore_write'
    __uncore_write(write, 32, l, true)
    ^~~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_is_periodic_cmd_mode':
   drivers/gpu/drm/i915/display/icl_dsi.c:1340:16: error: 'DSI_PERIODIC_FRAME_UPDATE_ENABLE' undeclared (first use in this function); did you mean 'GEN6_MBCTL_BME_UPDATE_ENABLE'?
     return (val & DSI_PERIODIC_FRAME_UPDATE_ENABLE);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   GEN6_MBCTL_BME_UPDATE_ENABLE
   drivers/gpu/drm/i915/display/icl_dsi.c: In function 'gen11_dsi_get_config':

vim +219 drivers/gpu/drm/i915/display/icl_dsi.c

    30	
    31	#include "intel_atomic.h"
    32	#include "intel_combo_phy.h"
    33	#include "intel_connector.h"
    34	#include "intel_ddi.h"
  > 35	#include "intel_dsi.h"
    36	#include "intel_panel.h"
    37	
    38	static inline int header_credits_available(struct drm_i915_private *dev_priv,
    39						   enum transcoder dsi_trans)
    40	{
    41		return (I915_READ(DSI_CMD_TXCTL(dsi_trans)) & FREE_HEADER_CREDIT_MASK)
    42			>> FREE_HEADER_CREDIT_SHIFT;
    43	}
    44	
    45	static inline int payload_credits_available(struct drm_i915_private *dev_priv,
    46						    enum transcoder dsi_trans)
    47	{
    48		return (I915_READ(DSI_CMD_TXCTL(dsi_trans)) & FREE_PLOAD_CREDIT_MASK)
    49			>> FREE_PLOAD_CREDIT_SHIFT;
    50	}
    51	
    52	static void wait_for_header_credits(struct drm_i915_private *dev_priv,
    53					    enum transcoder dsi_trans)
    54	{
    55		if (wait_for_us(header_credits_available(dev_priv, dsi_trans) >=
    56				MAX_HEADER_CREDIT, 100))
    57			DRM_ERROR("DSI header credits not released\n");
    58	}
    59	
    60	static void wait_for_payload_credits(struct drm_i915_private *dev_priv,
    61					     enum transcoder dsi_trans)
    62	{
    63		if (wait_for_us(payload_credits_available(dev_priv, dsi_trans) >=
    64				MAX_PLOAD_CREDIT, 100))
    65			DRM_ERROR("DSI payload credits not released\n");
    66	}
    67	
    68	static enum transcoder dsi_port_to_transcoder(enum port port)
    69	{
    70		if (port == PORT_A)
    71			return TRANSCODER_DSI_0;
    72		else
    73			return TRANSCODER_DSI_1;
    74	}
    75	
    76	static void wait_for_cmds_dispatched_to_panel(struct intel_encoder *encoder)
    77	{
    78		struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
    79		struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
    80		struct mipi_dsi_device *dsi;
    81		enum port port;
    82		enum transcoder dsi_trans;
    83		int ret;
    84	
    85		/* wait for header/payload credits to be released */
    86		for_each_dsi_port(port, intel_dsi->ports) {
    87			dsi_trans = dsi_port_to_transcoder(port);
    88			wait_for_header_credits(dev_priv, dsi_trans);
    89			wait_for_payload_credits(dev_priv, dsi_trans);
    90		}
    91	
    92		/* send nop DCS command */
    93		for_each_dsi_port(port, intel_dsi->ports) {
    94			dsi = intel_dsi->dsi_hosts[port]->device;
    95			dsi->mode_flags |= MIPI_DSI_MODE_LPM;
    96			dsi->channel = 0;
    97			ret = mipi_dsi_dcs_nop(dsi);
    98			if (ret < 0)
    99				DRM_ERROR("error sending DCS NOP command\n");
   100		}
   101	
   102		/* wait for header credits to be released */
   103		for_each_dsi_port(port, intel_dsi->ports) {
   104			dsi_trans = dsi_port_to_transcoder(port);
   105			wait_for_header_credits(dev_priv, dsi_trans);
   106		}
   107	
   108		/* wait for LP TX in progress bit to be cleared */
   109		for_each_dsi_port(port, intel_dsi->ports) {
   110			dsi_trans = dsi_port_to_transcoder(port);
   111			if (wait_for_us(!(I915_READ(DSI_LP_MSG(dsi_trans)) &
   112					  LPTX_IN_PROGRESS), 20))
   113				DRM_ERROR("LPTX bit not cleared\n");
   114		}
   115	}
   116	
   117	static bool add_payld_to_queue(struct intel_dsi_host *host, const u8 *data,
   118				       u32 len)
   119	{
   120		struct intel_dsi *intel_dsi = host->intel_dsi;
   121		struct drm_i915_private *dev_priv = to_i915(intel_dsi->base.base.dev);
   122		enum transcoder dsi_trans = dsi_port_to_transcoder(host->port);
   123		int free_credits;
   124		int i, j;
   125	
   126		for (i = 0; i < len; i += 4) {
   127			u32 tmp = 0;
   128	
   129			free_credits = payload_credits_available(dev_priv, dsi_trans);
   130			if (free_credits < 1) {
   131				DRM_ERROR("Payload credit not available\n");
   132				return false;
   133			}
   134	
   135			for (j = 0; j < min_t(u32, len - i, 4); j++)
   136				tmp |= *data++ << 8 * j;
   137	
   138			I915_WRITE(DSI_CMD_TXPYLD(dsi_trans), tmp);
   139		}
   140	
   141		return true;
   142	}
   143	
   144	static int dsi_send_pkt_hdr(struct intel_dsi_host *host,
   145				    struct mipi_dsi_packet pkt, bool enable_lpdt)
   146	{
   147		struct intel_dsi *intel_dsi = host->intel_dsi;
   148		struct drm_i915_private *dev_priv = to_i915(intel_dsi->base.base.dev);
   149		enum transcoder dsi_trans = dsi_port_to_transcoder(host->port);
   150		u32 tmp;
   151		int free_credits;
   152	
   153		/* check if header credit available */
   154		free_credits = header_credits_available(dev_priv, dsi_trans);
   155		if (free_credits < 1) {
   156			DRM_ERROR("send pkt header failed, not enough hdr credits\n");
   157			return -1;
   158		}
   159	
   160		tmp = I915_READ(DSI_CMD_TXHDR(dsi_trans));
   161	
   162		if (pkt.payload)
   163			tmp |= PAYLOAD_PRESENT;
   164		else
   165			tmp &= ~PAYLOAD_PRESENT;
   166	
   167		tmp &= ~VBLANK_FENCE;
   168	
   169		if (enable_lpdt)
   170			tmp |= LP_DATA_TRANSFER;
   171	
   172		tmp &= ~(PARAM_WC_MASK | VC_MASK | DT_MASK);
   173		tmp |= ((pkt.header[0] & VC_MASK) << VC_SHIFT);
   174		tmp |= ((pkt.header[0] & DT_MASK) << DT_SHIFT);
   175		tmp |= (pkt.header[1] << PARAM_WC_LOWER_SHIFT);
   176		tmp |= (pkt.header[2] << PARAM_WC_UPPER_SHIFT);
   177		I915_WRITE(DSI_CMD_TXHDR(dsi_trans), tmp);
   178	
   179		return 0;
   180	}
   181	
   182	static int dsi_send_pkt_payld(struct intel_dsi_host *host,
   183				      struct mipi_dsi_packet pkt)
   184	{
   185		/* payload queue can accept *256 bytes*, check limit */
   186		if (pkt.payload_length > MAX_PLOAD_CREDIT * 4) {
   187			DRM_ERROR("payload size exceeds max queue limit\n");
   188			return -1;
   189		}
   190	
   191		/* load data into command payload queue */
   192		if (!add_payld_to_queue(host, pkt.payload,
   193					pkt.payload_length)) {
   194			DRM_ERROR("adding payload to queue failed\n");
   195			return -1;
   196		}
   197	
   198		return 0;
   199	}
   200	
   201	void gen11_dsi_frame_update(struct intel_crtc_state *crtc_state)
   202	{
   203		struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
   204		struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
   205		u32 tmp, private_flags;
   206		enum port port;
   207	
   208		private_flags = crtc_state->hw.adjusted_mode.private_flags;
   209	
   210		/* case 1 also covers dual link */
   211		if (private_flags & I915_MODE_FLAG_DSI_USE_TE0)
   212			port = PORT_A;
   213		else if (private_flags & I915_MODE_FLAG_DSI_USE_TE1)
   214			port = PORT_B;
   215		else
   216			return;
   217	
   218		tmp = I915_READ(DSI_CMD_FRMCTL(port));
 > 219		tmp |= DSI_FRAME_UPDATE_REQUEST;
   220		I915_WRITE(DSI_CMD_FRMCTL(port), tmp);
   221	}
   222	

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org Intel Corporation

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 28187 bytes --]

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

end of thread, other threads:[~2019-11-19 21:33 UTC | newest]

Thread overview: 41+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-19 12:33 [V3 0/8] Add support for mipi dsi cmd mode Vandita Kulkarni
2019-11-19 12:33 ` [Intel-gfx] " Vandita Kulkarni
2019-11-19 12:33 ` [V3 1/8] drm/i915/dsi: Configure transcoder operation for command mode Vandita Kulkarni
2019-11-19 12:33   ` [Intel-gfx] " Vandita Kulkarni
2019-11-19 19:40   ` kbuild test robot
2019-11-19 19:40     ` [Intel-gfx] " kbuild test robot
2019-11-19 19:40     ` kbuild test robot
2019-11-19 12:33 ` [V3 2/8] drm/i915/dsi: Add vblank calculation " Vandita Kulkarni
2019-11-19 12:33   ` [Intel-gfx] " Vandita Kulkarni
2019-11-19 12:33 ` [V3 3/8] drm/i915/dsi: Add cmd mode flags in display mode private flags Vandita Kulkarni
2019-11-19 12:33   ` [Intel-gfx] " Vandita Kulkarni
2019-11-19 12:33 ` [V3 4/8] drm/i915/dsi: Add check for periodic command mode Vandita Kulkarni
2019-11-19 12:33   ` [Intel-gfx] " Vandita Kulkarni
2019-11-19 20:05   ` kbuild test robot
2019-11-19 20:05     ` [Intel-gfx] " kbuild test robot
2019-11-19 20:05     ` kbuild test robot
2019-11-19 12:33 ` [V3 5/8] drm/i915/dsi: Use private flags to indicate TE in cmd mode Vandita Kulkarni
2019-11-19 12:33   ` [Intel-gfx] " Vandita Kulkarni
2019-11-19 12:33 ` [V3 6/8] drm/i915/dsi: Configure TE interrupt for " Vandita Kulkarni
2019-11-19 12:33   ` [Intel-gfx] " Vandita Kulkarni
2019-11-19 20:23   ` kbuild test robot
2019-11-19 20:23     ` [Intel-gfx] " kbuild test robot
2019-11-19 20:23     ` kbuild test robot
2019-11-19 12:33 ` [V3 7/8] drm/i915/dsi: Add TE handler for dsi " Vandita Kulkarni
2019-11-19 12:33   ` [Intel-gfx] " Vandita Kulkarni
2019-11-19 21:00   ` kbuild test robot
2019-11-19 21:00     ` [Intel-gfx] " kbuild test robot
2019-11-19 21:00     ` kbuild test robot
2019-11-19 12:33 ` [V3 8/8] drm/i915/dsi: Initiate fame request in " Vandita Kulkarni
2019-11-19 12:33   ` [Intel-gfx] " Vandita Kulkarni
2019-11-19 21:30   ` kbuild test robot
2019-11-19 21:30     ` [Intel-gfx] " kbuild test robot
2019-11-19 21:30     ` kbuild test robot
2019-11-19 13:09 ` ✗ Fi.CI.CHECKPATCH: warning for Add support for mipi dsi cmd mode (rev2) Patchwork
2019-11-19 13:09   ` [Intel-gfx] " Patchwork
2019-11-19 13:12 ` ✗ Fi.CI.SPARSE: " Patchwork
2019-11-19 13:12   ` [Intel-gfx] " Patchwork
2019-11-19 13:31 ` ✓ Fi.CI.BAT: success " Patchwork
2019-11-19 13:31   ` [Intel-gfx] " Patchwork
2019-11-19 19:12 ` ✗ Fi.CI.IGT: failure " Patchwork
2019-11-19 19:12   ` [Intel-gfx] " Patchwork

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