* [PATCH 0/5] drm/i915/dsi: Some DSI fixes and improvements
@ 2026-03-26 11:18 Ville Syrjala
2026-03-26 11:18 ` [PATCH 1/5] drm/i915/dsi: Don't do DSC horizontal timing adjustments in command mode Ville Syrjala
` (8 more replies)
0 siblings, 9 replies; 19+ messages in thread
From: Ville Syrjala @ 2026-03-26 11:18 UTC (permalink / raw)
To: intel-gfx; +Cc: intel-xe
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Fix one div-by-zero on the Huawei Matebook E with DSI command
mode panel, and use a few more confugration bits from the VBT
on TGL/ADL DSI.
Ville Syrjälä (5):
drm/i915/dsi: Don't do DSC horizontal timing adjustments in command
mode
drm/i915/dsi: s/eotp_pkt/eot_pkt/
drm/i915/dsi: Make 'clock_stop' boolean
drm/i915/dsi: Fill BLLPs with blanking packets if requested
drm/i915/dsi: Place clock into LP during LPM if requested
drivers/gpu/drm/i915/display/icl_dsi.c | 21 +++++++++++++-------
drivers/gpu/drm/i915/display/icl_dsi_regs.h | 3 ++-
drivers/gpu/drm/i915/display/intel_dsi.h | 7 ++++---
drivers/gpu/drm/i915/display/intel_dsi_vbt.c | 12 +++++++----
drivers/gpu/drm/i915/display/vlv_dsi.c | 2 +-
5 files changed, 29 insertions(+), 16 deletions(-)
--
2.52.0
^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH 1/5] drm/i915/dsi: Don't do DSC horizontal timing adjustments in command mode
2026-03-26 11:18 [PATCH 0/5] drm/i915/dsi: Some DSI fixes and improvements Ville Syrjala
@ 2026-03-26 11:18 ` Ville Syrjala
2026-03-26 15:20 ` Jani Nikula
2026-03-26 11:18 ` [PATCH 2/5] drm/i915/dsi: s/eotp_pkt/eot_pkt/ Ville Syrjala
` (7 subsequent siblings)
8 siblings, 1 reply; 19+ messages in thread
From: Ville Syrjala @ 2026-03-26 11:18 UTC (permalink / raw)
To: intel-gfx; +Cc: intel-xe, stable
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Stop adjusting the horizontal timing values based on the
compression ratio in command mode. Bspec seems to be telling
us to do this only in video mode, and this is also how the
Windows driver does things.
This should also fix a div-by-zero on some machines because due to
the adjusted htotal ends up being so small that we end up with
line_time_us==0 when trying to determine the vtotal value in
command mode.
Note that this doesn't actually make the display on the
Huawei Matebook E work, but at least the kernel no longer
explodes when the driver loads.
Cc: stable@vger.kernel.org
Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12045
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/icl_dsi.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c
index c04327979678..a763f2b13ff2 100644
--- a/drivers/gpu/drm/i915/display/icl_dsi.c
+++ b/drivers/gpu/drm/i915/display/icl_dsi.c
@@ -888,7 +888,7 @@ gen11_dsi_set_transcoder_timings(struct intel_encoder *encoder,
* non-compressed link speeds, and simplifies down to the ratio between
* compressed and non-compressed bpp.
*/
- if (crtc_state->dsc.compression_enable) {
+ if (is_vid_mode(intel_dsi) && crtc_state->dsc.compression_enable) {
mul = fxp_q4_to_int(crtc_state->dsc.compressed_bpp_x16);
div = mipi_dsi_pixel_format_to_bpp(intel_dsi->pixel_format);
}
@@ -1502,7 +1502,7 @@ static void gen11_dsi_get_timings(struct intel_encoder *encoder,
struct drm_display_mode *adjusted_mode =
&pipe_config->hw.adjusted_mode;
- if (pipe_config->dsc.compressed_bpp_x16) {
+ if (is_vid_mode(intel_dsi) && pipe_config->dsc.compressed_bpp_x16) {
int div = fxp_q4_to_int(pipe_config->dsc.compressed_bpp_x16);
int mul = mipi_dsi_pixel_format_to_bpp(intel_dsi->pixel_format);
--
2.52.0
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 2/5] drm/i915/dsi: s/eotp_pkt/eot_pkt/
2026-03-26 11:18 [PATCH 0/5] drm/i915/dsi: Some DSI fixes and improvements Ville Syrjala
2026-03-26 11:18 ` [PATCH 1/5] drm/i915/dsi: Don't do DSC horizontal timing adjustments in command mode Ville Syrjala
@ 2026-03-26 11:18 ` Ville Syrjala
2026-03-26 15:22 ` Jani Nikula
2026-03-26 11:18 ` [PATCH 3/5] drm/i915/dsi: Make 'clock_stop' boolean Ville Syrjala
` (6 subsequent siblings)
8 siblings, 1 reply; 19+ messages in thread
From: Ville Syrjala @ 2026-03-26 11:18 UTC (permalink / raw)
To: intel-gfx; +Cc: intel-xe
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
eotp == "End of Transmission Packet". Drop the redundant
extra 'p' from 'eotp_pkt', and make the thing a boolean
while at it.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/icl_dsi.c | 2 +-
drivers/gpu/drm/i915/display/intel_dsi.h | 3 +--
drivers/gpu/drm/i915/display/intel_dsi_vbt.c | 4 ++--
drivers/gpu/drm/i915/display/vlv_dsi.c | 2 +-
4 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c
index a763f2b13ff2..6ea37929198c 100644
--- a/drivers/gpu/drm/i915/display/icl_dsi.c
+++ b/drivers/gpu/drm/i915/display/icl_dsi.c
@@ -711,7 +711,7 @@ gen11_dsi_configure_transcoder(struct intel_encoder *encoder,
dsi_trans = dsi_port_to_transcoder(port);
tmp = intel_de_read(display, DSI_TRANS_FUNC_CONF(dsi_trans));
- if (intel_dsi->eotp_pkt)
+ if (intel_dsi->eot_pkt)
tmp &= ~EOTP_DISABLED;
else
tmp |= EOTP_DISABLED;
diff --git a/drivers/gpu/drm/i915/display/intel_dsi.h b/drivers/gpu/drm/i915/display/intel_dsi.h
index 489d26ffd235..8e39d2b52c54 100644
--- a/drivers/gpu/drm/i915/display/intel_dsi.h
+++ b/drivers/gpu/drm/i915/display/intel_dsi.h
@@ -80,8 +80,7 @@ struct intel_dsi {
/* NON_BURST_SYNC_PULSE, NON_BURST_SYNC_EVENTS, or BURST_MODE */
int video_mode;
- /* eot for MIPI_EOT_DISABLE register */
- u8 eotp_pkt;
+ bool eot_pkt;
u8 clock_stop;
u8 escape_clk_div;
diff --git a/drivers/gpu/drm/i915/display/intel_dsi_vbt.c b/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
index 18755a8e613d..51f6a5b82cb2 100644
--- a/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
+++ b/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
@@ -718,7 +718,7 @@ void intel_dsi_log_params(struct intel_dsi *intel_dsi)
"burst" : "<unknown>");
drm_printf(&p, "Burst mode ratio %d\n", intel_dsi->burst_mode_ratio);
drm_printf(&p, "Reset timer %d\n", intel_dsi->rst_timer_val);
- drm_printf(&p, "Eot %s\n", str_enabled_disabled(intel_dsi->eotp_pkt));
+ drm_printf(&p, "EoT packet %s\n", str_enabled_disabled(intel_dsi->eot_pkt));
drm_printf(&p, "Clockstop %s\n", str_enabled_disabled(!intel_dsi->clock_stop));
drm_printf(&p, "Mode %s\n", intel_dsi->operation_mode ? "command" : "video");
if (intel_dsi->dual_link == DSI_DUAL_LINK_FRONT_BACK)
@@ -770,7 +770,7 @@ bool intel_dsi_vbt_init(struct intel_dsi *intel_dsi, u16 panel_id)
drm_dbg_kms(display->drm, "\n");
- intel_dsi->eotp_pkt = mipi_config->eot_pkt_disabled ? 0 : 1;
+ intel_dsi->eot_pkt = !mipi_config->eot_pkt_disabled;
intel_dsi->clock_stop = mipi_config->enable_clk_stop ? 1 : 0;
intel_dsi->lane_count = mipi_config->lane_cnt + 1;
intel_dsi->pixel_format =
diff --git a/drivers/gpu/drm/i915/display/vlv_dsi.c b/drivers/gpu/drm/i915/display/vlv_dsi.c
index 36591d724638..d4db73c184e5 100644
--- a/drivers/gpu/drm/i915/display/vlv_dsi.c
+++ b/drivers/gpu/drm/i915/display/vlv_dsi.c
@@ -1367,7 +1367,7 @@ static void intel_dsi_prepare(struct intel_encoder *encoder,
}
tmp = 0;
- if (intel_dsi->eotp_pkt == 0)
+ if (!intel_dsi->eot_pkt)
tmp |= EOT_DISABLE;
if (intel_dsi->clock_stop)
tmp |= CLOCKSTOP;
--
2.52.0
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 3/5] drm/i915/dsi: Make 'clock_stop' boolean
2026-03-26 11:18 [PATCH 0/5] drm/i915/dsi: Some DSI fixes and improvements Ville Syrjala
2026-03-26 11:18 ` [PATCH 1/5] drm/i915/dsi: Don't do DSC horizontal timing adjustments in command mode Ville Syrjala
2026-03-26 11:18 ` [PATCH 2/5] drm/i915/dsi: s/eotp_pkt/eot_pkt/ Ville Syrjala
@ 2026-03-26 11:18 ` Ville Syrjala
2026-03-26 13:40 ` Jani Nikula
2026-03-26 11:18 ` [PATCH 4/5] drm/i915/dsi: Fill BLLPs with blanking packets if requested Ville Syrjala
` (5 subsequent siblings)
8 siblings, 1 reply; 19+ messages in thread
From: Ville Syrjala @ 2026-03-26 11:18 UTC (permalink / raw)
To: intel-gfx; +Cc: intel-xe
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
The DSI 'clock_stop' parameter is a boolean, so use a real
'bool' for it. And pimp the debug print while at it.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/intel_dsi.h | 2 +-
drivers/gpu/drm/i915/display/intel_dsi_vbt.c | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_dsi.h b/drivers/gpu/drm/i915/display/intel_dsi.h
index 8e39d2b52c54..0023ac341aa0 100644
--- a/drivers/gpu/drm/i915/display/intel_dsi.h
+++ b/drivers/gpu/drm/i915/display/intel_dsi.h
@@ -81,7 +81,7 @@ struct intel_dsi {
int video_mode;
bool eot_pkt;
- u8 clock_stop;
+ bool clock_stop;
u8 escape_clk_div;
u8 dual_link;
diff --git a/drivers/gpu/drm/i915/display/intel_dsi_vbt.c b/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
index 51f6a5b82cb2..23da7f5f9578 100644
--- a/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
+++ b/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
@@ -719,7 +719,7 @@ void intel_dsi_log_params(struct intel_dsi *intel_dsi)
drm_printf(&p, "Burst mode ratio %d\n", intel_dsi->burst_mode_ratio);
drm_printf(&p, "Reset timer %d\n", intel_dsi->rst_timer_val);
drm_printf(&p, "EoT packet %s\n", str_enabled_disabled(intel_dsi->eot_pkt));
- drm_printf(&p, "Clockstop %s\n", str_enabled_disabled(!intel_dsi->clock_stop));
+ drm_printf(&p, "Clock stop during BLLP %s\n", str_enabled_disabled(intel_dsi->clock_stop));
drm_printf(&p, "Mode %s\n", intel_dsi->operation_mode ? "command" : "video");
if (intel_dsi->dual_link == DSI_DUAL_LINK_FRONT_BACK)
drm_printf(&p, "Dual link: DSI_DUAL_LINK_FRONT_BACK\n");
@@ -771,7 +771,7 @@ bool intel_dsi_vbt_init(struct intel_dsi *intel_dsi, u16 panel_id)
drm_dbg_kms(display->drm, "\n");
intel_dsi->eot_pkt = !mipi_config->eot_pkt_disabled;
- intel_dsi->clock_stop = mipi_config->enable_clk_stop ? 1 : 0;
+ intel_dsi->clock_stop = mipi_config->enable_clk_stop;
intel_dsi->lane_count = mipi_config->lane_cnt + 1;
intel_dsi->pixel_format =
vbt_to_dsi_pixel_format(mipi_config->videomode_color_format);
--
2.52.0
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 4/5] drm/i915/dsi: Fill BLLPs with blanking packets if requested
2026-03-26 11:18 [PATCH 0/5] drm/i915/dsi: Some DSI fixes and improvements Ville Syrjala
` (2 preceding siblings ...)
2026-03-26 11:18 ` [PATCH 3/5] drm/i915/dsi: Make 'clock_stop' boolean Ville Syrjala
@ 2026-03-26 11:18 ` Ville Syrjala
2026-03-26 15:23 ` Jani Nikula
2026-03-26 11:18 ` [PATCH 5/5] drm/i915/dsi: Place clock into LP during LPM " Ville Syrjala
` (4 subsequent siblings)
8 siblings, 1 reply; 19+ messages in thread
From: Ville Syrjala @ 2026-03-26 11:18 UTC (permalink / raw)
To: intel-gfx; +Cc: intel-xe
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
TGL/ADL DSI can be configured to fill all BLLPs with blanking
packets. Currently we enable that always, but the VBT actually
tells us whether this is desired or not. Hook that up.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/icl_dsi.c | 9 +++++----
drivers/gpu/drm/i915/display/icl_dsi_regs.h | 2 +-
drivers/gpu/drm/i915/display/intel_dsi.h | 1 +
drivers/gpu/drm/i915/display/intel_dsi_vbt.c | 2 ++
4 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c
index 6ea37929198c..45ba02486c56 100644
--- a/drivers/gpu/drm/i915/display/icl_dsi.c
+++ b/drivers/gpu/drm/i915/display/icl_dsi.c
@@ -765,10 +765,11 @@ gen11_dsi_configure_transcoder(struct intel_encoder *encoder,
}
}
- if (DISPLAY_VER(display) >= 12) {
- if (is_vid_mode(intel_dsi))
- tmp |= BLANKING_PACKET_ENABLE;
- }
+ if (DISPLAY_VER(display) >= 12 &&
+ is_vid_mode(intel_dsi) && intel_dsi->blanking_pkt)
+ tmp |= BLANKING_PACKET_ENABLE;
+ else
+ tmp &= ~BLANKING_PACKET_ENABLE;
/* program DSI operation mode */
if (is_vid_mode(intel_dsi)) {
diff --git a/drivers/gpu/drm/i915/display/icl_dsi_regs.h b/drivers/gpu/drm/i915/display/icl_dsi_regs.h
index b601b7632339..641e8f0b8cdb 100644
--- a/drivers/gpu/drm/i915/display/icl_dsi_regs.h
+++ b/drivers/gpu/drm/i915/display/icl_dsi_regs.h
@@ -232,7 +232,7 @@
#define CALIBRATION_DISABLED (0x0 << 4)
#define CALIBRATION_ENABLED_INITIAL_ONLY (0x2 << 4)
#define CALIBRATION_ENABLED_INITIAL_PERIODIC (0x3 << 4)
-#define BLANKING_PACKET_ENABLE (1 << 2)
+#define BLANKING_PACKET_ENABLE (1 << 2) /* tgl+ */
#define S3D_ORIENTATION_LANDSCAPE (1 << 1)
#define EOTP_DISABLED (1 << 0)
diff --git a/drivers/gpu/drm/i915/display/intel_dsi.h b/drivers/gpu/drm/i915/display/intel_dsi.h
index 0023ac341aa0..f55d48e43af1 100644
--- a/drivers/gpu/drm/i915/display/intel_dsi.h
+++ b/drivers/gpu/drm/i915/display/intel_dsi.h
@@ -80,6 +80,7 @@ struct intel_dsi {
/* NON_BURST_SYNC_PULSE, NON_BURST_SYNC_EVENTS, or BURST_MODE */
int video_mode;
+ bool blanking_pkt;
bool eot_pkt;
bool clock_stop;
diff --git a/drivers/gpu/drm/i915/display/intel_dsi_vbt.c b/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
index 23da7f5f9578..c544871dac0b 100644
--- a/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
+++ b/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
@@ -718,6 +718,7 @@ void intel_dsi_log_params(struct intel_dsi *intel_dsi)
"burst" : "<unknown>");
drm_printf(&p, "Burst mode ratio %d\n", intel_dsi->burst_mode_ratio);
drm_printf(&p, "Reset timer %d\n", intel_dsi->rst_timer_val);
+ drm_printf(&p, "Blanking packets during BLLP %s\n", str_enabled_disabled(intel_dsi->blanking_pkt));
drm_printf(&p, "EoT packet %s\n", str_enabled_disabled(intel_dsi->eot_pkt));
drm_printf(&p, "Clock stop during BLLP %s\n", str_enabled_disabled(intel_dsi->clock_stop));
drm_printf(&p, "Mode %s\n", intel_dsi->operation_mode ? "command" : "video");
@@ -770,6 +771,7 @@ bool intel_dsi_vbt_init(struct intel_dsi *intel_dsi, u16 panel_id)
drm_dbg_kms(display->drm, "\n");
+ intel_dsi->blanking_pkt = mipi_config->blanking_packets_during_bllp;
intel_dsi->eot_pkt = !mipi_config->eot_pkt_disabled;
intel_dsi->clock_stop = mipi_config->enable_clk_stop;
intel_dsi->lane_count = mipi_config->lane_cnt + 1;
--
2.52.0
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 5/5] drm/i915/dsi: Place clock into LP during LPM if requested
2026-03-26 11:18 [PATCH 0/5] drm/i915/dsi: Some DSI fixes and improvements Ville Syrjala
` (3 preceding siblings ...)
2026-03-26 11:18 ` [PATCH 4/5] drm/i915/dsi: Fill BLLPs with blanking packets if requested Ville Syrjala
@ 2026-03-26 11:18 ` Ville Syrjala
2026-03-26 15:24 ` Jani Nikula
2026-03-26 11:24 ` ✗ CI.checkpatch: warning for drm/i915/dsi: Some DSI fixes and improvements Patchwork
` (3 subsequent siblings)
8 siblings, 1 reply; 19+ messages in thread
From: Ville Syrjala @ 2026-03-26 11:18 UTC (permalink / raw)
To: intel-gfx; +Cc: intel-xe
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
TGL/ADL DSI can be configured to place the clock lane into
LP state during LPM, if otherwise configured for continuous
HS clock.
Hook that up. VBT tells us whether this should be done.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/icl_dsi.c | 6 ++++++
drivers/gpu/drm/i915/display/icl_dsi_regs.h | 1 +
drivers/gpu/drm/i915/display/intel_dsi.h | 1 +
drivers/gpu/drm/i915/display/intel_dsi_vbt.c | 2 ++
4 files changed, 10 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c
index 45ba02486c56..afbaa0465842 100644
--- a/drivers/gpu/drm/i915/display/icl_dsi.c
+++ b/drivers/gpu/drm/i915/display/icl_dsi.c
@@ -729,6 +729,12 @@ gen11_dsi_configure_transcoder(struct intel_encoder *encoder,
else
tmp |= CLK_HS_CONTINUOUS;
+ if (DISPLAY_VER(display) >= 12 &&
+ intel_dsi->lp_clock_during_lpm)
+ tmp |= LP_CLK_DURING_LPM;
+ else
+ tmp &= ~LP_CLK_DURING_LPM;
+
/* configure buffer threshold limit to minimum */
tmp &= ~PIX_BUF_THRESHOLD_MASK;
tmp |= PIX_BUF_THRESHOLD_1_4;
diff --git a/drivers/gpu/drm/i915/display/icl_dsi_regs.h b/drivers/gpu/drm/i915/display/icl_dsi_regs.h
index 641e8f0b8cdb..55ab57adcb0f 100644
--- a/drivers/gpu/drm/i915/display/icl_dsi_regs.h
+++ b/drivers/gpu/drm/i915/display/icl_dsi_regs.h
@@ -227,6 +227,7 @@
#define CLK_ENTER_LP_AFTER_DATA (0x0 << 8)
#define CLK_HS_OR_LP (0x2 << 8)
#define CLK_HS_CONTINUOUS (0x3 << 8)
+#define LP_CLK_DURING_LPM (1 << 7) /* tgl+ */
#define LINK_CALIBRATION_MASK (0x3 << 4)
#define LINK_CALIBRATION_SHIFT 4
#define CALIBRATION_DISABLED (0x0 << 4)
diff --git a/drivers/gpu/drm/i915/display/intel_dsi.h b/drivers/gpu/drm/i915/display/intel_dsi.h
index f55d48e43af1..9fcdabbf3740 100644
--- a/drivers/gpu/drm/i915/display/intel_dsi.h
+++ b/drivers/gpu/drm/i915/display/intel_dsi.h
@@ -80,6 +80,7 @@ struct intel_dsi {
/* NON_BURST_SYNC_PULSE, NON_BURST_SYNC_EVENTS, or BURST_MODE */
int video_mode;
+ bool lp_clock_during_lpm;
bool blanking_pkt;
bool eot_pkt;
bool clock_stop;
diff --git a/drivers/gpu/drm/i915/display/intel_dsi_vbt.c b/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
index c544871dac0b..fe12041e913c 100644
--- a/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
+++ b/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
@@ -718,6 +718,7 @@ void intel_dsi_log_params(struct intel_dsi *intel_dsi)
"burst" : "<unknown>");
drm_printf(&p, "Burst mode ratio %d\n", intel_dsi->burst_mode_ratio);
drm_printf(&p, "Reset timer %d\n", intel_dsi->rst_timer_val);
+ drm_printf(&p, "LP clock during LPM %s\n", str_enabled_disabled(intel_dsi->lp_clock_during_lpm));
drm_printf(&p, "Blanking packets during BLLP %s\n", str_enabled_disabled(intel_dsi->blanking_pkt));
drm_printf(&p, "EoT packet %s\n", str_enabled_disabled(intel_dsi->eot_pkt));
drm_printf(&p, "Clock stop during BLLP %s\n", str_enabled_disabled(intel_dsi->clock_stop));
@@ -771,6 +772,7 @@ bool intel_dsi_vbt_init(struct intel_dsi *intel_dsi, u16 panel_id)
drm_dbg_kms(display->drm, "\n");
+ intel_dsi->lp_clock_during_lpm = mipi_config->lp_clock_during_lpm;
intel_dsi->blanking_pkt = mipi_config->blanking_packets_during_bllp;
intel_dsi->eot_pkt = !mipi_config->eot_pkt_disabled;
intel_dsi->clock_stop = mipi_config->enable_clk_stop;
--
2.52.0
^ permalink raw reply related [flat|nested] 19+ messages in thread
* ✗ CI.checkpatch: warning for drm/i915/dsi: Some DSI fixes and improvements
2026-03-26 11:18 [PATCH 0/5] drm/i915/dsi: Some DSI fixes and improvements Ville Syrjala
` (4 preceding siblings ...)
2026-03-26 11:18 ` [PATCH 5/5] drm/i915/dsi: Place clock into LP during LPM " Ville Syrjala
@ 2026-03-26 11:24 ` Patchwork
2026-03-26 11:26 ` ✓ CI.KUnit: success " Patchwork
` (2 subsequent siblings)
8 siblings, 0 replies; 19+ messages in thread
From: Patchwork @ 2026-03-26 11:24 UTC (permalink / raw)
To: Ville Syrjala; +Cc: intel-xe
== Series Details ==
Series: drm/i915/dsi: Some DSI fixes and improvements
URL : https://patchwork.freedesktop.org/series/163908/
State : warning
== Summary ==
+ KERNEL=/kernel
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools mt
Cloning into 'mt'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ git -C mt rev-list -n1 origin/master
1f57ba1afceae32108bd24770069f764d940a0e4
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit a871b73dc1b4f821abec8cf76f99e86790a9f5a4
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date: Thu Mar 26 13:18:14 2026 +0200
drm/i915/dsi: Place clock into LP during LPM if requested
TGL/ADL DSI can be configured to place the clock lane into
LP state during LPM, if otherwise configured for continuous
HS clock.
Hook that up. VBT tells us whether this should be done.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
+ /mt/dim checkpatch 2ccc868c40a9048ecf287b7bb002d73b5d25c7bf drm-intel
806cba236ae1 drm/i915/dsi: Don't do DSC horizontal timing adjustments in command mode
-:49: WARNING:MISSING_FIXES_TAG: The commit message has 'stable@', perhaps it also needs a 'Fixes:' tag?
total: 0 errors, 1 warnings, 0 checks, 16 lines checked
0d504eb27e80 drm/i915/dsi: s/eotp_pkt/eot_pkt/
6bdde5b2a24c drm/i915/dsi: Make 'clock_stop' boolean
ee79304e118d drm/i915/dsi: Fill BLLPs with blanking packets if requested
-:68: WARNING:LONG_LINE: line length of 107 exceeds 100 columns
#68: FILE: drivers/gpu/drm/i915/display/intel_dsi_vbt.c:721:
+ drm_printf(&p, "Blanking packets during BLLP %s\n", str_enabled_disabled(intel_dsi->blanking_pkt));
total: 0 errors, 1 warnings, 0 checks, 44 lines checked
a871b73dc1b4 drm/i915/dsi: Place clock into LP during LPM if requested
-:66: WARNING:LONG_LINE: line length of 105 exceeds 100 columns
#66: FILE: drivers/gpu/drm/i915/display/intel_dsi_vbt.c:721:
+ drm_printf(&p, "LP clock during LPM %s\n", str_enabled_disabled(intel_dsi->lp_clock_during_lpm));
total: 0 errors, 1 warnings, 0 checks, 40 lines checked
^ permalink raw reply [flat|nested] 19+ messages in thread
* ✓ CI.KUnit: success for drm/i915/dsi: Some DSI fixes and improvements
2026-03-26 11:18 [PATCH 0/5] drm/i915/dsi: Some DSI fixes and improvements Ville Syrjala
` (5 preceding siblings ...)
2026-03-26 11:24 ` ✗ CI.checkpatch: warning for drm/i915/dsi: Some DSI fixes and improvements Patchwork
@ 2026-03-26 11:26 ` Patchwork
2026-03-26 12:00 ` ✓ Xe.CI.BAT: " Patchwork
2026-03-27 0:36 ` ✓ Xe.CI.FULL: " Patchwork
8 siblings, 0 replies; 19+ messages in thread
From: Patchwork @ 2026-03-26 11:26 UTC (permalink / raw)
To: Ville Syrjala; +Cc: intel-xe
== Series Details ==
Series: drm/i915/dsi: Some DSI fixes and improvements
URL : https://patchwork.freedesktop.org/series/163908/
State : success
== Summary ==
+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[11:24:51] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[11:24:56] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[11:25:26] Starting KUnit Kernel (1/1)...
[11:25:26] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[11:25:27] ================== guc_buf (11 subtests) ===================
[11:25:27] [PASSED] test_smallest
[11:25:27] [PASSED] test_largest
[11:25:27] [PASSED] test_granular
[11:25:27] [PASSED] test_unique
[11:25:27] [PASSED] test_overlap
[11:25:27] [PASSED] test_reusable
[11:25:27] [PASSED] test_too_big
[11:25:27] [PASSED] test_flush
[11:25:27] [PASSED] test_lookup
[11:25:27] [PASSED] test_data
[11:25:27] [PASSED] test_class
[11:25:27] ===================== [PASSED] guc_buf =====================
[11:25:27] =================== guc_dbm (7 subtests) ===================
[11:25:27] [PASSED] test_empty
[11:25:27] [PASSED] test_default
[11:25:27] ======================== test_size ========================
[11:25:27] [PASSED] 4
[11:25:27] [PASSED] 8
[11:25:27] [PASSED] 32
[11:25:27] [PASSED] 256
[11:25:27] ==================== [PASSED] test_size ====================
[11:25:27] ======================= test_reuse ========================
[11:25:27] [PASSED] 4
[11:25:27] [PASSED] 8
[11:25:27] [PASSED] 32
[11:25:27] [PASSED] 256
[11:25:27] =================== [PASSED] test_reuse ====================
[11:25:27] =================== test_range_overlap ====================
[11:25:27] [PASSED] 4
[11:25:27] [PASSED] 8
[11:25:27] [PASSED] 32
[11:25:27] [PASSED] 256
[11:25:27] =============== [PASSED] test_range_overlap ================
[11:25:27] =================== test_range_compact ====================
[11:25:27] [PASSED] 4
[11:25:27] [PASSED] 8
[11:25:27] [PASSED] 32
[11:25:27] [PASSED] 256
[11:25:27] =============== [PASSED] test_range_compact ================
[11:25:27] ==================== test_range_spare =====================
[11:25:27] [PASSED] 4
[11:25:27] [PASSED] 8
[11:25:27] [PASSED] 32
[11:25:27] [PASSED] 256
[11:25:27] ================ [PASSED] test_range_spare =================
[11:25:27] ===================== [PASSED] guc_dbm =====================
[11:25:27] =================== guc_idm (6 subtests) ===================
[11:25:27] [PASSED] bad_init
[11:25:27] [PASSED] no_init
[11:25:27] [PASSED] init_fini
[11:25:27] [PASSED] check_used
[11:25:27] [PASSED] check_quota
[11:25:27] [PASSED] check_all
[11:25:27] ===================== [PASSED] guc_idm =====================
[11:25:27] ================== no_relay (3 subtests) ===================
[11:25:27] [PASSED] xe_drops_guc2pf_if_not_ready
[11:25:27] [PASSED] xe_drops_guc2vf_if_not_ready
[11:25:27] [PASSED] xe_rejects_send_if_not_ready
[11:25:27] ==================== [PASSED] no_relay =====================
[11:25:27] ================== pf_relay (14 subtests) ==================
[11:25:27] [PASSED] pf_rejects_guc2pf_too_short
[11:25:27] [PASSED] pf_rejects_guc2pf_too_long
[11:25:27] [PASSED] pf_rejects_guc2pf_no_payload
[11:25:27] [PASSED] pf_fails_no_payload
[11:25:27] [PASSED] pf_fails_bad_origin
[11:25:27] [PASSED] pf_fails_bad_type
[11:25:27] [PASSED] pf_txn_reports_error
[11:25:27] [PASSED] pf_txn_sends_pf2guc
[11:25:27] [PASSED] pf_sends_pf2guc
[11:25:27] [SKIPPED] pf_loopback_nop
[11:25:27] [SKIPPED] pf_loopback_echo
[11:25:27] [SKIPPED] pf_loopback_fail
[11:25:27] [SKIPPED] pf_loopback_busy
[11:25:27] [SKIPPED] pf_loopback_retry
[11:25:27] ==================== [PASSED] pf_relay =====================
[11:25:27] ================== vf_relay (3 subtests) ===================
[11:25:27] [PASSED] vf_rejects_guc2vf_too_short
[11:25:27] [PASSED] vf_rejects_guc2vf_too_long
[11:25:27] [PASSED] vf_rejects_guc2vf_no_payload
[11:25:27] ==================== [PASSED] vf_relay =====================
[11:25:27] ================ pf_gt_config (9 subtests) =================
[11:25:27] [PASSED] fair_contexts_1vf
[11:25:27] [PASSED] fair_doorbells_1vf
[11:25:27] [PASSED] fair_ggtt_1vf
[11:25:27] ====================== fair_vram_1vf ======================
[11:25:27] [PASSED] 3.50 GiB
[11:25:27] [PASSED] 11.5 GiB
[11:25:27] [PASSED] 15.5 GiB
[11:25:27] [PASSED] 31.5 GiB
[11:25:27] [PASSED] 63.5 GiB
[11:25:27] [PASSED] 1.91 GiB
[11:25:27] ================== [PASSED] fair_vram_1vf ==================
[11:25:27] ================ fair_vram_1vf_admin_only =================
[11:25:27] [PASSED] 3.50 GiB
[11:25:27] [PASSED] 11.5 GiB
[11:25:27] [PASSED] 15.5 GiB
[11:25:27] [PASSED] 31.5 GiB
[11:25:27] [PASSED] 63.5 GiB
[11:25:27] [PASSED] 1.91 GiB
[11:25:27] ============ [PASSED] fair_vram_1vf_admin_only =============
[11:25:27] ====================== fair_contexts ======================
[11:25:27] [PASSED] 1 VF
[11:25:27] [PASSED] 2 VFs
[11:25:27] [PASSED] 3 VFs
[11:25:27] [PASSED] 4 VFs
[11:25:27] [PASSED] 5 VFs
[11:25:27] [PASSED] 6 VFs
[11:25:27] [PASSED] 7 VFs
[11:25:27] [PASSED] 8 VFs
[11:25:27] [PASSED] 9 VFs
[11:25:27] [PASSED] 10 VFs
[11:25:27] [PASSED] 11 VFs
[11:25:27] [PASSED] 12 VFs
[11:25:27] [PASSED] 13 VFs
[11:25:27] [PASSED] 14 VFs
[11:25:27] [PASSED] 15 VFs
[11:25:27] [PASSED] 16 VFs
[11:25:27] [PASSED] 17 VFs
[11:25:27] [PASSED] 18 VFs
[11:25:27] [PASSED] 19 VFs
[11:25:27] [PASSED] 20 VFs
[11:25:27] [PASSED] 21 VFs
[11:25:27] [PASSED] 22 VFs
[11:25:27] [PASSED] 23 VFs
[11:25:27] [PASSED] 24 VFs
[11:25:27] [PASSED] 25 VFs
[11:25:27] [PASSED] 26 VFs
[11:25:27] [PASSED] 27 VFs
[11:25:27] [PASSED] 28 VFs
[11:25:27] [PASSED] 29 VFs
[11:25:27] [PASSED] 30 VFs
[11:25:27] [PASSED] 31 VFs
[11:25:27] [PASSED] 32 VFs
[11:25:27] [PASSED] 33 VFs
[11:25:27] [PASSED] 34 VFs
[11:25:27] [PASSED] 35 VFs
[11:25:27] [PASSED] 36 VFs
[11:25:27] [PASSED] 37 VFs
[11:25:27] [PASSED] 38 VFs
[11:25:27] [PASSED] 39 VFs
[11:25:27] [PASSED] 40 VFs
[11:25:27] [PASSED] 41 VFs
[11:25:27] [PASSED] 42 VFs
[11:25:27] [PASSED] 43 VFs
[11:25:27] [PASSED] 44 VFs
[11:25:27] [PASSED] 45 VFs
[11:25:27] [PASSED] 46 VFs
[11:25:27] [PASSED] 47 VFs
[11:25:27] [PASSED] 48 VFs
[11:25:27] [PASSED] 49 VFs
[11:25:27] [PASSED] 50 VFs
[11:25:27] [PASSED] 51 VFs
[11:25:27] [PASSED] 52 VFs
[11:25:27] [PASSED] 53 VFs
[11:25:27] [PASSED] 54 VFs
[11:25:27] [PASSED] 55 VFs
[11:25:27] [PASSED] 56 VFs
[11:25:27] [PASSED] 57 VFs
[11:25:27] [PASSED] 58 VFs
[11:25:27] [PASSED] 59 VFs
[11:25:27] [PASSED] 60 VFs
[11:25:27] [PASSED] 61 VFs
[11:25:27] [PASSED] 62 VFs
[11:25:27] [PASSED] 63 VFs
[11:25:27] ================== [PASSED] fair_contexts ==================
[11:25:27] ===================== fair_doorbells ======================
[11:25:27] [PASSED] 1 VF
[11:25:27] [PASSED] 2 VFs
[11:25:27] [PASSED] 3 VFs
[11:25:27] [PASSED] 4 VFs
[11:25:27] [PASSED] 5 VFs
[11:25:27] [PASSED] 6 VFs
[11:25:27] [PASSED] 7 VFs
[11:25:27] [PASSED] 8 VFs
[11:25:27] [PASSED] 9 VFs
[11:25:27] [PASSED] 10 VFs
[11:25:27] [PASSED] 11 VFs
[11:25:27] [PASSED] 12 VFs
[11:25:27] [PASSED] 13 VFs
[11:25:27] [PASSED] 14 VFs
[11:25:27] [PASSED] 15 VFs
[11:25:27] [PASSED] 16 VFs
[11:25:27] [PASSED] 17 VFs
[11:25:27] [PASSED] 18 VFs
[11:25:27] [PASSED] 19 VFs
[11:25:27] [PASSED] 20 VFs
[11:25:27] [PASSED] 21 VFs
[11:25:27] [PASSED] 22 VFs
[11:25:27] [PASSED] 23 VFs
[11:25:27] [PASSED] 24 VFs
[11:25:27] [PASSED] 25 VFs
[11:25:27] [PASSED] 26 VFs
[11:25:27] [PASSED] 27 VFs
[11:25:27] [PASSED] 28 VFs
[11:25:27] [PASSED] 29 VFs
[11:25:27] [PASSED] 30 VFs
[11:25:27] [PASSED] 31 VFs
[11:25:27] [PASSED] 32 VFs
[11:25:27] [PASSED] 33 VFs
[11:25:27] [PASSED] 34 VFs
[11:25:27] [PASSED] 35 VFs
[11:25:27] [PASSED] 36 VFs
[11:25:27] [PASSED] 37 VFs
[11:25:27] [PASSED] 38 VFs
[11:25:27] [PASSED] 39 VFs
[11:25:27] [PASSED] 40 VFs
[11:25:27] [PASSED] 41 VFs
[11:25:27] [PASSED] 42 VFs
[11:25:27] [PASSED] 43 VFs
[11:25:27] [PASSED] 44 VFs
[11:25:27] [PASSED] 45 VFs
[11:25:27] [PASSED] 46 VFs
[11:25:27] [PASSED] 47 VFs
[11:25:27] [PASSED] 48 VFs
[11:25:27] [PASSED] 49 VFs
[11:25:27] [PASSED] 50 VFs
[11:25:27] [PASSED] 51 VFs
[11:25:27] [PASSED] 52 VFs
[11:25:27] [PASSED] 53 VFs
[11:25:27] [PASSED] 54 VFs
[11:25:27] [PASSED] 55 VFs
[11:25:27] [PASSED] 56 VFs
[11:25:27] [PASSED] 57 VFs
[11:25:27] [PASSED] 58 VFs
[11:25:27] [PASSED] 59 VFs
[11:25:27] [PASSED] 60 VFs
[11:25:27] [PASSED] 61 VFs
[11:25:27] [PASSED] 62 VFs
[11:25:27] [PASSED] 63 VFs
[11:25:27] ================= [PASSED] fair_doorbells ==================
[11:25:27] ======================== fair_ggtt ========================
[11:25:27] [PASSED] 1 VF
[11:25:27] [PASSED] 2 VFs
[11:25:27] [PASSED] 3 VFs
[11:25:27] [PASSED] 4 VFs
[11:25:27] [PASSED] 5 VFs
[11:25:27] [PASSED] 6 VFs
[11:25:27] [PASSED] 7 VFs
[11:25:27] [PASSED] 8 VFs
[11:25:27] [PASSED] 9 VFs
[11:25:27] [PASSED] 10 VFs
[11:25:27] [PASSED] 11 VFs
[11:25:27] [PASSED] 12 VFs
[11:25:27] [PASSED] 13 VFs
[11:25:27] [PASSED] 14 VFs
[11:25:27] [PASSED] 15 VFs
[11:25:27] [PASSED] 16 VFs
[11:25:27] [PASSED] 17 VFs
[11:25:27] [PASSED] 18 VFs
[11:25:27] [PASSED] 19 VFs
[11:25:27] [PASSED] 20 VFs
[11:25:27] [PASSED] 21 VFs
[11:25:27] [PASSED] 22 VFs
[11:25:27] [PASSED] 23 VFs
[11:25:27] [PASSED] 24 VFs
[11:25:27] [PASSED] 25 VFs
[11:25:27] [PASSED] 26 VFs
[11:25:27] [PASSED] 27 VFs
[11:25:27] [PASSED] 28 VFs
[11:25:27] [PASSED] 29 VFs
[11:25:27] [PASSED] 30 VFs
[11:25:27] [PASSED] 31 VFs
[11:25:27] [PASSED] 32 VFs
[11:25:27] [PASSED] 33 VFs
[11:25:27] [PASSED] 34 VFs
[11:25:27] [PASSED] 35 VFs
[11:25:27] [PASSED] 36 VFs
[11:25:27] [PASSED] 37 VFs
[11:25:27] [PASSED] 38 VFs
[11:25:27] [PASSED] 39 VFs
[11:25:27] [PASSED] 40 VFs
[11:25:27] [PASSED] 41 VFs
[11:25:27] [PASSED] 42 VFs
[11:25:27] [PASSED] 43 VFs
[11:25:27] [PASSED] 44 VFs
[11:25:27] [PASSED] 45 VFs
[11:25:27] [PASSED] 46 VFs
[11:25:27] [PASSED] 47 VFs
[11:25:27] [PASSED] 48 VFs
[11:25:27] [PASSED] 49 VFs
[11:25:27] [PASSED] 50 VFs
[11:25:27] [PASSED] 51 VFs
[11:25:27] [PASSED] 52 VFs
[11:25:27] [PASSED] 53 VFs
[11:25:27] [PASSED] 54 VFs
[11:25:27] [PASSED] 55 VFs
[11:25:27] [PASSED] 56 VFs
[11:25:27] [PASSED] 57 VFs
[11:25:27] [PASSED] 58 VFs
[11:25:27] [PASSED] 59 VFs
[11:25:27] [PASSED] 60 VFs
[11:25:27] [PASSED] 61 VFs
[11:25:27] [PASSED] 62 VFs
[11:25:27] [PASSED] 63 VFs
[11:25:27] ==================== [PASSED] fair_ggtt ====================
[11:25:27] ======================== fair_vram ========================
[11:25:27] [PASSED] 1 VF
[11:25:27] [PASSED] 2 VFs
[11:25:27] [PASSED] 3 VFs
[11:25:27] [PASSED] 4 VFs
[11:25:27] [PASSED] 5 VFs
[11:25:27] [PASSED] 6 VFs
[11:25:27] [PASSED] 7 VFs
[11:25:27] [PASSED] 8 VFs
[11:25:27] [PASSED] 9 VFs
[11:25:27] [PASSED] 10 VFs
[11:25:27] [PASSED] 11 VFs
[11:25:27] [PASSED] 12 VFs
[11:25:27] [PASSED] 13 VFs
[11:25:27] [PASSED] 14 VFs
[11:25:27] [PASSED] 15 VFs
[11:25:27] [PASSED] 16 VFs
[11:25:27] [PASSED] 17 VFs
[11:25:27] [PASSED] 18 VFs
[11:25:27] [PASSED] 19 VFs
[11:25:27] [PASSED] 20 VFs
[11:25:27] [PASSED] 21 VFs
[11:25:27] [PASSED] 22 VFs
[11:25:27] [PASSED] 23 VFs
[11:25:27] [PASSED] 24 VFs
[11:25:27] [PASSED] 25 VFs
[11:25:27] [PASSED] 26 VFs
[11:25:27] [PASSED] 27 VFs
[11:25:27] [PASSED] 28 VFs
[11:25:27] [PASSED] 29 VFs
[11:25:27] [PASSED] 30 VFs
[11:25:27] [PASSED] 31 VFs
[11:25:27] [PASSED] 32 VFs
[11:25:27] [PASSED] 33 VFs
[11:25:27] [PASSED] 34 VFs
[11:25:27] [PASSED] 35 VFs
[11:25:27] [PASSED] 36 VFs
[11:25:27] [PASSED] 37 VFs
[11:25:27] [PASSED] 38 VFs
[11:25:27] [PASSED] 39 VFs
[11:25:27] [PASSED] 40 VFs
[11:25:27] [PASSED] 41 VFs
[11:25:27] [PASSED] 42 VFs
[11:25:27] [PASSED] 43 VFs
[11:25:27] [PASSED] 44 VFs
[11:25:27] [PASSED] 45 VFs
[11:25:27] [PASSED] 46 VFs
[11:25:27] [PASSED] 47 VFs
[11:25:27] [PASSED] 48 VFs
[11:25:27] [PASSED] 49 VFs
[11:25:27] [PASSED] 50 VFs
[11:25:27] [PASSED] 51 VFs
[11:25:27] [PASSED] 52 VFs
[11:25:27] [PASSED] 53 VFs
[11:25:27] [PASSED] 54 VFs
[11:25:27] [PASSED] 55 VFs
[11:25:27] [PASSED] 56 VFs
[11:25:27] [PASSED] 57 VFs
[11:25:27] [PASSED] 58 VFs
[11:25:27] [PASSED] 59 VFs
[11:25:27] [PASSED] 60 VFs
[11:25:27] [PASSED] 61 VFs
[11:25:27] [PASSED] 62 VFs
[11:25:27] [PASSED] 63 VFs
[11:25:27] ==================== [PASSED] fair_vram ====================
[11:25:27] ================== [PASSED] pf_gt_config ===================
[11:25:27] ===================== lmtt (1 subtest) =====================
[11:25:27] ======================== test_ops =========================
[11:25:27] [PASSED] 2-level
[11:25:27] [PASSED] multi-level
[11:25:27] ==================== [PASSED] test_ops =====================
[11:25:27] ====================== [PASSED] lmtt =======================
[11:25:27] ================= pf_service (11 subtests) =================
[11:25:27] [PASSED] pf_negotiate_any
[11:25:27] [PASSED] pf_negotiate_base_match
[11:25:27] [PASSED] pf_negotiate_base_newer
[11:25:27] [PASSED] pf_negotiate_base_next
[11:25:27] [SKIPPED] pf_negotiate_base_older
[11:25:27] [PASSED] pf_negotiate_base_prev
[11:25:27] [PASSED] pf_negotiate_latest_match
[11:25:27] [PASSED] pf_negotiate_latest_newer
[11:25:27] [PASSED] pf_negotiate_latest_next
[11:25:27] [SKIPPED] pf_negotiate_latest_older
[11:25:27] [SKIPPED] pf_negotiate_latest_prev
[11:25:27] =================== [PASSED] pf_service ====================
[11:25:27] ================= xe_guc_g2g (2 subtests) ==================
[11:25:27] ============== xe_live_guc_g2g_kunit_default ==============
[11:25:27] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[11:25:27] ============== xe_live_guc_g2g_kunit_allmem ===============
[11:25:27] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[11:25:27] =================== [SKIPPED] xe_guc_g2g ===================
[11:25:27] =================== xe_mocs (2 subtests) ===================
[11:25:27] ================ xe_live_mocs_kernel_kunit ================
[11:25:27] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[11:25:27] ================ xe_live_mocs_reset_kunit =================
[11:25:27] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[11:25:27] ==================== [SKIPPED] xe_mocs =====================
[11:25:27] ================= xe_migrate (2 subtests) ==================
[11:25:27] ================= xe_migrate_sanity_kunit =================
[11:25:27] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[11:25:27] ================== xe_validate_ccs_kunit ==================
[11:25:27] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[11:25:27] =================== [SKIPPED] xe_migrate ===================
[11:25:27] ================== xe_dma_buf (1 subtest) ==================
[11:25:27] ==================== xe_dma_buf_kunit =====================
[11:25:27] ================ [SKIPPED] xe_dma_buf_kunit ================
[11:25:27] =================== [SKIPPED] xe_dma_buf ===================
[11:25:27] ================= xe_bo_shrink (1 subtest) =================
[11:25:27] =================== xe_bo_shrink_kunit ====================
[11:25:27] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[11:25:27] ================== [SKIPPED] xe_bo_shrink ==================
[11:25:27] ==================== xe_bo (2 subtests) ====================
[11:25:27] ================== xe_ccs_migrate_kunit ===================
[11:25:27] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[11:25:27] ==================== xe_bo_evict_kunit ====================
[11:25:27] =============== [SKIPPED] xe_bo_evict_kunit ================
[11:25:27] ===================== [SKIPPED] xe_bo ======================
[11:25:27] ==================== args (13 subtests) ====================
[11:25:27] [PASSED] count_args_test
[11:25:27] [PASSED] call_args_example
[11:25:27] [PASSED] call_args_test
[11:25:27] [PASSED] drop_first_arg_example
[11:25:27] [PASSED] drop_first_arg_test
[11:25:27] [PASSED] first_arg_example
[11:25:27] [PASSED] first_arg_test
[11:25:27] [PASSED] last_arg_example
[11:25:27] [PASSED] last_arg_test
[11:25:27] [PASSED] pick_arg_example
[11:25:27] [PASSED] if_args_example
[11:25:27] [PASSED] if_args_test
[11:25:27] [PASSED] sep_comma_example
[11:25:27] ====================== [PASSED] args =======================
[11:25:27] =================== xe_pci (3 subtests) ====================
[11:25:27] ==================== check_graphics_ip ====================
[11:25:27] [PASSED] 12.00 Xe_LP
[11:25:27] [PASSED] 12.10 Xe_LP+
[11:25:27] [PASSED] 12.55 Xe_HPG
[11:25:27] [PASSED] 12.60 Xe_HPC
[11:25:27] [PASSED] 12.70 Xe_LPG
[11:25:27] [PASSED] 12.71 Xe_LPG
[11:25:27] [PASSED] 12.74 Xe_LPG+
[11:25:27] [PASSED] 20.01 Xe2_HPG
[11:25:27] [PASSED] 20.02 Xe2_HPG
[11:25:27] [PASSED] 20.04 Xe2_LPG
[11:25:27] [PASSED] 30.00 Xe3_LPG
[11:25:27] [PASSED] 30.01 Xe3_LPG
[11:25:27] [PASSED] 30.03 Xe3_LPG
[11:25:27] [PASSED] 30.04 Xe3_LPG
[11:25:27] [PASSED] 30.05 Xe3_LPG
[11:25:27] [PASSED] 35.10 Xe3p_LPG
[11:25:27] [PASSED] 35.11 Xe3p_XPC
[11:25:27] ================ [PASSED] check_graphics_ip ================
[11:25:27] ===================== check_media_ip ======================
[11:25:27] [PASSED] 12.00 Xe_M
[11:25:27] [PASSED] 12.55 Xe_HPM
[11:25:27] [PASSED] 13.00 Xe_LPM+
[11:25:27] [PASSED] 13.01 Xe2_HPM
[11:25:27] [PASSED] 20.00 Xe2_LPM
[11:25:27] [PASSED] 30.00 Xe3_LPM
[11:25:27] [PASSED] 30.02 Xe3_LPM
[11:25:27] [PASSED] 35.00 Xe3p_LPM
[11:25:27] [PASSED] 35.03 Xe3p_HPM
[11:25:27] ================= [PASSED] check_media_ip ==================
[11:25:27] =================== check_platform_desc ===================
[11:25:27] [PASSED] 0x9A60 (TIGERLAKE)
[11:25:27] [PASSED] 0x9A68 (TIGERLAKE)
[11:25:27] [PASSED] 0x9A70 (TIGERLAKE)
[11:25:27] [PASSED] 0x9A40 (TIGERLAKE)
[11:25:27] [PASSED] 0x9A49 (TIGERLAKE)
[11:25:27] [PASSED] 0x9A59 (TIGERLAKE)
[11:25:27] [PASSED] 0x9A78 (TIGERLAKE)
[11:25:27] [PASSED] 0x9AC0 (TIGERLAKE)
[11:25:27] [PASSED] 0x9AC9 (TIGERLAKE)
[11:25:27] [PASSED] 0x9AD9 (TIGERLAKE)
[11:25:27] [PASSED] 0x9AF8 (TIGERLAKE)
[11:25:27] [PASSED] 0x4C80 (ROCKETLAKE)
[11:25:27] [PASSED] 0x4C8A (ROCKETLAKE)
[11:25:27] [PASSED] 0x4C8B (ROCKETLAKE)
[11:25:27] [PASSED] 0x4C8C (ROCKETLAKE)
[11:25:27] [PASSED] 0x4C90 (ROCKETLAKE)
[11:25:27] [PASSED] 0x4C9A (ROCKETLAKE)
[11:25:27] [PASSED] 0x4680 (ALDERLAKE_S)
[11:25:27] [PASSED] 0x4682 (ALDERLAKE_S)
[11:25:27] [PASSED] 0x4688 (ALDERLAKE_S)
[11:25:27] [PASSED] 0x468A (ALDERLAKE_S)
[11:25:27] [PASSED] 0x468B (ALDERLAKE_S)
[11:25:27] [PASSED] 0x4690 (ALDERLAKE_S)
[11:25:27] [PASSED] 0x4692 (ALDERLAKE_S)
[11:25:27] [PASSED] 0x4693 (ALDERLAKE_S)
[11:25:27] [PASSED] 0x46A0 (ALDERLAKE_P)
[11:25:27] [PASSED] 0x46A1 (ALDERLAKE_P)
[11:25:27] [PASSED] 0x46A2 (ALDERLAKE_P)
[11:25:27] [PASSED] 0x46A3 (ALDERLAKE_P)
[11:25:27] [PASSED] 0x46A6 (ALDERLAKE_P)
[11:25:27] [PASSED] 0x46A8 (ALDERLAKE_P)
[11:25:27] [PASSED] 0x46AA (ALDERLAKE_P)
[11:25:27] [PASSED] 0x462A (ALDERLAKE_P)
[11:25:27] [PASSED] 0x4626 (ALDERLAKE_P)
[11:25:27] [PASSED] 0x4628 (ALDERLAKE_P)
[11:25:27] [PASSED] 0x46B0 (ALDERLAKE_P)
[11:25:27] [PASSED] 0x46B1 (ALDERLAKE_P)
[11:25:27] [PASSED] 0x46B2 (ALDERLAKE_P)
[11:25:27] [PASSED] 0x46B3 (ALDERLAKE_P)
[11:25:27] [PASSED] 0x46C0 (ALDERLAKE_P)
[11:25:27] [PASSED] 0x46C1 (ALDERLAKE_P)
[11:25:27] [PASSED] 0x46C2 (ALDERLAKE_P)
[11:25:27] [PASSED] 0x46C3 (ALDERLAKE_P)
[11:25:27] [PASSED] 0x46D0 (ALDERLAKE_N)
[11:25:27] [PASSED] 0x46D1 (ALDERLAKE_N)
[11:25:27] [PASSED] 0x46D2 (ALDERLAKE_N)
[11:25:27] [PASSED] 0x46D3 (ALDERLAKE_N)
[11:25:27] [PASSED] 0x46D4 (ALDERLAKE_N)
[11:25:27] [PASSED] 0xA721 (ALDERLAKE_P)
[11:25:27] [PASSED] 0xA7A1 (ALDERLAKE_P)
[11:25:27] [PASSED] 0xA7A9 (ALDERLAKE_P)
[11:25:27] [PASSED] 0xA7AC (ALDERLAKE_P)
[11:25:27] [PASSED] 0xA7AD (ALDERLAKE_P)
[11:25:27] [PASSED] 0xA720 (ALDERLAKE_P)
[11:25:27] [PASSED] 0xA7A0 (ALDERLAKE_P)
[11:25:27] [PASSED] 0xA7A8 (ALDERLAKE_P)
[11:25:27] [PASSED] 0xA7AA (ALDERLAKE_P)
[11:25:27] [PASSED] 0xA7AB (ALDERLAKE_P)
[11:25:27] [PASSED] 0xA780 (ALDERLAKE_S)
[11:25:27] [PASSED] 0xA781 (ALDERLAKE_S)
[11:25:27] [PASSED] 0xA782 (ALDERLAKE_S)
[11:25:27] [PASSED] 0xA783 (ALDERLAKE_S)
[11:25:27] [PASSED] 0xA788 (ALDERLAKE_S)
[11:25:27] [PASSED] 0xA789 (ALDERLAKE_S)
[11:25:27] [PASSED] 0xA78A (ALDERLAKE_S)
[11:25:27] [PASSED] 0xA78B (ALDERLAKE_S)
[11:25:27] [PASSED] 0x4905 (DG1)
[11:25:27] [PASSED] 0x4906 (DG1)
[11:25:27] [PASSED] 0x4907 (DG1)
[11:25:27] [PASSED] 0x4908 (DG1)
[11:25:27] [PASSED] 0x4909 (DG1)
[11:25:27] [PASSED] 0x56C0 (DG2)
[11:25:27] [PASSED] 0x56C2 (DG2)
[11:25:27] [PASSED] 0x56C1 (DG2)
[11:25:27] [PASSED] 0x7D51 (METEORLAKE)
[11:25:27] [PASSED] 0x7DD1 (METEORLAKE)
[11:25:27] [PASSED] 0x7D41 (METEORLAKE)
[11:25:27] [PASSED] 0x7D67 (METEORLAKE)
[11:25:27] [PASSED] 0xB640 (METEORLAKE)
[11:25:27] [PASSED] 0x56A0 (DG2)
[11:25:27] [PASSED] 0x56A1 (DG2)
[11:25:27] [PASSED] 0x56A2 (DG2)
[11:25:27] [PASSED] 0x56BE (DG2)
[11:25:27] [PASSED] 0x56BF (DG2)
[11:25:27] [PASSED] 0x5690 (DG2)
[11:25:27] [PASSED] 0x5691 (DG2)
[11:25:27] [PASSED] 0x5692 (DG2)
[11:25:27] [PASSED] 0x56A5 (DG2)
[11:25:27] [PASSED] 0x56A6 (DG2)
[11:25:27] [PASSED] 0x56B0 (DG2)
[11:25:27] [PASSED] 0x56B1 (DG2)
[11:25:27] [PASSED] 0x56BA (DG2)
[11:25:27] [PASSED] 0x56BB (DG2)
[11:25:27] [PASSED] 0x56BC (DG2)
[11:25:27] [PASSED] 0x56BD (DG2)
[11:25:27] [PASSED] 0x5693 (DG2)
[11:25:27] [PASSED] 0x5694 (DG2)
[11:25:27] [PASSED] 0x5695 (DG2)
[11:25:27] [PASSED] 0x56A3 (DG2)
[11:25:27] [PASSED] 0x56A4 (DG2)
[11:25:27] [PASSED] 0x56B2 (DG2)
[11:25:27] [PASSED] 0x56B3 (DG2)
[11:25:27] [PASSED] 0x5696 (DG2)
[11:25:27] [PASSED] 0x5697 (DG2)
[11:25:27] [PASSED] 0xB69 (PVC)
[11:25:27] [PASSED] 0xB6E (PVC)
[11:25:27] [PASSED] 0xBD4 (PVC)
[11:25:27] [PASSED] 0xBD5 (PVC)
[11:25:27] [PASSED] 0xBD6 (PVC)
[11:25:27] [PASSED] 0xBD7 (PVC)
[11:25:27] [PASSED] 0xBD8 (PVC)
[11:25:27] [PASSED] 0xBD9 (PVC)
[11:25:27] [PASSED] 0xBDA (PVC)
[11:25:27] [PASSED] 0xBDB (PVC)
[11:25:27] [PASSED] 0xBE0 (PVC)
[11:25:27] [PASSED] 0xBE1 (PVC)
[11:25:27] [PASSED] 0xBE5 (PVC)
[11:25:27] [PASSED] 0x7D40 (METEORLAKE)
[11:25:27] [PASSED] 0x7D45 (METEORLAKE)
[11:25:27] [PASSED] 0x7D55 (METEORLAKE)
[11:25:27] [PASSED] 0x7D60 (METEORLAKE)
[11:25:27] [PASSED] 0x7DD5 (METEORLAKE)
[11:25:27] [PASSED] 0x6420 (LUNARLAKE)
[11:25:27] [PASSED] 0x64A0 (LUNARLAKE)
[11:25:27] [PASSED] 0x64B0 (LUNARLAKE)
[11:25:27] [PASSED] 0xE202 (BATTLEMAGE)
[11:25:27] [PASSED] 0xE209 (BATTLEMAGE)
[11:25:27] [PASSED] 0xE20B (BATTLEMAGE)
[11:25:27] [PASSED] 0xE20C (BATTLEMAGE)
[11:25:27] [PASSED] 0xE20D (BATTLEMAGE)
[11:25:27] [PASSED] 0xE210 (BATTLEMAGE)
[11:25:27] [PASSED] 0xE211 (BATTLEMAGE)
[11:25:27] [PASSED] 0xE212 (BATTLEMAGE)
[11:25:27] [PASSED] 0xE216 (BATTLEMAGE)
[11:25:27] [PASSED] 0xE220 (BATTLEMAGE)
[11:25:27] [PASSED] 0xE221 (BATTLEMAGE)
[11:25:27] [PASSED] 0xE222 (BATTLEMAGE)
[11:25:27] [PASSED] 0xE223 (BATTLEMAGE)
[11:25:27] [PASSED] 0xB080 (PANTHERLAKE)
[11:25:27] [PASSED] 0xB081 (PANTHERLAKE)
[11:25:27] [PASSED] 0xB082 (PANTHERLAKE)
[11:25:27] [PASSED] 0xB083 (PANTHERLAKE)
[11:25:27] [PASSED] 0xB084 (PANTHERLAKE)
[11:25:27] [PASSED] 0xB085 (PANTHERLAKE)
[11:25:27] [PASSED] 0xB086 (PANTHERLAKE)
[11:25:27] [PASSED] 0xB087 (PANTHERLAKE)
[11:25:27] [PASSED] 0xB08F (PANTHERLAKE)
[11:25:27] [PASSED] 0xB090 (PANTHERLAKE)
[11:25:27] [PASSED] 0xB0A0 (PANTHERLAKE)
[11:25:27] [PASSED] 0xB0B0 (PANTHERLAKE)
[11:25:27] [PASSED] 0xFD80 (PANTHERLAKE)
[11:25:27] [PASSED] 0xFD81 (PANTHERLAKE)
[11:25:27] [PASSED] 0xD740 (NOVALAKE_S)
[11:25:27] [PASSED] 0xD741 (NOVALAKE_S)
[11:25:27] [PASSED] 0xD742 (NOVALAKE_S)
[11:25:27] [PASSED] 0xD743 (NOVALAKE_S)
[11:25:27] [PASSED] 0xD744 (NOVALAKE_S)
[11:25:27] [PASSED] 0xD745 (NOVALAKE_S)
[11:25:27] [PASSED] 0x674C (CRESCENTISLAND)
[11:25:27] [PASSED] 0xD750 (NOVALAKE_P)
[11:25:27] [PASSED] 0xD751 (NOVALAKE_P)
[11:25:27] [PASSED] 0xD752 (NOVALAKE_P)
[11:25:27] [PASSED] 0xD753 (NOVALAKE_P)
[11:25:27] [PASSED] 0xD754 (NOVALAKE_P)
[11:25:27] [PASSED] 0xD755 (NOVALAKE_P)
[11:25:27] [PASSED] 0xD756 (NOVALAKE_P)
[11:25:27] [PASSED] 0xD757 (NOVALAKE_P)
[11:25:27] [PASSED] 0xD75F (NOVALAKE_P)
[11:25:27] =============== [PASSED] check_platform_desc ===============
[11:25:27] ===================== [PASSED] xe_pci ======================
[11:25:27] =================== xe_rtp (2 subtests) ====================
[11:25:27] =============== xe_rtp_process_to_sr_tests ================
[11:25:27] [PASSED] coalesce-same-reg
[11:25:27] [PASSED] no-match-no-add
[11:25:27] [PASSED] match-or
[11:25:27] [PASSED] match-or-xfail
[11:25:27] [PASSED] no-match-no-add-multiple-rules
[11:25:27] [PASSED] two-regs-two-entries
[11:25:27] [PASSED] clr-one-set-other
[11:25:27] [PASSED] set-field
[11:25:27] [PASSED] conflict-duplicate
stty: 'standard input': Inappropriate ioctl for device
[11:25:27] [PASSED] conflict-not-disjoint
[11:25:27] [PASSED] conflict-reg-type
[11:25:27] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[11:25:27] ================== xe_rtp_process_tests ===================
[11:25:27] [PASSED] active1
[11:25:27] [PASSED] active2
[11:25:27] [PASSED] active-inactive
[11:25:27] [PASSED] inactive-active
[11:25:27] [PASSED] inactive-1st_or_active-inactive
[11:25:27] [PASSED] inactive-2nd_or_active-inactive
[11:25:27] [PASSED] inactive-last_or_active-inactive
[11:25:27] [PASSED] inactive-no_or_active-inactive
[11:25:27] ============== [PASSED] xe_rtp_process_tests ===============
[11:25:27] ===================== [PASSED] xe_rtp ======================
[11:25:27] ==================== xe_wa (1 subtest) =====================
[11:25:27] ======================== xe_wa_gt =========================
[11:25:27] [PASSED] TIGERLAKE B0
[11:25:27] [PASSED] DG1 A0
[11:25:27] [PASSED] DG1 B0
[11:25:27] [PASSED] ALDERLAKE_S A0
[11:25:27] [PASSED] ALDERLAKE_S B0
[11:25:27] [PASSED] ALDERLAKE_S C0
[11:25:27] [PASSED] ALDERLAKE_S D0
[11:25:27] [PASSED] ALDERLAKE_P A0
[11:25:27] [PASSED] ALDERLAKE_P B0
[11:25:27] [PASSED] ALDERLAKE_P C0
[11:25:27] [PASSED] ALDERLAKE_S RPLS D0
[11:25:27] [PASSED] ALDERLAKE_P RPLU E0
[11:25:27] [PASSED] DG2 G10 C0
[11:25:27] [PASSED] DG2 G11 B1
[11:25:27] [PASSED] DG2 G12 A1
[11:25:27] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[11:25:27] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[11:25:27] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[11:25:27] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[11:25:27] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[11:25:27] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[11:25:27] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[11:25:27] ==================== [PASSED] xe_wa_gt =====================
[11:25:27] ====================== [PASSED] xe_wa ======================
[11:25:27] ============================================================
[11:25:27] Testing complete. Ran 597 tests: passed: 579, skipped: 18
[11:25:27] Elapsed time: 35.698s total, 4.253s configuring, 30.828s building, 0.600s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[11:25:27] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[11:25:29] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[11:25:53] Starting KUnit Kernel (1/1)...
[11:25:53] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[11:25:53] ============ drm_test_pick_cmdline (2 subtests) ============
[11:25:53] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[11:25:53] =============== drm_test_pick_cmdline_named ===============
[11:25:53] [PASSED] NTSC
[11:25:53] [PASSED] NTSC-J
[11:25:53] [PASSED] PAL
[11:25:53] [PASSED] PAL-M
[11:25:53] =========== [PASSED] drm_test_pick_cmdline_named ===========
[11:25:53] ============== [PASSED] drm_test_pick_cmdline ==============
[11:25:53] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[11:25:53] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[11:25:53] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[11:25:53] =========== drm_validate_clone_mode (2 subtests) ===========
[11:25:53] ============== drm_test_check_in_clone_mode ===============
[11:25:53] [PASSED] in_clone_mode
[11:25:53] [PASSED] not_in_clone_mode
[11:25:53] ========== [PASSED] drm_test_check_in_clone_mode ===========
[11:25:53] =============== drm_test_check_valid_clones ===============
[11:25:53] [PASSED] not_in_clone_mode
[11:25:53] [PASSED] valid_clone
[11:25:53] [PASSED] invalid_clone
[11:25:53] =========== [PASSED] drm_test_check_valid_clones ===========
[11:25:53] ============= [PASSED] drm_validate_clone_mode =============
[11:25:53] ============= drm_validate_modeset (1 subtest) =============
[11:25:53] [PASSED] drm_test_check_connector_changed_modeset
[11:25:53] ============== [PASSED] drm_validate_modeset ===============
[11:25:53] ====== drm_test_bridge_get_current_state (2 subtests) ======
[11:25:53] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[11:25:53] [PASSED] drm_test_drm_bridge_get_current_state_legacy
[11:25:53] ======== [PASSED] drm_test_bridge_get_current_state ========
[11:25:53] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[11:25:53] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[11:25:53] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[11:25:53] [PASSED] drm_test_drm_bridge_helper_reset_crtc_legacy
[11:25:53] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[11:25:53] ============== drm_bridge_alloc (2 subtests) ===============
[11:25:53] [PASSED] drm_test_drm_bridge_alloc_basic
[11:25:53] [PASSED] drm_test_drm_bridge_alloc_get_put
[11:25:53] ================ [PASSED] drm_bridge_alloc =================
[11:25:53] ============= drm_cmdline_parser (40 subtests) =============
[11:25:53] [PASSED] drm_test_cmdline_force_d_only
[11:25:53] [PASSED] drm_test_cmdline_force_D_only_dvi
[11:25:53] [PASSED] drm_test_cmdline_force_D_only_hdmi
[11:25:53] [PASSED] drm_test_cmdline_force_D_only_not_digital
[11:25:53] [PASSED] drm_test_cmdline_force_e_only
[11:25:53] [PASSED] drm_test_cmdline_res
[11:25:53] [PASSED] drm_test_cmdline_res_vesa
[11:25:53] [PASSED] drm_test_cmdline_res_vesa_rblank
[11:25:53] [PASSED] drm_test_cmdline_res_rblank
[11:25:53] [PASSED] drm_test_cmdline_res_bpp
[11:25:53] [PASSED] drm_test_cmdline_res_refresh
[11:25:53] [PASSED] drm_test_cmdline_res_bpp_refresh
[11:25:53] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[11:25:53] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[11:25:53] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[11:25:53] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[11:25:53] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[11:25:53] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[11:25:53] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[11:25:53] [PASSED] drm_test_cmdline_res_margins_force_on
[11:25:53] [PASSED] drm_test_cmdline_res_vesa_margins
[11:25:53] [PASSED] drm_test_cmdline_name
[11:25:53] [PASSED] drm_test_cmdline_name_bpp
[11:25:53] [PASSED] drm_test_cmdline_name_option
[11:25:53] [PASSED] drm_test_cmdline_name_bpp_option
[11:25:53] [PASSED] drm_test_cmdline_rotate_0
[11:25:53] [PASSED] drm_test_cmdline_rotate_90
[11:25:53] [PASSED] drm_test_cmdline_rotate_180
[11:25:53] [PASSED] drm_test_cmdline_rotate_270
[11:25:53] [PASSED] drm_test_cmdline_hmirror
[11:25:53] [PASSED] drm_test_cmdline_vmirror
[11:25:53] [PASSED] drm_test_cmdline_margin_options
[11:25:53] [PASSED] drm_test_cmdline_multiple_options
[11:25:53] [PASSED] drm_test_cmdline_bpp_extra_and_option
[11:25:53] [PASSED] drm_test_cmdline_extra_and_option
[11:25:53] [PASSED] drm_test_cmdline_freestanding_options
[11:25:53] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[11:25:53] [PASSED] drm_test_cmdline_panel_orientation
[11:25:53] ================ drm_test_cmdline_invalid =================
[11:25:53] [PASSED] margin_only
[11:25:53] [PASSED] interlace_only
[11:25:53] [PASSED] res_missing_x
[11:25:53] [PASSED] res_missing_y
[11:25:53] [PASSED] res_bad_y
[11:25:53] [PASSED] res_missing_y_bpp
[11:25:53] [PASSED] res_bad_bpp
[11:25:53] [PASSED] res_bad_refresh
[11:25:53] [PASSED] res_bpp_refresh_force_on_off
[11:25:53] [PASSED] res_invalid_mode
[11:25:53] [PASSED] res_bpp_wrong_place_mode
[11:25:53] [PASSED] name_bpp_refresh
[11:25:53] [PASSED] name_refresh
[11:25:53] [PASSED] name_refresh_wrong_mode
[11:25:53] [PASSED] name_refresh_invalid_mode
[11:25:53] [PASSED] rotate_multiple
[11:25:53] [PASSED] rotate_invalid_val
[11:25:53] [PASSED] rotate_truncated
[11:25:53] [PASSED] invalid_option
[11:25:53] [PASSED] invalid_tv_option
[11:25:53] [PASSED] truncated_tv_option
[11:25:53] ============ [PASSED] drm_test_cmdline_invalid =============
[11:25:53] =============== drm_test_cmdline_tv_options ===============
[11:25:53] [PASSED] NTSC
[11:25:53] [PASSED] NTSC_443
[11:25:53] [PASSED] NTSC_J
[11:25:53] [PASSED] PAL
[11:25:53] [PASSED] PAL_M
[11:25:53] [PASSED] PAL_N
[11:25:53] [PASSED] SECAM
[11:25:53] [PASSED] MONO_525
[11:25:53] [PASSED] MONO_625
[11:25:53] =========== [PASSED] drm_test_cmdline_tv_options ===========
[11:25:53] =============== [PASSED] drm_cmdline_parser ================
[11:25:53] ========== drmm_connector_hdmi_init (20 subtests) ==========
[11:25:53] [PASSED] drm_test_connector_hdmi_init_valid
[11:25:53] [PASSED] drm_test_connector_hdmi_init_bpc_8
[11:25:53] [PASSED] drm_test_connector_hdmi_init_bpc_10
[11:25:53] [PASSED] drm_test_connector_hdmi_init_bpc_12
[11:25:53] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[11:25:53] [PASSED] drm_test_connector_hdmi_init_bpc_null
[11:25:53] [PASSED] drm_test_connector_hdmi_init_formats_empty
[11:25:53] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[11:25:53] === drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[11:25:53] [PASSED] supported_formats=0x9 yuv420_allowed=1
[11:25:53] [PASSED] supported_formats=0x9 yuv420_allowed=0
[11:25:53] [PASSED] supported_formats=0x5 yuv420_allowed=1
[11:25:53] [PASSED] supported_formats=0x5 yuv420_allowed=0
[11:25:53] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[11:25:53] [PASSED] drm_test_connector_hdmi_init_null_ddc
[11:25:53] [PASSED] drm_test_connector_hdmi_init_null_product
[11:25:53] [PASSED] drm_test_connector_hdmi_init_null_vendor
[11:25:53] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[11:25:53] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[11:25:53] [PASSED] drm_test_connector_hdmi_init_product_valid
[11:25:53] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[11:25:53] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[11:25:53] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[11:25:53] ========= drm_test_connector_hdmi_init_type_valid =========
[11:25:53] [PASSED] HDMI-A
[11:25:53] [PASSED] HDMI-B
[11:25:53] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[11:25:53] ======== drm_test_connector_hdmi_init_type_invalid ========
[11:25:53] [PASSED] Unknown
[11:25:53] [PASSED] VGA
[11:25:53] [PASSED] DVI-I
[11:25:53] [PASSED] DVI-D
[11:25:53] [PASSED] DVI-A
[11:25:53] [PASSED] Composite
[11:25:53] [PASSED] SVIDEO
[11:25:53] [PASSED] LVDS
[11:25:53] [PASSED] Component
[11:25:53] [PASSED] DIN
[11:25:53] [PASSED] DP
[11:25:53] [PASSED] TV
[11:25:53] [PASSED] eDP
[11:25:53] [PASSED] Virtual
[11:25:53] [PASSED] DSI
[11:25:53] [PASSED] DPI
[11:25:53] [PASSED] Writeback
[11:25:53] [PASSED] SPI
[11:25:53] [PASSED] USB
[11:25:53] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[11:25:53] ============ [PASSED] drmm_connector_hdmi_init =============
[11:25:53] ============= drmm_connector_init (3 subtests) =============
[11:25:53] [PASSED] drm_test_drmm_connector_init
[11:25:53] [PASSED] drm_test_drmm_connector_init_null_ddc
[11:25:53] ========= drm_test_drmm_connector_init_type_valid =========
[11:25:53] [PASSED] Unknown
[11:25:53] [PASSED] VGA
[11:25:53] [PASSED] DVI-I
[11:25:53] [PASSED] DVI-D
[11:25:53] [PASSED] DVI-A
[11:25:53] [PASSED] Composite
[11:25:53] [PASSED] SVIDEO
[11:25:53] [PASSED] LVDS
[11:25:53] [PASSED] Component
[11:25:53] [PASSED] DIN
[11:25:53] [PASSED] DP
[11:25:53] [PASSED] HDMI-A
[11:25:53] [PASSED] HDMI-B
[11:25:53] [PASSED] TV
[11:25:53] [PASSED] eDP
[11:25:53] [PASSED] Virtual
[11:25:53] [PASSED] DSI
[11:25:53] [PASSED] DPI
[11:25:53] [PASSED] Writeback
[11:25:53] [PASSED] SPI
[11:25:53] [PASSED] USB
[11:25:53] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[11:25:53] =============== [PASSED] drmm_connector_init ===============
[11:25:53] ========= drm_connector_dynamic_init (6 subtests) ==========
[11:25:53] [PASSED] drm_test_drm_connector_dynamic_init
[11:25:53] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[11:25:53] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[11:25:53] [PASSED] drm_test_drm_connector_dynamic_init_properties
[11:25:53] ===== drm_test_drm_connector_dynamic_init_type_valid ======
[11:25:53] [PASSED] Unknown
[11:25:53] [PASSED] VGA
[11:25:53] [PASSED] DVI-I
[11:25:53] [PASSED] DVI-D
[11:25:53] [PASSED] DVI-A
[11:25:53] [PASSED] Composite
[11:25:53] [PASSED] SVIDEO
[11:25:53] [PASSED] LVDS
[11:25:53] [PASSED] Component
[11:25:53] [PASSED] DIN
[11:25:53] [PASSED] DP
[11:25:53] [PASSED] HDMI-A
[11:25:53] [PASSED] HDMI-B
[11:25:53] [PASSED] TV
[11:25:53] [PASSED] eDP
[11:25:53] [PASSED] Virtual
[11:25:53] [PASSED] DSI
[11:25:53] [PASSED] DPI
[11:25:53] [PASSED] Writeback
[11:25:53] [PASSED] SPI
[11:25:53] [PASSED] USB
[11:25:53] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[11:25:53] ======== drm_test_drm_connector_dynamic_init_name =========
[11:25:53] [PASSED] Unknown
[11:25:53] [PASSED] VGA
[11:25:53] [PASSED] DVI-I
[11:25:53] [PASSED] DVI-D
[11:25:53] [PASSED] DVI-A
[11:25:53] [PASSED] Composite
[11:25:53] [PASSED] SVIDEO
[11:25:53] [PASSED] LVDS
[11:25:53] [PASSED] Component
[11:25:53] [PASSED] DIN
[11:25:53] [PASSED] DP
[11:25:53] [PASSED] HDMI-A
[11:25:53] [PASSED] HDMI-B
[11:25:53] [PASSED] TV
[11:25:53] [PASSED] eDP
[11:25:53] [PASSED] Virtual
[11:25:53] [PASSED] DSI
[11:25:53] [PASSED] DPI
[11:25:53] [PASSED] Writeback
[11:25:53] [PASSED] SPI
[11:25:53] [PASSED] USB
[11:25:53] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[11:25:53] =========== [PASSED] drm_connector_dynamic_init ============
[11:25:53] ==== drm_connector_dynamic_register_early (4 subtests) =====
[11:25:53] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[11:25:53] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[11:25:53] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[11:25:53] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[11:25:53] ====== [PASSED] drm_connector_dynamic_register_early =======
[11:25:53] ======= drm_connector_dynamic_register (7 subtests) ========
[11:25:53] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[11:25:53] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[11:25:53] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[11:25:53] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[11:25:53] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[11:25:53] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[11:25:53] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[11:25:53] ========= [PASSED] drm_connector_dynamic_register ==========
[11:25:53] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[11:25:53] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[11:25:53] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[11:25:53] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[11:25:53] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[11:25:53] ========== drm_test_get_tv_mode_from_name_valid ===========
[11:25:53] [PASSED] NTSC
[11:25:53] [PASSED] NTSC-443
[11:25:53] [PASSED] NTSC-J
[11:25:53] [PASSED] PAL
[11:25:53] [PASSED] PAL-M
[11:25:53] [PASSED] PAL-N
[11:25:53] [PASSED] SECAM
[11:25:53] [PASSED] Mono
[11:25:53] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[11:25:53] [PASSED] drm_test_get_tv_mode_from_name_truncated
[11:25:53] ============ [PASSED] drm_get_tv_mode_from_name ============
[11:25:53] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[11:25:53] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[11:25:53] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[11:25:53] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[11:25:53] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[11:25:53] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[11:25:53] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[11:25:53] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid =
[11:25:53] [PASSED] VIC 96
[11:25:53] [PASSED] VIC 97
[11:25:53] [PASSED] VIC 101
[11:25:53] [PASSED] VIC 102
[11:25:53] [PASSED] VIC 106
[11:25:53] [PASSED] VIC 107
[11:25:53] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[11:25:53] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[11:25:53] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[11:25:53] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[11:25:53] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[11:25:53] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[11:25:53] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[11:25:53] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[11:25:53] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ====
[11:25:53] [PASSED] Automatic
[11:25:53] [PASSED] Full
[11:25:53] [PASSED] Limited 16:235
[11:25:53] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[11:25:53] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[11:25:53] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[11:25:53] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[11:25:53] === drm_test_drm_hdmi_connector_get_output_format_name ====
[11:25:53] [PASSED] RGB
[11:25:53] [PASSED] YUV 4:2:0
[11:25:53] [PASSED] YUV 4:2:2
[11:25:53] [PASSED] YUV 4:4:4
[11:25:53] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[11:25:53] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[11:25:53] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[11:25:53] ============= drm_damage_helper (21 subtests) ==============
[11:25:53] [PASSED] drm_test_damage_iter_no_damage
[11:25:53] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[11:25:53] [PASSED] drm_test_damage_iter_no_damage_src_moved
[11:25:53] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[11:25:53] [PASSED] drm_test_damage_iter_no_damage_not_visible
[11:25:53] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[11:25:53] [PASSED] drm_test_damage_iter_no_damage_no_fb
[11:25:53] [PASSED] drm_test_damage_iter_simple_damage
[11:25:53] [PASSED] drm_test_damage_iter_single_damage
[11:25:53] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[11:25:53] [PASSED] drm_test_damage_iter_single_damage_outside_src
[11:25:53] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[11:25:53] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[11:25:53] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[11:25:53] [PASSED] drm_test_damage_iter_single_damage_src_moved
[11:25:53] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[11:25:53] [PASSED] drm_test_damage_iter_damage
[11:25:53] [PASSED] drm_test_damage_iter_damage_one_intersect
[11:25:53] [PASSED] drm_test_damage_iter_damage_one_outside
[11:25:53] [PASSED] drm_test_damage_iter_damage_src_moved
[11:25:53] [PASSED] drm_test_damage_iter_damage_not_visible
[11:25:53] ================ [PASSED] drm_damage_helper ================
[11:25:53] ============== drm_dp_mst_helper (3 subtests) ==============
[11:25:53] ============== drm_test_dp_mst_calc_pbn_mode ==============
[11:25:53] [PASSED] Clock 154000 BPP 30 DSC disabled
[11:25:53] [PASSED] Clock 234000 BPP 30 DSC disabled
[11:25:53] [PASSED] Clock 297000 BPP 24 DSC disabled
[11:25:53] [PASSED] Clock 332880 BPP 24 DSC enabled
[11:25:53] [PASSED] Clock 324540 BPP 24 DSC enabled
[11:25:53] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[11:25:53] ============== drm_test_dp_mst_calc_pbn_div ===============
[11:25:53] [PASSED] Link rate 2000000 lane count 4
[11:25:53] [PASSED] Link rate 2000000 lane count 2
[11:25:53] [PASSED] Link rate 2000000 lane count 1
[11:25:53] [PASSED] Link rate 1350000 lane count 4
[11:25:53] [PASSED] Link rate 1350000 lane count 2
[11:25:53] [PASSED] Link rate 1350000 lane count 1
[11:25:53] [PASSED] Link rate 1000000 lane count 4
[11:25:53] [PASSED] Link rate 1000000 lane count 2
[11:25:53] [PASSED] Link rate 1000000 lane count 1
[11:25:53] [PASSED] Link rate 810000 lane count 4
[11:25:53] [PASSED] Link rate 810000 lane count 2
[11:25:53] [PASSED] Link rate 810000 lane count 1
[11:25:53] [PASSED] Link rate 540000 lane count 4
[11:25:53] [PASSED] Link rate 540000 lane count 2
[11:25:53] [PASSED] Link rate 540000 lane count 1
[11:25:53] [PASSED] Link rate 270000 lane count 4
[11:25:53] [PASSED] Link rate 270000 lane count 2
[11:25:53] [PASSED] Link rate 270000 lane count 1
[11:25:53] [PASSED] Link rate 162000 lane count 4
[11:25:53] [PASSED] Link rate 162000 lane count 2
[11:25:53] [PASSED] Link rate 162000 lane count 1
[11:25:53] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[11:25:53] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[11:25:53] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[11:25:53] [PASSED] DP_POWER_UP_PHY with port number
[11:25:53] [PASSED] DP_POWER_DOWN_PHY with port number
[11:25:53] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[11:25:53] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[11:25:53] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[11:25:53] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[11:25:53] [PASSED] DP_QUERY_PAYLOAD with port number
[11:25:53] [PASSED] DP_QUERY_PAYLOAD with VCPI
[11:25:53] [PASSED] DP_REMOTE_DPCD_READ with port number
[11:25:53] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[11:25:53] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[11:25:53] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[11:25:53] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[11:25:53] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[11:25:53] [PASSED] DP_REMOTE_I2C_READ with port number
[11:25:53] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[11:25:53] [PASSED] DP_REMOTE_I2C_READ with transactions array
[11:25:53] [PASSED] DP_REMOTE_I2C_WRITE with port number
[11:25:53] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[11:25:53] [PASSED] DP_REMOTE_I2C_WRITE with data array
[11:25:53] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[11:25:53] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[11:25:53] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[11:25:53] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[11:25:53] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[11:25:53] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[11:25:53] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[11:25:53] ================ [PASSED] drm_dp_mst_helper ================
[11:25:53] ================== drm_exec (7 subtests) ===================
[11:25:53] [PASSED] sanitycheck
[11:25:53] [PASSED] test_lock
[11:25:53] [PASSED] test_lock_unlock
[11:25:53] [PASSED] test_duplicates
[11:25:53] [PASSED] test_prepare
[11:25:53] [PASSED] test_prepare_array
[11:25:53] [PASSED] test_multiple_loops
[11:25:53] ==================== [PASSED] drm_exec =====================
[11:25:53] =========== drm_format_helper_test (17 subtests) ===========
[11:25:53] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[11:25:53] [PASSED] single_pixel_source_buffer
[11:25:53] [PASSED] single_pixel_clip_rectangle
[11:25:53] [PASSED] well_known_colors
[11:25:53] [PASSED] destination_pitch
[11:25:53] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[11:25:53] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[11:25:53] [PASSED] single_pixel_source_buffer
[11:25:53] [PASSED] single_pixel_clip_rectangle
[11:25:53] [PASSED] well_known_colors
[11:25:53] [PASSED] destination_pitch
[11:25:53] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[11:25:53] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[11:25:53] [PASSED] single_pixel_source_buffer
[11:25:53] [PASSED] single_pixel_clip_rectangle
[11:25:53] [PASSED] well_known_colors
[11:25:53] [PASSED] destination_pitch
[11:25:53] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[11:25:53] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[11:25:53] [PASSED] single_pixel_source_buffer
[11:25:53] [PASSED] single_pixel_clip_rectangle
[11:25:53] [PASSED] well_known_colors
[11:25:53] [PASSED] destination_pitch
[11:25:53] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[11:25:53] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[11:25:53] [PASSED] single_pixel_source_buffer
[11:25:53] [PASSED] single_pixel_clip_rectangle
[11:25:53] [PASSED] well_known_colors
[11:25:53] [PASSED] destination_pitch
[11:25:53] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[11:25:53] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[11:25:53] [PASSED] single_pixel_source_buffer
[11:25:53] [PASSED] single_pixel_clip_rectangle
[11:25:53] [PASSED] well_known_colors
[11:25:53] [PASSED] destination_pitch
[11:25:53] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[11:25:53] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[11:25:53] [PASSED] single_pixel_source_buffer
[11:25:53] [PASSED] single_pixel_clip_rectangle
[11:25:53] [PASSED] well_known_colors
[11:25:53] [PASSED] destination_pitch
[11:25:53] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[11:25:53] ============= drm_test_fb_xrgb8888_to_bgr888 ==============
[11:25:53] [PASSED] single_pixel_source_buffer
[11:25:53] [PASSED] single_pixel_clip_rectangle
[11:25:53] [PASSED] well_known_colors
[11:25:53] [PASSED] destination_pitch
[11:25:53] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[11:25:53] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[11:25:53] [PASSED] single_pixel_source_buffer
[11:25:53] [PASSED] single_pixel_clip_rectangle
[11:25:53] [PASSED] well_known_colors
[11:25:53] [PASSED] destination_pitch
[11:25:53] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[11:25:53] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[11:25:53] [PASSED] single_pixel_source_buffer
[11:25:53] [PASSED] single_pixel_clip_rectangle
[11:25:53] [PASSED] well_known_colors
[11:25:53] [PASSED] destination_pitch
[11:25:53] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[11:25:53] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[11:25:53] [PASSED] single_pixel_source_buffer
[11:25:53] [PASSED] single_pixel_clip_rectangle
[11:25:53] [PASSED] well_known_colors
[11:25:53] [PASSED] destination_pitch
[11:25:53] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[11:25:53] ============== drm_test_fb_xrgb8888_to_mono ===============
[11:25:53] [PASSED] single_pixel_source_buffer
[11:25:53] [PASSED] single_pixel_clip_rectangle
[11:25:53] [PASSED] well_known_colors
[11:25:53] [PASSED] destination_pitch
[11:25:53] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[11:25:53] ==================== drm_test_fb_swab =====================
[11:25:53] [PASSED] single_pixel_source_buffer
[11:25:53] [PASSED] single_pixel_clip_rectangle
[11:25:53] [PASSED] well_known_colors
[11:25:53] [PASSED] destination_pitch
[11:25:53] ================ [PASSED] drm_test_fb_swab =================
[11:25:53] ============ drm_test_fb_xrgb8888_to_xbgr8888 =============
[11:25:53] [PASSED] single_pixel_source_buffer
[11:25:53] [PASSED] single_pixel_clip_rectangle
[11:25:53] [PASSED] well_known_colors
[11:25:53] [PASSED] destination_pitch
[11:25:53] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[11:25:53] ============ drm_test_fb_xrgb8888_to_abgr8888 =============
[11:25:53] [PASSED] single_pixel_source_buffer
[11:25:53] [PASSED] single_pixel_clip_rectangle
[11:25:53] [PASSED] well_known_colors
[11:25:53] [PASSED] destination_pitch
[11:25:53] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[11:25:53] ================= drm_test_fb_clip_offset =================
[11:25:53] [PASSED] pass through
[11:25:53] [PASSED] horizontal offset
[11:25:53] [PASSED] vertical offset
[11:25:53] [PASSED] horizontal and vertical offset
[11:25:53] [PASSED] horizontal offset (custom pitch)
[11:25:53] [PASSED] vertical offset (custom pitch)
[11:25:53] [PASSED] horizontal and vertical offset (custom pitch)
[11:25:53] ============= [PASSED] drm_test_fb_clip_offset =============
[11:25:53] =================== drm_test_fb_memcpy ====================
[11:25:53] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[11:25:53] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[11:25:53] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[11:25:53] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[11:25:53] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[11:25:53] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[11:25:53] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[11:25:53] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[11:25:53] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[11:25:53] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[11:25:53] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[11:25:53] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[11:25:53] =============== [PASSED] drm_test_fb_memcpy ================
[11:25:53] ============= [PASSED] drm_format_helper_test ==============
[11:25:53] ================= drm_format (18 subtests) =================
[11:25:53] [PASSED] drm_test_format_block_width_invalid
[11:25:53] [PASSED] drm_test_format_block_width_one_plane
[11:25:53] [PASSED] drm_test_format_block_width_two_plane
[11:25:53] [PASSED] drm_test_format_block_width_three_plane
[11:25:53] [PASSED] drm_test_format_block_width_tiled
[11:25:53] [PASSED] drm_test_format_block_height_invalid
[11:25:53] [PASSED] drm_test_format_block_height_one_plane
[11:25:53] [PASSED] drm_test_format_block_height_two_plane
[11:25:53] [PASSED] drm_test_format_block_height_three_plane
[11:25:53] [PASSED] drm_test_format_block_height_tiled
[11:25:53] [PASSED] drm_test_format_min_pitch_invalid
[11:25:53] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[11:25:53] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[11:25:53] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[11:25:53] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[11:25:53] [PASSED] drm_test_format_min_pitch_two_plane
[11:25:53] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[11:25:53] [PASSED] drm_test_format_min_pitch_tiled
[11:25:53] =================== [PASSED] drm_format ====================
[11:25:53] ============== drm_framebuffer (10 subtests) ===============
[11:25:53] ========== drm_test_framebuffer_check_src_coords ==========
[11:25:53] [PASSED] Success: source fits into fb
[11:25:53] [PASSED] Fail: overflowing fb with x-axis coordinate
[11:25:53] [PASSED] Fail: overflowing fb with y-axis coordinate
[11:25:53] [PASSED] Fail: overflowing fb with source width
[11:25:53] [PASSED] Fail: overflowing fb with source height
[11:25:53] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[11:25:53] [PASSED] drm_test_framebuffer_cleanup
[11:25:53] =============== drm_test_framebuffer_create ===============
[11:25:53] [PASSED] ABGR8888 normal sizes
[11:25:53] [PASSED] ABGR8888 max sizes
[11:25:53] [PASSED] ABGR8888 pitch greater than min required
[11:25:53] [PASSED] ABGR8888 pitch less than min required
[11:25:53] [PASSED] ABGR8888 Invalid width
[11:25:53] [PASSED] ABGR8888 Invalid buffer handle
[11:25:53] [PASSED] No pixel format
[11:25:53] [PASSED] ABGR8888 Width 0
[11:25:53] [PASSED] ABGR8888 Height 0
[11:25:53] [PASSED] ABGR8888 Out of bound height * pitch combination
[11:25:53] [PASSED] ABGR8888 Large buffer offset
[11:25:53] [PASSED] ABGR8888 Buffer offset for inexistent plane
[11:25:53] [PASSED] ABGR8888 Invalid flag
[11:25:53] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[11:25:53] [PASSED] ABGR8888 Valid buffer modifier
[11:25:53] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[11:25:53] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[11:25:53] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[11:25:53] [PASSED] NV12 Normal sizes
[11:25:53] [PASSED] NV12 Max sizes
[11:25:53] [PASSED] NV12 Invalid pitch
[11:25:53] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[11:25:53] [PASSED] NV12 different modifier per-plane
[11:25:53] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[11:25:53] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[11:25:53] [PASSED] NV12 Modifier for inexistent plane
[11:25:53] [PASSED] NV12 Handle for inexistent plane
[11:25:53] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[11:25:53] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[11:25:53] [PASSED] YVU420 Normal sizes
[11:25:53] [PASSED] YVU420 Max sizes
[11:25:53] [PASSED] YVU420 Invalid pitch
[11:25:53] [PASSED] YVU420 Different pitches
[11:25:53] [PASSED] YVU420 Different buffer offsets/pitches
[11:25:53] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[11:25:53] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[11:25:53] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[11:25:53] [PASSED] YVU420 Valid modifier
[11:25:53] [PASSED] YVU420 Different modifiers per plane
[11:25:53] [PASSED] YVU420 Modifier for inexistent plane
[11:25:53] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[11:25:53] [PASSED] X0L2 Normal sizes
[11:25:53] [PASSED] X0L2 Max sizes
[11:25:53] [PASSED] X0L2 Invalid pitch
[11:25:53] [PASSED] X0L2 Pitch greater than minimum required
[11:25:53] [PASSED] X0L2 Handle for inexistent plane
[11:25:53] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[11:25:53] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[11:25:53] [PASSED] X0L2 Valid modifier
[11:25:53] [PASSED] X0L2 Modifier for inexistent plane
[11:25:53] =========== [PASSED] drm_test_framebuffer_create ===========
[11:25:53] [PASSED] drm_test_framebuffer_free
[11:25:53] [PASSED] drm_test_framebuffer_init
[11:25:53] [PASSED] drm_test_framebuffer_init_bad_format
[11:25:53] [PASSED] drm_test_framebuffer_init_dev_mismatch
[11:25:53] [PASSED] drm_test_framebuffer_lookup
[11:25:53] [PASSED] drm_test_framebuffer_lookup_inexistent
[11:25:53] [PASSED] drm_test_framebuffer_modifiers_not_supported
[11:25:53] ================= [PASSED] drm_framebuffer =================
[11:25:53] ================ drm_gem_shmem (8 subtests) ================
[11:25:53] [PASSED] drm_gem_shmem_test_obj_create
[11:25:53] [PASSED] drm_gem_shmem_test_obj_create_private
[11:25:53] [PASSED] drm_gem_shmem_test_pin_pages
[11:25:53] [PASSED] drm_gem_shmem_test_vmap
[11:25:53] [PASSED] drm_gem_shmem_test_get_sg_table
[11:25:53] [PASSED] drm_gem_shmem_test_get_pages_sgt
[11:25:53] [PASSED] drm_gem_shmem_test_madvise
[11:25:53] [PASSED] drm_gem_shmem_test_purge
[11:25:53] ================== [PASSED] drm_gem_shmem ==================
[11:25:53] === drm_atomic_helper_connector_hdmi_check (27 subtests) ===
[11:25:53] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[11:25:53] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[11:25:53] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[11:25:53] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[11:25:53] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[11:25:53] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[11:25:53] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 =======
[11:25:53] [PASSED] Automatic
[11:25:53] [PASSED] Full
[11:25:53] [PASSED] Limited 16:235
[11:25:53] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[11:25:53] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[11:25:53] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[11:25:53] [PASSED] drm_test_check_disable_connector
[11:25:53] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[11:25:53] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[11:25:53] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[11:25:53] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[11:25:53] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[11:25:53] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[11:25:53] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[11:25:53] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[11:25:53] [PASSED] drm_test_check_output_bpc_dvi
[11:25:53] [PASSED] drm_test_check_output_bpc_format_vic_1
[11:25:53] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[11:25:53] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[11:25:53] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[11:25:53] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[11:25:53] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[11:25:53] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[11:25:53] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[11:25:53] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[11:25:53] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[11:25:53] [PASSED] drm_test_check_broadcast_rgb_value
[11:25:53] [PASSED] drm_test_check_bpc_8_value
[11:25:53] [PASSED] drm_test_check_bpc_10_value
[11:25:53] [PASSED] drm_test_check_bpc_12_value
[11:25:53] [PASSED] drm_test_check_format_value
[11:25:53] [PASSED] drm_test_check_tmds_char_value
[11:25:53] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[11:25:53] = drm_atomic_helper_connector_hdmi_mode_valid (4 subtests) =
[11:25:53] [PASSED] drm_test_check_mode_valid
[11:25:53] [PASSED] drm_test_check_mode_valid_reject
[11:25:53] [PASSED] drm_test_check_mode_valid_reject_rate
[11:25:53] [PASSED] drm_test_check_mode_valid_reject_max_clock
[11:25:53] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[11:25:53] = drm_atomic_helper_connector_hdmi_infoframes (5 subtests) =
[11:25:53] [PASSED] drm_test_check_infoframes
[11:25:53] [PASSED] drm_test_check_reject_avi_infoframe
[11:25:53] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_8
[11:25:53] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_10
[11:25:53] [PASSED] drm_test_check_reject_audio_infoframe
[11:25:53] === [PASSED] drm_atomic_helper_connector_hdmi_infoframes ===
[11:25:53] ================= drm_managed (2 subtests) =================
[11:25:53] [PASSED] drm_test_managed_release_action
[11:25:53] [PASSED] drm_test_managed_run_action
[11:25:53] =================== [PASSED] drm_managed ===================
[11:25:53] =================== drm_mm (6 subtests) ====================
[11:25:53] [PASSED] drm_test_mm_init
[11:25:53] [PASSED] drm_test_mm_debug
[11:25:53] [PASSED] drm_test_mm_align32
[11:25:53] [PASSED] drm_test_mm_align64
[11:25:53] [PASSED] drm_test_mm_lowest
[11:25:53] [PASSED] drm_test_mm_highest
[11:25:53] ===================== [PASSED] drm_mm ======================
[11:25:53] ============= drm_modes_analog_tv (5 subtests) =============
[11:25:53] [PASSED] drm_test_modes_analog_tv_mono_576i
[11:25:53] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[11:25:53] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[11:25:53] [PASSED] drm_test_modes_analog_tv_pal_576i
[11:25:53] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[11:25:53] =============== [PASSED] drm_modes_analog_tv ===============
[11:25:53] ============== drm_plane_helper (2 subtests) ===============
[11:25:53] =============== drm_test_check_plane_state ================
[11:25:53] [PASSED] clipping_simple
[11:25:53] [PASSED] clipping_rotate_reflect
[11:25:53] [PASSED] positioning_simple
[11:25:53] [PASSED] upscaling
[11:25:53] [PASSED] downscaling
[11:25:53] [PASSED] rounding1
[11:25:53] [PASSED] rounding2
[11:25:53] [PASSED] rounding3
[11:25:53] [PASSED] rounding4
[11:25:53] =========== [PASSED] drm_test_check_plane_state ============
[11:25:53] =========== drm_test_check_invalid_plane_state ============
[11:25:53] [PASSED] positioning_invalid
[11:25:53] [PASSED] upscaling_invalid
[11:25:53] [PASSED] downscaling_invalid
[11:25:53] ======= [PASSED] drm_test_check_invalid_plane_state ========
[11:25:53] ================ [PASSED] drm_plane_helper =================
[11:25:53] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[11:25:53] ====== drm_test_connector_helper_tv_get_modes_check =======
[11:25:53] [PASSED] None
[11:25:53] [PASSED] PAL
[11:25:53] [PASSED] NTSC
[11:25:53] [PASSED] Both, NTSC Default
[11:25:53] [PASSED] Both, PAL Default
[11:25:53] [PASSED] Both, NTSC Default, with PAL on command-line
[11:25:53] [PASSED] Both, PAL Default, with NTSC on command-line
[11:25:53] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[11:25:53] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[11:25:53] ================== drm_rect (9 subtests) ===================
[11:25:53] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[11:25:53] [PASSED] drm_test_rect_clip_scaled_not_clipped
[11:25:53] [PASSED] drm_test_rect_clip_scaled_clipped
[11:25:53] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[11:25:53] ================= drm_test_rect_intersect =================
[11:25:53] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[11:25:53] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[11:25:53] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[11:25:53] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[11:25:53] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[11:25:53] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[11:25:53] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[11:25:53] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[11:25:53] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[11:25:53] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[11:25:53] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[11:25:53] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[11:25:53] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[11:25:53] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[11:25:53] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[11:25:53] ============= [PASSED] drm_test_rect_intersect =============
[11:25:53] ================ drm_test_rect_calc_hscale ================
[11:25:53] [PASSED] normal use
[11:25:53] [PASSED] out of max range
[11:25:53] [PASSED] out of min range
[11:25:53] [PASSED] zero dst
[11:25:53] [PASSED] negative src
[11:25:53] [PASSED] negative dst
[11:25:53] ============ [PASSED] drm_test_rect_calc_hscale ============
[11:25:53] ================ drm_test_rect_calc_vscale ================
[11:25:53] [PASSED] normal use
[11:25:53] [PASSED] out of max range
[11:25:53] [PASSED] out of min range
[11:25:53] [PASSED] zero dst
[11:25:53] [PASSED] negative src
[11:25:53] [PASSED] negative dst
stty: 'standard input': Inappropriate ioctl for device
[11:25:53] ============ [PASSED] drm_test_rect_calc_vscale ============
[11:25:53] ================== drm_test_rect_rotate ===================
[11:25:53] [PASSED] reflect-x
[11:25:53] [PASSED] reflect-y
[11:25:53] [PASSED] rotate-0
[11:25:53] [PASSED] rotate-90
[11:25:53] [PASSED] rotate-180
[11:25:53] [PASSED] rotate-270
[11:25:53] ============== [PASSED] drm_test_rect_rotate ===============
[11:25:53] ================ drm_test_rect_rotate_inv =================
[11:25:53] [PASSED] reflect-x
[11:25:53] [PASSED] reflect-y
[11:25:53] [PASSED] rotate-0
[11:25:53] [PASSED] rotate-90
[11:25:53] [PASSED] rotate-180
[11:25:53] [PASSED] rotate-270
[11:25:53] ============ [PASSED] drm_test_rect_rotate_inv =============
[11:25:53] ==================== [PASSED] drm_rect =====================
[11:25:53] ============ drm_sysfb_modeset_test (1 subtest) ============
[11:25:53] ============ drm_test_sysfb_build_fourcc_list =============
[11:25:53] [PASSED] no native formats
[11:25:53] [PASSED] XRGB8888 as native format
[11:25:53] [PASSED] remove duplicates
[11:25:53] [PASSED] convert alpha formats
[11:25:53] [PASSED] random formats
[11:25:53] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[11:25:53] ============= [PASSED] drm_sysfb_modeset_test ==============
[11:25:53] ================== drm_fixp (2 subtests) ===================
[11:25:53] [PASSED] drm_test_int2fixp
[11:25:53] [PASSED] drm_test_sm2fixp
[11:25:53] ==================== [PASSED] drm_fixp =====================
[11:25:53] ============================================================
[11:25:53] Testing complete. Ran 621 tests: passed: 621
[11:25:53] Elapsed time: 26.123s total, 1.735s configuring, 24.221s building, 0.133s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[11:25:53] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[11:25:55] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[11:26:04] Starting KUnit Kernel (1/1)...
[11:26:04] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[11:26:05] ================= ttm_device (5 subtests) ==================
[11:26:05] [PASSED] ttm_device_init_basic
[11:26:05] [PASSED] ttm_device_init_multiple
[11:26:05] [PASSED] ttm_device_fini_basic
[11:26:05] [PASSED] ttm_device_init_no_vma_man
[11:26:05] ================== ttm_device_init_pools ==================
[11:26:05] [PASSED] No DMA allocations, no DMA32 required
[11:26:05] [PASSED] DMA allocations, DMA32 required
[11:26:05] [PASSED] No DMA allocations, DMA32 required
[11:26:05] [PASSED] DMA allocations, no DMA32 required
[11:26:05] ============== [PASSED] ttm_device_init_pools ==============
[11:26:05] =================== [PASSED] ttm_device ====================
[11:26:05] ================== ttm_pool (8 subtests) ===================
[11:26:05] ================== ttm_pool_alloc_basic ===================
[11:26:05] [PASSED] One page
[11:26:05] [PASSED] More than one page
[11:26:05] [PASSED] Above the allocation limit
[11:26:05] [PASSED] One page, with coherent DMA mappings enabled
[11:26:05] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[11:26:05] ============== [PASSED] ttm_pool_alloc_basic ===============
[11:26:05] ============== ttm_pool_alloc_basic_dma_addr ==============
[11:26:05] [PASSED] One page
[11:26:05] [PASSED] More than one page
[11:26:05] [PASSED] Above the allocation limit
[11:26:05] [PASSED] One page, with coherent DMA mappings enabled
[11:26:05] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[11:26:05] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[11:26:05] [PASSED] ttm_pool_alloc_order_caching_match
[11:26:05] [PASSED] ttm_pool_alloc_caching_mismatch
[11:26:05] [PASSED] ttm_pool_alloc_order_mismatch
[11:26:05] [PASSED] ttm_pool_free_dma_alloc
[11:26:05] [PASSED] ttm_pool_free_no_dma_alloc
[11:26:05] [PASSED] ttm_pool_fini_basic
[11:26:05] ==================== [PASSED] ttm_pool =====================
[11:26:05] ================ ttm_resource (8 subtests) =================
[11:26:05] ================= ttm_resource_init_basic =================
[11:26:05] [PASSED] Init resource in TTM_PL_SYSTEM
[11:26:05] [PASSED] Init resource in TTM_PL_VRAM
[11:26:05] [PASSED] Init resource in a private placement
[11:26:05] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[11:26:05] ============= [PASSED] ttm_resource_init_basic =============
[11:26:05] [PASSED] ttm_resource_init_pinned
[11:26:05] [PASSED] ttm_resource_fini_basic
[11:26:05] [PASSED] ttm_resource_manager_init_basic
[11:26:05] [PASSED] ttm_resource_manager_usage_basic
[11:26:05] [PASSED] ttm_resource_manager_set_used_basic
[11:26:05] [PASSED] ttm_sys_man_alloc_basic
[11:26:05] [PASSED] ttm_sys_man_free_basic
[11:26:05] ================== [PASSED] ttm_resource ===================
[11:26:05] =================== ttm_tt (15 subtests) ===================
[11:26:05] ==================== ttm_tt_init_basic ====================
[11:26:05] [PASSED] Page-aligned size
[11:26:05] [PASSED] Extra pages requested
[11:26:05] ================ [PASSED] ttm_tt_init_basic ================
[11:26:05] [PASSED] ttm_tt_init_misaligned
[11:26:05] [PASSED] ttm_tt_fini_basic
[11:26:05] [PASSED] ttm_tt_fini_sg
[11:26:05] [PASSED] ttm_tt_fini_shmem
[11:26:05] [PASSED] ttm_tt_create_basic
[11:26:05] [PASSED] ttm_tt_create_invalid_bo_type
[11:26:05] [PASSED] ttm_tt_create_ttm_exists
[11:26:05] [PASSED] ttm_tt_create_failed
[11:26:05] [PASSED] ttm_tt_destroy_basic
[11:26:05] [PASSED] ttm_tt_populate_null_ttm
[11:26:05] [PASSED] ttm_tt_populate_populated_ttm
[11:26:05] [PASSED] ttm_tt_unpopulate_basic
[11:26:05] [PASSED] ttm_tt_unpopulate_empty_ttm
[11:26:05] [PASSED] ttm_tt_swapin_basic
[11:26:05] ===================== [PASSED] ttm_tt ======================
[11:26:05] =================== ttm_bo (14 subtests) ===================
[11:26:05] =========== ttm_bo_reserve_optimistic_no_ticket ===========
[11:26:05] [PASSED] Cannot be interrupted and sleeps
[11:26:05] [PASSED] Cannot be interrupted, locks straight away
[11:26:05] [PASSED] Can be interrupted, sleeps
[11:26:05] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[11:26:05] [PASSED] ttm_bo_reserve_locked_no_sleep
[11:26:05] [PASSED] ttm_bo_reserve_no_wait_ticket
[11:26:05] [PASSED] ttm_bo_reserve_double_resv
[11:26:05] [PASSED] ttm_bo_reserve_interrupted
[11:26:05] [PASSED] ttm_bo_reserve_deadlock
[11:26:05] [PASSED] ttm_bo_unreserve_basic
[11:26:05] [PASSED] ttm_bo_unreserve_pinned
[11:26:05] [PASSED] ttm_bo_unreserve_bulk
[11:26:05] [PASSED] ttm_bo_fini_basic
[11:26:05] [PASSED] ttm_bo_fini_shared_resv
[11:26:05] [PASSED] ttm_bo_pin_basic
[11:26:05] [PASSED] ttm_bo_pin_unpin_resource
[11:26:05] [PASSED] ttm_bo_multiple_pin_one_unpin
[11:26:05] ===================== [PASSED] ttm_bo ======================
[11:26:05] ============== ttm_bo_validate (22 subtests) ===============
[11:26:05] ============== ttm_bo_init_reserved_sys_man ===============
[11:26:05] [PASSED] Buffer object for userspace
[11:26:05] [PASSED] Kernel buffer object
[11:26:05] [PASSED] Shared buffer object
[11:26:05] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[11:26:05] ============== ttm_bo_init_reserved_mock_man ==============
[11:26:05] [PASSED] Buffer object for userspace
[11:26:05] [PASSED] Kernel buffer object
[11:26:05] [PASSED] Shared buffer object
[11:26:05] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[11:26:05] [PASSED] ttm_bo_init_reserved_resv
[11:26:05] ================== ttm_bo_validate_basic ==================
[11:26:05] [PASSED] Buffer object for userspace
[11:26:05] [PASSED] Kernel buffer object
[11:26:05] [PASSED] Shared buffer object
[11:26:05] ============== [PASSED] ttm_bo_validate_basic ==============
[11:26:05] [PASSED] ttm_bo_validate_invalid_placement
[11:26:05] ============= ttm_bo_validate_same_placement ==============
[11:26:05] [PASSED] System manager
[11:26:05] [PASSED] VRAM manager
[11:26:05] ========= [PASSED] ttm_bo_validate_same_placement ==========
[11:26:05] [PASSED] ttm_bo_validate_failed_alloc
[11:26:05] [PASSED] ttm_bo_validate_pinned
[11:26:05] [PASSED] ttm_bo_validate_busy_placement
[11:26:05] ================ ttm_bo_validate_multihop =================
[11:26:05] [PASSED] Buffer object for userspace
[11:26:05] [PASSED] Kernel buffer object
[11:26:05] [PASSED] Shared buffer object
[11:26:05] ============ [PASSED] ttm_bo_validate_multihop =============
[11:26:05] ========== ttm_bo_validate_no_placement_signaled ==========
[11:26:05] [PASSED] Buffer object in system domain, no page vector
[11:26:05] [PASSED] Buffer object in system domain with an existing page vector
[11:26:05] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[11:26:05] ======== ttm_bo_validate_no_placement_not_signaled ========
[11:26:05] [PASSED] Buffer object for userspace
[11:26:05] [PASSED] Kernel buffer object
[11:26:05] [PASSED] Shared buffer object
[11:26:05] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[11:26:05] [PASSED] ttm_bo_validate_move_fence_signaled
[11:26:05] ========= ttm_bo_validate_move_fence_not_signaled =========
[11:26:05] [PASSED] Waits for GPU
[11:26:05] [PASSED] Tries to lock straight away
[11:26:05] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[11:26:05] [PASSED] ttm_bo_validate_swapout
[11:26:05] [PASSED] ttm_bo_validate_happy_evict
[11:26:05] [PASSED] ttm_bo_validate_all_pinned_evict
[11:26:05] [PASSED] ttm_bo_validate_allowed_only_evict
[11:26:05] [PASSED] ttm_bo_validate_deleted_evict
[11:26:05] [PASSED] ttm_bo_validate_busy_domain_evict
[11:26:05] [PASSED] ttm_bo_validate_evict_gutting
[11:26:05] [PASSED] ttm_bo_validate_recrusive_evict
stty: 'standard input': Inappropriate ioctl for device
[11:26:05] ================= [PASSED] ttm_bo_validate =================
[11:26:05] ============================================================
[11:26:05] Testing complete. Ran 102 tests: passed: 102
[11:26:05] Elapsed time: 11.370s total, 1.734s configuring, 9.370s building, 0.216s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 19+ messages in thread
* ✓ Xe.CI.BAT: success for drm/i915/dsi: Some DSI fixes and improvements
2026-03-26 11:18 [PATCH 0/5] drm/i915/dsi: Some DSI fixes and improvements Ville Syrjala
` (6 preceding siblings ...)
2026-03-26 11:26 ` ✓ CI.KUnit: success " Patchwork
@ 2026-03-26 12:00 ` Patchwork
2026-03-27 0:36 ` ✓ Xe.CI.FULL: " Patchwork
8 siblings, 0 replies; 19+ messages in thread
From: Patchwork @ 2026-03-26 12:00 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 1413 bytes --]
== Series Details ==
Series: drm/i915/dsi: Some DSI fixes and improvements
URL : https://patchwork.freedesktop.org/series/163908/
State : success
== Summary ==
CI Bug Log - changes from xe-4792-bff01d5de5118e98342ba4531ae5ac39eb9d9875_BAT -> xe-pw-163908v1_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (14 -> 14)
------------------------------
No changes in participating hosts
Known issues
------------
Here are the changes found in xe-pw-163908v1_BAT that come from known issues:
### IGT changes ###
#### Possible fixes ####
* igt@xe_waitfence@reltime:
- bat-dg2-oem2: [FAIL][1] ([Intel XE#6520]) -> [PASS][2]
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4792-bff01d5de5118e98342ba4531ae5ac39eb9d9875/bat-dg2-oem2/igt@xe_waitfence@reltime.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163908v1/bat-dg2-oem2/igt@xe_waitfence@reltime.html
[Intel XE#6520]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6520
Build changes
-------------
* Linux: xe-4792-bff01d5de5118e98342ba4531ae5ac39eb9d9875 -> xe-pw-163908v1
IGT_8833: 8833
xe-4792-bff01d5de5118e98342ba4531ae5ac39eb9d9875: bff01d5de5118e98342ba4531ae5ac39eb9d9875
xe-pw-163908v1: 163908v1
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163908v1/index.html
[-- Attachment #2: Type: text/html, Size: 1978 bytes --]
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 3/5] drm/i915/dsi: Make 'clock_stop' boolean
2026-03-26 11:18 ` [PATCH 3/5] drm/i915/dsi: Make 'clock_stop' boolean Ville Syrjala
@ 2026-03-26 13:40 ` Jani Nikula
2026-03-26 14:02 ` Ville Syrjälä
0 siblings, 1 reply; 19+ messages in thread
From: Jani Nikula @ 2026-03-26 13:40 UTC (permalink / raw)
To: Ville Syrjala, intel-gfx; +Cc: intel-xe
On Thu, 26 Mar 2026, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> The DSI 'clock_stop' parameter is a boolean, so use a real
> 'bool' for it. And pimp the debug print while at it.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_dsi.h | 2 +-
> drivers/gpu/drm/i915/display/intel_dsi_vbt.c | 4 ++--
> 2 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dsi.h b/drivers/gpu/drm/i915/display/intel_dsi.h
> index 8e39d2b52c54..0023ac341aa0 100644
> --- a/drivers/gpu/drm/i915/display/intel_dsi.h
> +++ b/drivers/gpu/drm/i915/display/intel_dsi.h
> @@ -81,7 +81,7 @@ struct intel_dsi {
> int video_mode;
>
> bool eot_pkt;
> - u8 clock_stop;
> + bool clock_stop;
>
> u8 escape_clk_div;
> u8 dual_link;
> diff --git a/drivers/gpu/drm/i915/display/intel_dsi_vbt.c b/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
> index 51f6a5b82cb2..23da7f5f9578 100644
> --- a/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
> +++ b/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
> @@ -719,7 +719,7 @@ void intel_dsi_log_params(struct intel_dsi *intel_dsi)
> drm_printf(&p, "Burst mode ratio %d\n", intel_dsi->burst_mode_ratio);
> drm_printf(&p, "Reset timer %d\n", intel_dsi->rst_timer_val);
> drm_printf(&p, "EoT packet %s\n", str_enabled_disabled(intel_dsi->eot_pkt));
> - drm_printf(&p, "Clockstop %s\n", str_enabled_disabled(!intel_dsi->clock_stop));
> + drm_printf(&p, "Clock stop during BLLP %s\n", str_enabled_disabled(intel_dsi->clock_stop));
What's with the reversed !intel_dsi->clock_stop in the existing log and
the change here?
> drm_printf(&p, "Mode %s\n", intel_dsi->operation_mode ? "command" : "video");
> if (intel_dsi->dual_link == DSI_DUAL_LINK_FRONT_BACK)
> drm_printf(&p, "Dual link: DSI_DUAL_LINK_FRONT_BACK\n");
> @@ -771,7 +771,7 @@ bool intel_dsi_vbt_init(struct intel_dsi *intel_dsi, u16 panel_id)
> drm_dbg_kms(display->drm, "\n");
>
> intel_dsi->eot_pkt = !mipi_config->eot_pkt_disabled;
> - intel_dsi->clock_stop = mipi_config->enable_clk_stop ? 1 : 0;
> + intel_dsi->clock_stop = mipi_config->enable_clk_stop;
> intel_dsi->lane_count = mipi_config->lane_cnt + 1;
> intel_dsi->pixel_format =
> vbt_to_dsi_pixel_format(mipi_config->videomode_color_format);
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 3/5] drm/i915/dsi: Make 'clock_stop' boolean
2026-03-26 13:40 ` Jani Nikula
@ 2026-03-26 14:02 ` Ville Syrjälä
2026-03-26 15:01 ` Jani Nikula
0 siblings, 1 reply; 19+ messages in thread
From: Ville Syrjälä @ 2026-03-26 14:02 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-gfx, intel-xe
On Thu, Mar 26, 2026 at 03:40:56PM +0200, Jani Nikula wrote:
> On Thu, 26 Mar 2026, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >
> > The DSI 'clock_stop' parameter is a boolean, so use a real
> > 'bool' for it. And pimp the debug print while at it.
> >
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > ---
> > drivers/gpu/drm/i915/display/intel_dsi.h | 2 +-
> > drivers/gpu/drm/i915/display/intel_dsi_vbt.c | 4 ++--
> > 2 files changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_dsi.h b/drivers/gpu/drm/i915/display/intel_dsi.h
> > index 8e39d2b52c54..0023ac341aa0 100644
> > --- a/drivers/gpu/drm/i915/display/intel_dsi.h
> > +++ b/drivers/gpu/drm/i915/display/intel_dsi.h
> > @@ -81,7 +81,7 @@ struct intel_dsi {
> > int video_mode;
> >
> > bool eot_pkt;
> > - u8 clock_stop;
> > + bool clock_stop;
> >
> > u8 escape_clk_div;
> > u8 dual_link;
> > diff --git a/drivers/gpu/drm/i915/display/intel_dsi_vbt.c b/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
> > index 51f6a5b82cb2..23da7f5f9578 100644
> > --- a/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
> > +++ b/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
> > @@ -719,7 +719,7 @@ void intel_dsi_log_params(struct intel_dsi *intel_dsi)
> > drm_printf(&p, "Burst mode ratio %d\n", intel_dsi->burst_mode_ratio);
> > drm_printf(&p, "Reset timer %d\n", intel_dsi->rst_timer_val);
> > drm_printf(&p, "EoT packet %s\n", str_enabled_disabled(intel_dsi->eot_pkt));
> > - drm_printf(&p, "Clockstop %s\n", str_enabled_disabled(!intel_dsi->clock_stop));
> > + drm_printf(&p, "Clock stop during BLLP %s\n", str_enabled_disabled(intel_dsi->clock_stop));
>
> What's with the reversed !intel_dsi->clock_stop in the existing log and
> the change here?
I've had these sitting around for a while so completely forgot I changed
it.
Looks that it's been wrong since the initial commit.
Apparently v2 of the patch
https://lore.kernel.org/intel-gfx/1397454507-10273-5-git-send-email-shobhit.kumar@intel.com/
had it the correct way around, but then it got messed in
in v3 while the capital letters were being made lowercase.
I can split that out into its own patch with that explanation.
>
> > drm_printf(&p, "Mode %s\n", intel_dsi->operation_mode ? "command" : "video");
> > if (intel_dsi->dual_link == DSI_DUAL_LINK_FRONT_BACK)
> > drm_printf(&p, "Dual link: DSI_DUAL_LINK_FRONT_BACK\n");
> > @@ -771,7 +771,7 @@ bool intel_dsi_vbt_init(struct intel_dsi *intel_dsi, u16 panel_id)
> > drm_dbg_kms(display->drm, "\n");
> >
> > intel_dsi->eot_pkt = !mipi_config->eot_pkt_disabled;
> > - intel_dsi->clock_stop = mipi_config->enable_clk_stop ? 1 : 0;
> > + intel_dsi->clock_stop = mipi_config->enable_clk_stop;
> > intel_dsi->lane_count = mipi_config->lane_cnt + 1;
> > intel_dsi->pixel_format =
> > vbt_to_dsi_pixel_format(mipi_config->videomode_color_format);
>
> --
> Jani Nikula, Intel
--
Ville Syrjälä
Intel
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 3/5] drm/i915/dsi: Make 'clock_stop' boolean
2026-03-26 14:02 ` Ville Syrjälä
@ 2026-03-26 15:01 ` Jani Nikula
2026-03-26 15:16 ` Ville Syrjälä
0 siblings, 1 reply; 19+ messages in thread
From: Jani Nikula @ 2026-03-26 15:01 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: intel-gfx, intel-xe
On Thu, 26 Mar 2026, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote:
> On Thu, Mar 26, 2026 at 03:40:56PM +0200, Jani Nikula wrote:
>> On Thu, 26 Mar 2026, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
>> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> >
>> > The DSI 'clock_stop' parameter is a boolean, so use a real
>> > 'bool' for it. And pimp the debug print while at it.
>> >
>> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> > ---
>> > drivers/gpu/drm/i915/display/intel_dsi.h | 2 +-
>> > drivers/gpu/drm/i915/display/intel_dsi_vbt.c | 4 ++--
>> > 2 files changed, 3 insertions(+), 3 deletions(-)
>> >
>> > diff --git a/drivers/gpu/drm/i915/display/intel_dsi.h b/drivers/gpu/drm/i915/display/intel_dsi.h
>> > index 8e39d2b52c54..0023ac341aa0 100644
>> > --- a/drivers/gpu/drm/i915/display/intel_dsi.h
>> > +++ b/drivers/gpu/drm/i915/display/intel_dsi.h
>> > @@ -81,7 +81,7 @@ struct intel_dsi {
>> > int video_mode;
>> >
>> > bool eot_pkt;
>> > - u8 clock_stop;
>> > + bool clock_stop;
>> >
>> > u8 escape_clk_div;
>> > u8 dual_link;
>> > diff --git a/drivers/gpu/drm/i915/display/intel_dsi_vbt.c b/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
>> > index 51f6a5b82cb2..23da7f5f9578 100644
>> > --- a/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
>> > +++ b/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
>> > @@ -719,7 +719,7 @@ void intel_dsi_log_params(struct intel_dsi *intel_dsi)
>> > drm_printf(&p, "Burst mode ratio %d\n", intel_dsi->burst_mode_ratio);
>> > drm_printf(&p, "Reset timer %d\n", intel_dsi->rst_timer_val);
>> > drm_printf(&p, "EoT packet %s\n", str_enabled_disabled(intel_dsi->eot_pkt));
>> > - drm_printf(&p, "Clockstop %s\n", str_enabled_disabled(!intel_dsi->clock_stop));
>> > + drm_printf(&p, "Clock stop during BLLP %s\n", str_enabled_disabled(intel_dsi->clock_stop));
>>
>> What's with the reversed !intel_dsi->clock_stop in the existing log and
>> the change here?
>
> I've had these sitting around for a while so completely forgot I changed
> it.
>
> Looks that it's been wrong since the initial commit.
>
> Apparently v2 of the patch
> https://lore.kernel.org/intel-gfx/1397454507-10273-5-git-send-email-shobhit.kumar@intel.com/
> had it the correct way around, but then it got messed in
> in v3 while the capital letters were being made lowercase.
>
> I can split that out into its own patch with that explanation.
Not sure I care enough, other than please mention it in the commit
message. Unless you specifically want that fix backported too.
BR,
Jani.
>
>>
>> > drm_printf(&p, "Mode %s\n", intel_dsi->operation_mode ? "command" : "video");
>> > if (intel_dsi->dual_link == DSI_DUAL_LINK_FRONT_BACK)
>> > drm_printf(&p, "Dual link: DSI_DUAL_LINK_FRONT_BACK\n");
>> > @@ -771,7 +771,7 @@ bool intel_dsi_vbt_init(struct intel_dsi *intel_dsi, u16 panel_id)
>> > drm_dbg_kms(display->drm, "\n");
>> >
>> > intel_dsi->eot_pkt = !mipi_config->eot_pkt_disabled;
>> > - intel_dsi->clock_stop = mipi_config->enable_clk_stop ? 1 : 0;
>> > + intel_dsi->clock_stop = mipi_config->enable_clk_stop;
>> > intel_dsi->lane_count = mipi_config->lane_cnt + 1;
>> > intel_dsi->pixel_format =
>> > vbt_to_dsi_pixel_format(mipi_config->videomode_color_format);
>>
>> --
>> Jani Nikula, Intel
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 3/5] drm/i915/dsi: Make 'clock_stop' boolean
2026-03-26 15:01 ` Jani Nikula
@ 2026-03-26 15:16 ` Ville Syrjälä
2026-03-26 15:22 ` Jani Nikula
0 siblings, 1 reply; 19+ messages in thread
From: Ville Syrjälä @ 2026-03-26 15:16 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-gfx, intel-xe
On Thu, Mar 26, 2026 at 05:01:33PM +0200, Jani Nikula wrote:
> On Thu, 26 Mar 2026, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote:
> > On Thu, Mar 26, 2026 at 03:40:56PM +0200, Jani Nikula wrote:
> >> On Thu, 26 Mar 2026, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> >> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >> >
> >> > The DSI 'clock_stop' parameter is a boolean, so use a real
> >> > 'bool' for it. And pimp the debug print while at it.
> >> >
> >> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >> > ---
> >> > drivers/gpu/drm/i915/display/intel_dsi.h | 2 +-
> >> > drivers/gpu/drm/i915/display/intel_dsi_vbt.c | 4 ++--
> >> > 2 files changed, 3 insertions(+), 3 deletions(-)
> >> >
> >> > diff --git a/drivers/gpu/drm/i915/display/intel_dsi.h b/drivers/gpu/drm/i915/display/intel_dsi.h
> >> > index 8e39d2b52c54..0023ac341aa0 100644
> >> > --- a/drivers/gpu/drm/i915/display/intel_dsi.h
> >> > +++ b/drivers/gpu/drm/i915/display/intel_dsi.h
> >> > @@ -81,7 +81,7 @@ struct intel_dsi {
> >> > int video_mode;
> >> >
> >> > bool eot_pkt;
> >> > - u8 clock_stop;
> >> > + bool clock_stop;
> >> >
> >> > u8 escape_clk_div;
> >> > u8 dual_link;
> >> > diff --git a/drivers/gpu/drm/i915/display/intel_dsi_vbt.c b/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
> >> > index 51f6a5b82cb2..23da7f5f9578 100644
> >> > --- a/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
> >> > +++ b/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
> >> > @@ -719,7 +719,7 @@ void intel_dsi_log_params(struct intel_dsi *intel_dsi)
> >> > drm_printf(&p, "Burst mode ratio %d\n", intel_dsi->burst_mode_ratio);
> >> > drm_printf(&p, "Reset timer %d\n", intel_dsi->rst_timer_val);
> >> > drm_printf(&p, "EoT packet %s\n", str_enabled_disabled(intel_dsi->eot_pkt));
> >> > - drm_printf(&p, "Clockstop %s\n", str_enabled_disabled(!intel_dsi->clock_stop));
> >> > + drm_printf(&p, "Clock stop during BLLP %s\n", str_enabled_disabled(intel_dsi->clock_stop));
> >>
> >> What's with the reversed !intel_dsi->clock_stop in the existing log and
> >> the change here?
> >
> > I've had these sitting around for a while so completely forgot I changed
> > it.
> >
> > Looks that it's been wrong since the initial commit.
> >
> > Apparently v2 of the patch
> > https://lore.kernel.org/intel-gfx/1397454507-10273-5-git-send-email-shobhit.kumar@intel.com/
> > had it the correct way around, but then it got messed in
> > in v3 while the capital letters were being made lowercase.
> >
> > I can split that out into its own patch with that explanation.
>
> Not sure I care enough, other than please mention it in the commit
> message. Unless you specifically want that fix backported too.
Nah. I guess I'll just amend the commit message a bit.
--
Ville Syrjälä
Intel
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 1/5] drm/i915/dsi: Don't do DSC horizontal timing adjustments in command mode
2026-03-26 11:18 ` [PATCH 1/5] drm/i915/dsi: Don't do DSC horizontal timing adjustments in command mode Ville Syrjala
@ 2026-03-26 15:20 ` Jani Nikula
0 siblings, 0 replies; 19+ messages in thread
From: Jani Nikula @ 2026-03-26 15:20 UTC (permalink / raw)
To: Ville Syrjala, intel-gfx; +Cc: intel-xe, stable
On Thu, 26 Mar 2026, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Stop adjusting the horizontal timing values based on the
> compression ratio in command mode. Bspec seems to be telling
> us to do this only in video mode, and this is also how the
> Windows driver does things.
>
> This should also fix a div-by-zero on some machines because due to
> the adjusted htotal ends up being so small that we end up with
> line_time_us==0 when trying to determine the vtotal value in
> command mode.
>
> Note that this doesn't actually make the display on the
> Huawei Matebook E work, but at least the kernel no longer
> explodes when the driver loads.
>
> Cc: stable@vger.kernel.org
> Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12045
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Fixes: 53693f02d80e ("drm/i915/dsi: account for DSC in horizontal timings")
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
> ---
> drivers/gpu/drm/i915/display/icl_dsi.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c
> index c04327979678..a763f2b13ff2 100644
> --- a/drivers/gpu/drm/i915/display/icl_dsi.c
> +++ b/drivers/gpu/drm/i915/display/icl_dsi.c
> @@ -888,7 +888,7 @@ gen11_dsi_set_transcoder_timings(struct intel_encoder *encoder,
> * non-compressed link speeds, and simplifies down to the ratio between
> * compressed and non-compressed bpp.
> */
> - if (crtc_state->dsc.compression_enable) {
> + if (is_vid_mode(intel_dsi) && crtc_state->dsc.compression_enable) {
> mul = fxp_q4_to_int(crtc_state->dsc.compressed_bpp_x16);
> div = mipi_dsi_pixel_format_to_bpp(intel_dsi->pixel_format);
> }
> @@ -1502,7 +1502,7 @@ static void gen11_dsi_get_timings(struct intel_encoder *encoder,
> struct drm_display_mode *adjusted_mode =
> &pipe_config->hw.adjusted_mode;
>
> - if (pipe_config->dsc.compressed_bpp_x16) {
> + if (is_vid_mode(intel_dsi) && pipe_config->dsc.compressed_bpp_x16) {
> int div = fxp_q4_to_int(pipe_config->dsc.compressed_bpp_x16);
> int mul = mipi_dsi_pixel_format_to_bpp(intel_dsi->pixel_format);
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 2/5] drm/i915/dsi: s/eotp_pkt/eot_pkt/
2026-03-26 11:18 ` [PATCH 2/5] drm/i915/dsi: s/eotp_pkt/eot_pkt/ Ville Syrjala
@ 2026-03-26 15:22 ` Jani Nikula
0 siblings, 0 replies; 19+ messages in thread
From: Jani Nikula @ 2026-03-26 15:22 UTC (permalink / raw)
To: Ville Syrjala, intel-gfx; +Cc: intel-xe
On Thu, 26 Mar 2026, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> eotp == "End of Transmission Packet". Drop the redundant
> extra 'p' from 'eotp_pkt', and make the thing a boolean
> while at it.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
> ---
> drivers/gpu/drm/i915/display/icl_dsi.c | 2 +-
> drivers/gpu/drm/i915/display/intel_dsi.h | 3 +--
> drivers/gpu/drm/i915/display/intel_dsi_vbt.c | 4 ++--
> drivers/gpu/drm/i915/display/vlv_dsi.c | 2 +-
> 4 files changed, 5 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c
> index a763f2b13ff2..6ea37929198c 100644
> --- a/drivers/gpu/drm/i915/display/icl_dsi.c
> +++ b/drivers/gpu/drm/i915/display/icl_dsi.c
> @@ -711,7 +711,7 @@ gen11_dsi_configure_transcoder(struct intel_encoder *encoder,
> dsi_trans = dsi_port_to_transcoder(port);
> tmp = intel_de_read(display, DSI_TRANS_FUNC_CONF(dsi_trans));
>
> - if (intel_dsi->eotp_pkt)
> + if (intel_dsi->eot_pkt)
> tmp &= ~EOTP_DISABLED;
> else
> tmp |= EOTP_DISABLED;
> diff --git a/drivers/gpu/drm/i915/display/intel_dsi.h b/drivers/gpu/drm/i915/display/intel_dsi.h
> index 489d26ffd235..8e39d2b52c54 100644
> --- a/drivers/gpu/drm/i915/display/intel_dsi.h
> +++ b/drivers/gpu/drm/i915/display/intel_dsi.h
> @@ -80,8 +80,7 @@ struct intel_dsi {
> /* NON_BURST_SYNC_PULSE, NON_BURST_SYNC_EVENTS, or BURST_MODE */
> int video_mode;
>
> - /* eot for MIPI_EOT_DISABLE register */
> - u8 eotp_pkt;
> + bool eot_pkt;
> u8 clock_stop;
>
> u8 escape_clk_div;
> diff --git a/drivers/gpu/drm/i915/display/intel_dsi_vbt.c b/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
> index 18755a8e613d..51f6a5b82cb2 100644
> --- a/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
> +++ b/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
> @@ -718,7 +718,7 @@ void intel_dsi_log_params(struct intel_dsi *intel_dsi)
> "burst" : "<unknown>");
> drm_printf(&p, "Burst mode ratio %d\n", intel_dsi->burst_mode_ratio);
> drm_printf(&p, "Reset timer %d\n", intel_dsi->rst_timer_val);
> - drm_printf(&p, "Eot %s\n", str_enabled_disabled(intel_dsi->eotp_pkt));
> + drm_printf(&p, "EoT packet %s\n", str_enabled_disabled(intel_dsi->eot_pkt));
> drm_printf(&p, "Clockstop %s\n", str_enabled_disabled(!intel_dsi->clock_stop));
> drm_printf(&p, "Mode %s\n", intel_dsi->operation_mode ? "command" : "video");
> if (intel_dsi->dual_link == DSI_DUAL_LINK_FRONT_BACK)
> @@ -770,7 +770,7 @@ bool intel_dsi_vbt_init(struct intel_dsi *intel_dsi, u16 panel_id)
>
> drm_dbg_kms(display->drm, "\n");
>
> - intel_dsi->eotp_pkt = mipi_config->eot_pkt_disabled ? 0 : 1;
> + intel_dsi->eot_pkt = !mipi_config->eot_pkt_disabled;
> intel_dsi->clock_stop = mipi_config->enable_clk_stop ? 1 : 0;
> intel_dsi->lane_count = mipi_config->lane_cnt + 1;
> intel_dsi->pixel_format =
> diff --git a/drivers/gpu/drm/i915/display/vlv_dsi.c b/drivers/gpu/drm/i915/display/vlv_dsi.c
> index 36591d724638..d4db73c184e5 100644
> --- a/drivers/gpu/drm/i915/display/vlv_dsi.c
> +++ b/drivers/gpu/drm/i915/display/vlv_dsi.c
> @@ -1367,7 +1367,7 @@ static void intel_dsi_prepare(struct intel_encoder *encoder,
> }
>
> tmp = 0;
> - if (intel_dsi->eotp_pkt == 0)
> + if (!intel_dsi->eot_pkt)
> tmp |= EOT_DISABLE;
> if (intel_dsi->clock_stop)
> tmp |= CLOCKSTOP;
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 3/5] drm/i915/dsi: Make 'clock_stop' boolean
2026-03-26 15:16 ` Ville Syrjälä
@ 2026-03-26 15:22 ` Jani Nikula
0 siblings, 0 replies; 19+ messages in thread
From: Jani Nikula @ 2026-03-26 15:22 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: intel-gfx, intel-xe
On Thu, 26 Mar 2026, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote:
> On Thu, Mar 26, 2026 at 05:01:33PM +0200, Jani Nikula wrote:
>> On Thu, 26 Mar 2026, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote:
>> > On Thu, Mar 26, 2026 at 03:40:56PM +0200, Jani Nikula wrote:
>> >> On Thu, 26 Mar 2026, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
>> >> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> >> >
>> >> > The DSI 'clock_stop' parameter is a boolean, so use a real
>> >> > 'bool' for it. And pimp the debug print while at it.
>> >> >
>> >> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> >> > ---
>> >> > drivers/gpu/drm/i915/display/intel_dsi.h | 2 +-
>> >> > drivers/gpu/drm/i915/display/intel_dsi_vbt.c | 4 ++--
>> >> > 2 files changed, 3 insertions(+), 3 deletions(-)
>> >> >
>> >> > diff --git a/drivers/gpu/drm/i915/display/intel_dsi.h b/drivers/gpu/drm/i915/display/intel_dsi.h
>> >> > index 8e39d2b52c54..0023ac341aa0 100644
>> >> > --- a/drivers/gpu/drm/i915/display/intel_dsi.h
>> >> > +++ b/drivers/gpu/drm/i915/display/intel_dsi.h
>> >> > @@ -81,7 +81,7 @@ struct intel_dsi {
>> >> > int video_mode;
>> >> >
>> >> > bool eot_pkt;
>> >> > - u8 clock_stop;
>> >> > + bool clock_stop;
>> >> >
>> >> > u8 escape_clk_div;
>> >> > u8 dual_link;
>> >> > diff --git a/drivers/gpu/drm/i915/display/intel_dsi_vbt.c b/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
>> >> > index 51f6a5b82cb2..23da7f5f9578 100644
>> >> > --- a/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
>> >> > +++ b/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
>> >> > @@ -719,7 +719,7 @@ void intel_dsi_log_params(struct intel_dsi *intel_dsi)
>> >> > drm_printf(&p, "Burst mode ratio %d\n", intel_dsi->burst_mode_ratio);
>> >> > drm_printf(&p, "Reset timer %d\n", intel_dsi->rst_timer_val);
>> >> > drm_printf(&p, "EoT packet %s\n", str_enabled_disabled(intel_dsi->eot_pkt));
>> >> > - drm_printf(&p, "Clockstop %s\n", str_enabled_disabled(!intel_dsi->clock_stop));
>> >> > + drm_printf(&p, "Clock stop during BLLP %s\n", str_enabled_disabled(intel_dsi->clock_stop));
>> >>
>> >> What's with the reversed !intel_dsi->clock_stop in the existing log and
>> >> the change here?
>> >
>> > I've had these sitting around for a while so completely forgot I changed
>> > it.
>> >
>> > Looks that it's been wrong since the initial commit.
>> >
>> > Apparently v2 of the patch
>> > https://lore.kernel.org/intel-gfx/1397454507-10273-5-git-send-email-shobhit.kumar@intel.com/
>> > had it the correct way around, but then it got messed in
>> > in v3 while the capital letters were being made lowercase.
>> >
>> > I can split that out into its own patch with that explanation.
>>
>> Not sure I care enough, other than please mention it in the commit
>> message. Unless you specifically want that fix backported too.
>
> Nah. I guess I'll just amend the commit message a bit.
Also,
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 4/5] drm/i915/dsi: Fill BLLPs with blanking packets if requested
2026-03-26 11:18 ` [PATCH 4/5] drm/i915/dsi: Fill BLLPs with blanking packets if requested Ville Syrjala
@ 2026-03-26 15:23 ` Jani Nikula
0 siblings, 0 replies; 19+ messages in thread
From: Jani Nikula @ 2026-03-26 15:23 UTC (permalink / raw)
To: Ville Syrjala, intel-gfx; +Cc: intel-xe
On Thu, 26 Mar 2026, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> TGL/ADL DSI can be configured to fill all BLLPs with blanking
> packets. Currently we enable that always, but the VBT actually
> tells us whether this is desired or not. Hook that up.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
> ---
> drivers/gpu/drm/i915/display/icl_dsi.c | 9 +++++----
> drivers/gpu/drm/i915/display/icl_dsi_regs.h | 2 +-
> drivers/gpu/drm/i915/display/intel_dsi.h | 1 +
> drivers/gpu/drm/i915/display/intel_dsi_vbt.c | 2 ++
> 4 files changed, 9 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c
> index 6ea37929198c..45ba02486c56 100644
> --- a/drivers/gpu/drm/i915/display/icl_dsi.c
> +++ b/drivers/gpu/drm/i915/display/icl_dsi.c
> @@ -765,10 +765,11 @@ gen11_dsi_configure_transcoder(struct intel_encoder *encoder,
> }
> }
>
> - if (DISPLAY_VER(display) >= 12) {
> - if (is_vid_mode(intel_dsi))
> - tmp |= BLANKING_PACKET_ENABLE;
> - }
> + if (DISPLAY_VER(display) >= 12 &&
> + is_vid_mode(intel_dsi) && intel_dsi->blanking_pkt)
> + tmp |= BLANKING_PACKET_ENABLE;
> + else
> + tmp &= ~BLANKING_PACKET_ENABLE;
>
> /* program DSI operation mode */
> if (is_vid_mode(intel_dsi)) {
> diff --git a/drivers/gpu/drm/i915/display/icl_dsi_regs.h b/drivers/gpu/drm/i915/display/icl_dsi_regs.h
> index b601b7632339..641e8f0b8cdb 100644
> --- a/drivers/gpu/drm/i915/display/icl_dsi_regs.h
> +++ b/drivers/gpu/drm/i915/display/icl_dsi_regs.h
> @@ -232,7 +232,7 @@
> #define CALIBRATION_DISABLED (0x0 << 4)
> #define CALIBRATION_ENABLED_INITIAL_ONLY (0x2 << 4)
> #define CALIBRATION_ENABLED_INITIAL_PERIODIC (0x3 << 4)
> -#define BLANKING_PACKET_ENABLE (1 << 2)
> +#define BLANKING_PACKET_ENABLE (1 << 2) /* tgl+ */
> #define S3D_ORIENTATION_LANDSCAPE (1 << 1)
> #define EOTP_DISABLED (1 << 0)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dsi.h b/drivers/gpu/drm/i915/display/intel_dsi.h
> index 0023ac341aa0..f55d48e43af1 100644
> --- a/drivers/gpu/drm/i915/display/intel_dsi.h
> +++ b/drivers/gpu/drm/i915/display/intel_dsi.h
> @@ -80,6 +80,7 @@ struct intel_dsi {
> /* NON_BURST_SYNC_PULSE, NON_BURST_SYNC_EVENTS, or BURST_MODE */
> int video_mode;
>
> + bool blanking_pkt;
> bool eot_pkt;
> bool clock_stop;
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dsi_vbt.c b/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
> index 23da7f5f9578..c544871dac0b 100644
> --- a/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
> +++ b/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
> @@ -718,6 +718,7 @@ void intel_dsi_log_params(struct intel_dsi *intel_dsi)
> "burst" : "<unknown>");
> drm_printf(&p, "Burst mode ratio %d\n", intel_dsi->burst_mode_ratio);
> drm_printf(&p, "Reset timer %d\n", intel_dsi->rst_timer_val);
> + drm_printf(&p, "Blanking packets during BLLP %s\n", str_enabled_disabled(intel_dsi->blanking_pkt));
> drm_printf(&p, "EoT packet %s\n", str_enabled_disabled(intel_dsi->eot_pkt));
> drm_printf(&p, "Clock stop during BLLP %s\n", str_enabled_disabled(intel_dsi->clock_stop));
> drm_printf(&p, "Mode %s\n", intel_dsi->operation_mode ? "command" : "video");
> @@ -770,6 +771,7 @@ bool intel_dsi_vbt_init(struct intel_dsi *intel_dsi, u16 panel_id)
>
> drm_dbg_kms(display->drm, "\n");
>
> + intel_dsi->blanking_pkt = mipi_config->blanking_packets_during_bllp;
> intel_dsi->eot_pkt = !mipi_config->eot_pkt_disabled;
> intel_dsi->clock_stop = mipi_config->enable_clk_stop;
> intel_dsi->lane_count = mipi_config->lane_cnt + 1;
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 5/5] drm/i915/dsi: Place clock into LP during LPM if requested
2026-03-26 11:18 ` [PATCH 5/5] drm/i915/dsi: Place clock into LP during LPM " Ville Syrjala
@ 2026-03-26 15:24 ` Jani Nikula
0 siblings, 0 replies; 19+ messages in thread
From: Jani Nikula @ 2026-03-26 15:24 UTC (permalink / raw)
To: Ville Syrjala, intel-gfx; +Cc: intel-xe
On Thu, 26 Mar 2026, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> TGL/ADL DSI can be configured to place the clock lane into
> LP state during LPM, if otherwise configured for continuous
> HS clock.
>
> Hook that up. VBT tells us whether this should be done.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
> ---
> drivers/gpu/drm/i915/display/icl_dsi.c | 6 ++++++
> drivers/gpu/drm/i915/display/icl_dsi_regs.h | 1 +
> drivers/gpu/drm/i915/display/intel_dsi.h | 1 +
> drivers/gpu/drm/i915/display/intel_dsi_vbt.c | 2 ++
> 4 files changed, 10 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c
> index 45ba02486c56..afbaa0465842 100644
> --- a/drivers/gpu/drm/i915/display/icl_dsi.c
> +++ b/drivers/gpu/drm/i915/display/icl_dsi.c
> @@ -729,6 +729,12 @@ gen11_dsi_configure_transcoder(struct intel_encoder *encoder,
> else
> tmp |= CLK_HS_CONTINUOUS;
>
> + if (DISPLAY_VER(display) >= 12 &&
> + intel_dsi->lp_clock_during_lpm)
> + tmp |= LP_CLK_DURING_LPM;
> + else
> + tmp &= ~LP_CLK_DURING_LPM;
> +
> /* configure buffer threshold limit to minimum */
> tmp &= ~PIX_BUF_THRESHOLD_MASK;
> tmp |= PIX_BUF_THRESHOLD_1_4;
> diff --git a/drivers/gpu/drm/i915/display/icl_dsi_regs.h b/drivers/gpu/drm/i915/display/icl_dsi_regs.h
> index 641e8f0b8cdb..55ab57adcb0f 100644
> --- a/drivers/gpu/drm/i915/display/icl_dsi_regs.h
> +++ b/drivers/gpu/drm/i915/display/icl_dsi_regs.h
> @@ -227,6 +227,7 @@
> #define CLK_ENTER_LP_AFTER_DATA (0x0 << 8)
> #define CLK_HS_OR_LP (0x2 << 8)
> #define CLK_HS_CONTINUOUS (0x3 << 8)
> +#define LP_CLK_DURING_LPM (1 << 7) /* tgl+ */
> #define LINK_CALIBRATION_MASK (0x3 << 4)
> #define LINK_CALIBRATION_SHIFT 4
> #define CALIBRATION_DISABLED (0x0 << 4)
> diff --git a/drivers/gpu/drm/i915/display/intel_dsi.h b/drivers/gpu/drm/i915/display/intel_dsi.h
> index f55d48e43af1..9fcdabbf3740 100644
> --- a/drivers/gpu/drm/i915/display/intel_dsi.h
> +++ b/drivers/gpu/drm/i915/display/intel_dsi.h
> @@ -80,6 +80,7 @@ struct intel_dsi {
> /* NON_BURST_SYNC_PULSE, NON_BURST_SYNC_EVENTS, or BURST_MODE */
> int video_mode;
>
> + bool lp_clock_during_lpm;
> bool blanking_pkt;
> bool eot_pkt;
> bool clock_stop;
> diff --git a/drivers/gpu/drm/i915/display/intel_dsi_vbt.c b/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
> index c544871dac0b..fe12041e913c 100644
> --- a/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
> +++ b/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
> @@ -718,6 +718,7 @@ void intel_dsi_log_params(struct intel_dsi *intel_dsi)
> "burst" : "<unknown>");
> drm_printf(&p, "Burst mode ratio %d\n", intel_dsi->burst_mode_ratio);
> drm_printf(&p, "Reset timer %d\n", intel_dsi->rst_timer_val);
> + drm_printf(&p, "LP clock during LPM %s\n", str_enabled_disabled(intel_dsi->lp_clock_during_lpm));
> drm_printf(&p, "Blanking packets during BLLP %s\n", str_enabled_disabled(intel_dsi->blanking_pkt));
> drm_printf(&p, "EoT packet %s\n", str_enabled_disabled(intel_dsi->eot_pkt));
> drm_printf(&p, "Clock stop during BLLP %s\n", str_enabled_disabled(intel_dsi->clock_stop));
> @@ -771,6 +772,7 @@ bool intel_dsi_vbt_init(struct intel_dsi *intel_dsi, u16 panel_id)
>
> drm_dbg_kms(display->drm, "\n");
>
> + intel_dsi->lp_clock_during_lpm = mipi_config->lp_clock_during_lpm;
> intel_dsi->blanking_pkt = mipi_config->blanking_packets_during_bllp;
> intel_dsi->eot_pkt = !mipi_config->eot_pkt_disabled;
> intel_dsi->clock_stop = mipi_config->enable_clk_stop;
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 19+ messages in thread
* ✓ Xe.CI.FULL: success for drm/i915/dsi: Some DSI fixes and improvements
2026-03-26 11:18 [PATCH 0/5] drm/i915/dsi: Some DSI fixes and improvements Ville Syrjala
` (7 preceding siblings ...)
2026-03-26 12:00 ` ✓ Xe.CI.BAT: " Patchwork
@ 2026-03-27 0:36 ` Patchwork
8 siblings, 0 replies; 19+ messages in thread
From: Patchwork @ 2026-03-27 0:36 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 1967 bytes --]
== Series Details ==
Series: drm/i915/dsi: Some DSI fixes and improvements
URL : https://patchwork.freedesktop.org/series/163908/
State : success
== Summary ==
CI Bug Log - changes from xe-4792-bff01d5de5118e98342ba4531ae5ac39eb9d9875_FULL -> xe-pw-163908v1_FULL
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (2 -> 2)
------------------------------
No changes in participating hosts
Known issues
------------
Here are the changes found in xe-pw-163908v1_FULL that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1:
- shard-lnl: [PASS][1] -> [FAIL][2] ([Intel XE#301]) +1 other test fail
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4792-bff01d5de5118e98342ba4531ae5ac39eb9d9875/shard-lnl-1/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163908v1/shard-lnl-8/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html
#### Possible fixes ####
* igt@kms_flip@flip-vs-expired-vblank@a-edp1:
- shard-lnl: [FAIL][3] ([Intel XE#301]) -> [PASS][4] +1 other test pass
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4792-bff01d5de5118e98342ba4531ae5ac39eb9d9875/shard-lnl-7/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163908v1/shard-lnl-4/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
[Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
Build changes
-------------
* Linux: xe-4792-bff01d5de5118e98342ba4531ae5ac39eb9d9875 -> xe-pw-163908v1
IGT_8833: 8833
xe-4792-bff01d5de5118e98342ba4531ae5ac39eb9d9875: bff01d5de5118e98342ba4531ae5ac39eb9d9875
xe-pw-163908v1: 163908v1
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163908v1/index.html
[-- Attachment #2: Type: text/html, Size: 2630 bytes --]
^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2026-03-27 0:36 UTC | newest]
Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-26 11:18 [PATCH 0/5] drm/i915/dsi: Some DSI fixes and improvements Ville Syrjala
2026-03-26 11:18 ` [PATCH 1/5] drm/i915/dsi: Don't do DSC horizontal timing adjustments in command mode Ville Syrjala
2026-03-26 15:20 ` Jani Nikula
2026-03-26 11:18 ` [PATCH 2/5] drm/i915/dsi: s/eotp_pkt/eot_pkt/ Ville Syrjala
2026-03-26 15:22 ` Jani Nikula
2026-03-26 11:18 ` [PATCH 3/5] drm/i915/dsi: Make 'clock_stop' boolean Ville Syrjala
2026-03-26 13:40 ` Jani Nikula
2026-03-26 14:02 ` Ville Syrjälä
2026-03-26 15:01 ` Jani Nikula
2026-03-26 15:16 ` Ville Syrjälä
2026-03-26 15:22 ` Jani Nikula
2026-03-26 11:18 ` [PATCH 4/5] drm/i915/dsi: Fill BLLPs with blanking packets if requested Ville Syrjala
2026-03-26 15:23 ` Jani Nikula
2026-03-26 11:18 ` [PATCH 5/5] drm/i915/dsi: Place clock into LP during LPM " Ville Syrjala
2026-03-26 15:24 ` Jani Nikula
2026-03-26 11:24 ` ✗ CI.checkpatch: warning for drm/i915/dsi: Some DSI fixes and improvements Patchwork
2026-03-26 11:26 ` ✓ CI.KUnit: success " Patchwork
2026-03-26 12:00 ` ✓ Xe.CI.BAT: " Patchwork
2026-03-27 0:36 ` ✓ Xe.CI.FULL: " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox