* [RFC v1 00/11] support for vswing/preemphasis override
@ 2026-03-08 13:24 Michał Grzelak
2026-03-08 13:24 ` [RFC v1 01/11] drm/i915/bios: search for Block 57 by default Michał Grzelak
` (14 more replies)
0 siblings, 15 replies; 19+ messages in thread
From: Michał Grzelak @ 2026-03-08 13:24 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: Michał Grzelak
This patch series aims to get initial feedback & CI coverage on adding
support for Vswing / Preemphasis Override from VBT. Currently patchset
covers all platforms from MTL onward. There is an additional patch
covering platforms from ADL-P, but since it is still work-in-progress,
it hasn't been included for now.
BR,
Michał
Michał Grzelak (11):
drm/i915/bios: search for Block 57 by default
drm/i915/bios: cache V/P Override block
drm/i915/bios: remove V/P Override warning
drm/i915/bios: print V/P Override port info
drm/i915/buf_trans: add intel_dp_above_hbr1() helper
drm/i915/buf_trans: add intel_edp_above_hbr2() helper
drm/i915/lt: align xe3plpd with V/P Override layout
drm/i915/buf_trans: switch from u8 to u32
drm/i915/xe3p: add V/P Override support for xe3p
drm/i915/dg2: warn on V/P Override request on dg2
drm/i915/mtl: add V/P Override support for mtl+
drivers/gpu/drm/i915/display/intel_bios.c | 33 +-
drivers/gpu/drm/i915/display/intel_bios.h | 1 +
.../drm/i915/display/intel_ddi_buf_trans.c | 323 ++++++++++++++----
.../drm/i915/display/intel_ddi_buf_trans.h | 16 +-
.../gpu/drm/i915/display/intel_display_core.h | 2 +
5 files changed, 300 insertions(+), 75 deletions(-)
--
2.45.2
^ permalink raw reply [flat|nested] 19+ messages in thread
* [RFC v1 01/11] drm/i915/bios: search for Block 57 by default
2026-03-08 13:24 [RFC v1 00/11] support for vswing/preemphasis override Michał Grzelak
@ 2026-03-08 13:24 ` Michał Grzelak
2026-03-08 13:24 ` [RFC v1 02/11] drm/i915/bios: cache V/P Override block Michał Grzelak
` (13 subsequent siblings)
14 siblings, 0 replies; 19+ messages in thread
From: Michał Grzelak @ 2026-03-08 13:24 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: Michał Grzelak
Start searching for Vswing / Preemphasis Override Block on VBT parsing.
Signed-off-by: Michał Grzelak <michal.grzelak@intel.com>
---
drivers/gpu/drm/i915/display/intel_bios.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c
index b6fe87c29aa7..5700de438fdf 100644
--- a/drivers/gpu/drm/i915/display/intel_bios.c
+++ b/drivers/gpu/drm/i915/display/intel_bios.c
@@ -200,6 +200,8 @@ static const struct {
.min_size = sizeof(struct bdb_mipi_sequence) },
{ .section_id = BDB_COMPRESSION_PARAMETERS,
.min_size = sizeof(struct bdb_compression_parameters), },
+ { .section_id = BDB_VSWING_PREEMPH,
+ .min_size = sizeof(struct bdb_vswing_preemph), },
{ .section_id = BDB_GENERIC_DTD,
.min_size = sizeof(struct bdb_generic_dtd), },
};
--
2.45.2
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [RFC v1 02/11] drm/i915/bios: cache V/P Override block
2026-03-08 13:24 [RFC v1 00/11] support for vswing/preemphasis override Michał Grzelak
2026-03-08 13:24 ` [RFC v1 01/11] drm/i915/bios: search for Block 57 by default Michał Grzelak
@ 2026-03-08 13:24 ` Michał Grzelak
2026-03-08 13:24 ` [RFC v1 03/11] drm/i915/bios: remove V/P Override warning Michał Grzelak
` (12 subsequent siblings)
14 siblings, 0 replies; 19+ messages in thread
From: Michał Grzelak @ 2026-03-08 13:24 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: Michał Grzelak
Add field into VBT data structure for pointer to Block 57. Cache the
pointer into it during VBT parsing.
In case firmware lacks Block 57 it will not be found during
init_bdb_blocks(). In turn it will not be appended to ->vbt.bdb_blocks
list. Thus bdb_find_section() will set .vswing to NULL.
Init the field to NULL when no VBT was provided.
Signed-off-by: Michał Grzelak <michal.grzelak@intel.com>
---
drivers/gpu/drm/i915/display/intel_bios.c | 11 +++++++++++
drivers/gpu/drm/i915/display/intel_display_core.h | 2 ++
2 files changed, 13 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c
index 5700de438fdf..ae33b93772ef 100644
--- a/drivers/gpu/drm/i915/display/intel_bios.c
+++ b/drivers/gpu/drm/i915/display/intel_bios.c
@@ -2185,6 +2185,15 @@ parse_compression_parameters(struct intel_display *display)
}
}
+static void
+cache_vswing_preemph_block(struct intel_display *display)
+{
+ const u32 *block;
+
+ block = bdb_find_section(display, BDB_VSWING_PREEMPH);
+ display->vbt.override_vswing = block;
+}
+
static u8 translate_iboost(struct intel_display *display, u8 val)
{
static const u8 mapping[] = { 1, 3, 7 }; /* See VBT spec */
@@ -3046,6 +3055,7 @@ init_vbt_missing_defaults(struct intel_display *display)
child->device_type, port_name(port));
}
+ display->vbt.override_vswing = NULL;
/* Bypass some minimum baseline VBT version checks */
display->vbt.version = 155;
}
@@ -3276,6 +3286,7 @@ void intel_bios_init(struct intel_display *display)
/* Depends on child device list */
parse_compression_parameters(display);
+ cache_vswing_preemph_block(display);
out:
if (!vbt) {
diff --git a/drivers/gpu/drm/i915/display/intel_display_core.h b/drivers/gpu/drm/i915/display/intel_display_core.h
index d708d322aa85..f974df3becef 100644
--- a/drivers/gpu/drm/i915/display/intel_display_core.h
+++ b/drivers/gpu/drm/i915/display/intel_display_core.h
@@ -233,6 +233,8 @@ struct intel_vbt_data {
struct list_head display_devices;
struct list_head bdb_blocks;
+ const u32 *override_vswing;
+
struct sdvo_device_mapping {
u8 initialized;
u8 dvo_port;
--
2.45.2
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [RFC v1 03/11] drm/i915/bios: remove V/P Override warning
2026-03-08 13:24 [RFC v1 00/11] support for vswing/preemphasis override Michał Grzelak
2026-03-08 13:24 ` [RFC v1 01/11] drm/i915/bios: search for Block 57 by default Michał Grzelak
2026-03-08 13:24 ` [RFC v1 02/11] drm/i915/bios: cache V/P Override block Michał Grzelak
@ 2026-03-08 13:24 ` Michał Grzelak
2026-03-08 13:24 ` [RFC v1 04/11] drm/i915/bios: print V/P Override port info Michał Grzelak
` (11 subsequent siblings)
14 siblings, 0 replies; 19+ messages in thread
From: Michał Grzelak @ 2026-03-08 13:24 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: Michał Grzelak
Remove warning when using vswing/preemph tables. Remove child_device
from print_ddi_port() since drm_WARN() was the only user of it.
Signed-off-by: Michał Grzelak <michal.grzelak@intel.com>
---
drivers/gpu/drm/i915/display/intel_bios.c | 9 ---------
1 file changed, 9 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c
index ae33b93772ef..f88f330d21ae 100644
--- a/drivers/gpu/drm/i915/display/intel_bios.c
+++ b/drivers/gpu/drm/i915/display/intel_bios.c
@@ -2728,7 +2728,6 @@ static bool is_port_valid(struct intel_display *display, enum port port)
static void print_ddi_port(const struct intel_bios_encoder_data *devdata)
{
struct intel_display *display = devdata->display;
- const struct child_device_config *child = &devdata->child;
bool is_dvi, is_hdmi, is_dp, is_edp, is_dsi, is_crt, supports_typec_usb, supports_tbt;
int dp_boost_level, dp_max_link_rate, hdmi_boost_level, hdmi_level_shift, max_tmds_clock;
enum port port;
@@ -2796,14 +2795,6 @@ static void print_ddi_port(const struct intel_bios_encoder_data *devdata)
drm_dbg_kms(display->drm,
"Port %c VBT DP max link rate: %d\n",
port_name(port), dp_max_link_rate);
-
- /*
- * FIXME need to implement support for VBT
- * vswing/preemph tables should this ever trigger.
- */
- drm_WARN(display->drm, child->use_vbt_vswing,
- "Port %c asks to use VBT vswing/preemph tables\n",
- port_name(port));
}
static void parse_ddi_port(struct intel_bios_encoder_data *devdata)
--
2.45.2
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [RFC v1 04/11] drm/i915/bios: print V/P Override port info
2026-03-08 13:24 [RFC v1 00/11] support for vswing/preemphasis override Michał Grzelak
` (2 preceding siblings ...)
2026-03-08 13:24 ` [RFC v1 03/11] drm/i915/bios: remove V/P Override warning Michał Grzelak
@ 2026-03-08 13:24 ` Michał Grzelak
2026-03-08 13:24 ` [RFC v1 05/11] drm/i915/buf_trans: add intel_dp_above_hbr1() helper Michał Grzelak
` (10 subsequent siblings)
14 siblings, 0 replies; 19+ messages in thread
From: Michał Grzelak @ 2026-03-08 13:24 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: Michał Grzelak
Check if port uses vswing/preemph override tables. Print info about port
when requested.
Signed-off-by: Michał Grzelak <michal.grzelak@intel.com>
---
drivers/gpu/drm/i915/display/intel_bios.c | 11 +++++++++++
drivers/gpu/drm/i915/display/intel_bios.h | 1 +
2 files changed, 12 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c
index f88f330d21ae..6c618f17f772 100644
--- a/drivers/gpu/drm/i915/display/intel_bios.c
+++ b/drivers/gpu/drm/i915/display/intel_bios.c
@@ -2764,6 +2764,11 @@ static void print_ddi_port(const struct intel_bios_encoder_data *devdata)
"Port %c supports dynamic DDI allocation in TCSS\n",
port_name(port));
+ if (intel_bios_encoder_overrides_vswing(devdata))
+ drm_dbg_kms(display->drm,
+ "Port %c overrides VBT vswing/preemphasis tables\n",
+ port_name(port));
+
hdmi_level_shift = intel_bios_hdmi_level_shift(devdata);
if (hdmi_level_shift >= 0) {
drm_dbg_kms(display->drm,
@@ -3795,6 +3800,12 @@ bool intel_bios_encoder_supports_tbt(const struct intel_bios_encoder_data *devda
return devdata->display->vbt.version >= 209 && devdata->child.tbt;
}
+bool intel_bios_encoder_overrides_vswing(const struct intel_bios_encoder_data *devdata)
+{
+ return devdata->display->vbt.version >= 218 &&
+ devdata->child.use_vbt_vswing;
+}
+
bool intel_bios_encoder_is_dedicated_external(const struct intel_bios_encoder_data *devdata)
{
return devdata->display->vbt.version >= 264 &&
diff --git a/drivers/gpu/drm/i915/display/intel_bios.h b/drivers/gpu/drm/i915/display/intel_bios.h
index 75dff27b4228..50c8fc91fbe8 100644
--- a/drivers/gpu/drm/i915/display/intel_bios.h
+++ b/drivers/gpu/drm/i915/display/intel_bios.h
@@ -73,6 +73,7 @@ bool intel_bios_get_dsc_params(struct intel_encoder *encoder,
const struct intel_bios_encoder_data *
intel_bios_encoder_data_lookup(struct intel_display *display, enum port port);
+bool intel_bios_encoder_overrides_vswing(const struct intel_bios_encoder_data *devdata);
bool intel_bios_encoder_supports_dvi(const struct intel_bios_encoder_data *devdata);
bool intel_bios_encoder_supports_hdmi(const struct intel_bios_encoder_data *devdata);
bool intel_bios_encoder_supports_dp(const struct intel_bios_encoder_data *devdata);
--
2.45.2
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [RFC v1 05/11] drm/i915/buf_trans: add intel_dp_above_hbr1() helper
2026-03-08 13:24 [RFC v1 00/11] support for vswing/preemphasis override Michał Grzelak
` (3 preceding siblings ...)
2026-03-08 13:24 ` [RFC v1 04/11] drm/i915/bios: print V/P Override port info Michał Grzelak
@ 2026-03-08 13:24 ` Michał Grzelak
2026-03-11 9:17 ` Jani Nikula
2026-03-08 13:24 ` [RFC v1 06/11] drm/i915/buf_trans: add intel_edp_above_hbr2() helper Michał Grzelak
` (9 subsequent siblings)
14 siblings, 1 reply; 19+ messages in thread
From: Michał Grzelak @ 2026-03-08 13:24 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: Michał Grzelak
Check if port_clock is above HBR1 inside separate function.
Signed-off-by: Michał Grzelak <michal.grzelak@intel.com>
---
.../drm/i915/display/intel_ddi_buf_trans.c | 27 ++++++++++++-------
1 file changed, 17 insertions(+), 10 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c b/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
index 395dba8c9e4d..ee6a78a20dac 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
@@ -1184,6 +1184,13 @@ bool is_hobl_buf_trans(const struct intel_ddi_buf_trans *table)
return table == &tgl_combo_phy_trans_edp_hbr2_hobl;
}
+static bool intel_dp_above_hbr1(const struct intel_crtc_state *crtc_state)
+{
+ if (crtc_state->port_clock > 270000)
+ return true;
+ return false;
+}
+
static bool use_edp_hobl(struct intel_encoder *encoder)
{
struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
@@ -1396,7 +1403,7 @@ icl_get_mg_buf_trans_dp(struct intel_encoder *encoder,
const struct intel_crtc_state *crtc_state,
int *n_entries)
{
- if (crtc_state->port_clock > 270000) {
+ if (intel_dp_above_hbr1(crtc_state)) {
return intel_get_buf_trans(&icl_mg_phy_trans_hbr2_hbr3,
n_entries);
} else {
@@ -1421,7 +1428,7 @@ ehl_get_combo_buf_trans_edp(struct intel_encoder *encoder,
const struct intel_crtc_state *crtc_state,
int *n_entries)
{
- if (crtc_state->port_clock > 270000)
+ if (intel_dp_above_hbr1(crtc_state))
return intel_get_buf_trans(&ehl_combo_phy_trans_edp_hbr2, n_entries);
else
return intel_get_buf_trans(&icl_combo_phy_trans_edp_hbr2, n_entries);
@@ -1446,7 +1453,7 @@ jsl_get_combo_buf_trans_edp(struct intel_encoder *encoder,
const struct intel_crtc_state *crtc_state,
int *n_entries)
{
- if (crtc_state->port_clock > 270000)
+ if (intel_dp_above_hbr1(crtc_state))
return intel_get_buf_trans(&jsl_combo_phy_trans_edp_hbr2, n_entries);
else
return intel_get_buf_trans(&jsl_combo_phy_trans_edp_hbr, n_entries);
@@ -1473,7 +1480,7 @@ tgl_get_combo_buf_trans_dp(struct intel_encoder *encoder,
{
struct intel_display *display = to_intel_display(encoder);
- if (crtc_state->port_clock > 270000) {
+ if (intel_dp_above_hbr1(crtc_state)) {
if (display->platform.tigerlake_uy) {
return intel_get_buf_trans(&tgl_uy_combo_phy_trans_dp_hbr2,
n_entries);
@@ -1524,7 +1531,7 @@ dg1_get_combo_buf_trans_dp(struct intel_encoder *encoder,
const struct intel_crtc_state *crtc_state,
int *n_entries)
{
- if (crtc_state->port_clock > 270000)
+ if (intel_dp_above_hbr1(crtc_state))
return intel_get_buf_trans(&dg1_combo_phy_trans_dp_hbr2_hbr3,
n_entries);
else
@@ -1568,7 +1575,7 @@ rkl_get_combo_buf_trans_dp(struct intel_encoder *encoder,
const struct intel_crtc_state *crtc_state,
int *n_entries)
{
- if (crtc_state->port_clock > 270000)
+ if (intel_dp_above_hbr1(crtc_state))
return intel_get_buf_trans(&rkl_combo_phy_trans_dp_hbr2_hbr3, n_entries);
else
return intel_get_buf_trans(&rkl_combo_phy_trans_dp_hbr, n_entries);
@@ -1611,7 +1618,7 @@ adls_get_combo_buf_trans_dp(struct intel_encoder *encoder,
const struct intel_crtc_state *crtc_state,
int *n_entries)
{
- if (crtc_state->port_clock > 270000)
+ if (intel_dp_above_hbr1(crtc_state))
return intel_get_buf_trans(&adls_combo_phy_trans_dp_hbr2_hbr3, n_entries);
else
return intel_get_buf_trans(&tgl_combo_phy_trans_dp_hbr, n_entries);
@@ -1650,7 +1657,7 @@ adlp_get_combo_buf_trans_dp(struct intel_encoder *encoder,
const struct intel_crtc_state *crtc_state,
int *n_entries)
{
- if (crtc_state->port_clock > 270000)
+ if (intel_dp_above_hbr1(crtc_state))
return intel_get_buf_trans(&adlp_combo_phy_trans_dp_hbr2_hbr3, n_entries);
else
return intel_get_buf_trans(&adlp_combo_phy_trans_dp_hbr, n_entries);
@@ -1693,7 +1700,7 @@ tgl_get_dkl_buf_trans_dp(struct intel_encoder *encoder,
const struct intel_crtc_state *crtc_state,
int *n_entries)
{
- if (crtc_state->port_clock > 270000) {
+ if (intel_dp_above_hbr1(crtc_state)) {
return intel_get_buf_trans(&tgl_dkl_phy_trans_dp_hbr2,
n_entries);
} else {
@@ -1718,7 +1725,7 @@ adlp_get_dkl_buf_trans_dp(struct intel_encoder *encoder,
const struct intel_crtc_state *crtc_state,
int *n_entries)
{
- if (crtc_state->port_clock > 270000) {
+ if (intel_dp_above_hbr1(crtc_state)) {
return intel_get_buf_trans(&adlp_dkl_phy_trans_dp_hbr2_hbr3,
n_entries);
} else {
--
2.45.2
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [RFC v1 06/11] drm/i915/buf_trans: add intel_edp_above_hbr2() helper
2026-03-08 13:24 [RFC v1 00/11] support for vswing/preemphasis override Michał Grzelak
` (4 preceding siblings ...)
2026-03-08 13:24 ` [RFC v1 05/11] drm/i915/buf_trans: add intel_dp_above_hbr1() helper Michał Grzelak
@ 2026-03-08 13:24 ` Michał Grzelak
2026-03-11 9:19 ` Jani Nikula
2026-03-08 13:24 ` [RFC v1 07/11] drm/i915/lt: align xe3plpd with V/P Override layout Michał Grzelak
` (8 subsequent siblings)
14 siblings, 1 reply; 19+ messages in thread
From: Michał Grzelak @ 2026-03-08 13:24 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: Michał Grzelak
Check if port_clock is above HBR2 inside separate function.
Signed-off-by: Michał Grzelak <michal.grzelak@intel.com>
---
.../drm/i915/display/intel_ddi_buf_trans.c | 19 +++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c b/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
index ee6a78a20dac..8b369535189c 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
@@ -1191,6 +1191,13 @@ static bool intel_dp_above_hbr1(const struct intel_crtc_state *crtc_state)
return false;
}
+static bool intel_edp_above_hbr2(const struct intel_crtc_state *crtc_state)
+{
+ if (crtc_state->port_clock > 540000)
+ return true;
+ return false;
+}
+
static bool use_edp_hobl(struct intel_encoder *encoder)
{
struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
@@ -1374,7 +1381,7 @@ icl_get_combo_buf_trans_edp(struct intel_encoder *encoder,
const struct intel_crtc_state *crtc_state,
int *n_entries)
{
- if (crtc_state->port_clock > 540000) {
+ if (intel_edp_above_hbr2(crtc_state)) {
return intel_get_buf_trans(&icl_combo_phy_trans_dp_hbr2_edp_hbr3,
n_entries);
} else if (use_edp_low_vswing(encoder)) {
@@ -1499,7 +1506,7 @@ tgl_get_combo_buf_trans_edp(struct intel_encoder *encoder,
const struct intel_crtc_state *crtc_state,
int *n_entries)
{
- if (crtc_state->port_clock > 540000) {
+ if (intel_edp_above_hbr2(crtc_state)) {
return intel_get_buf_trans(&icl_combo_phy_trans_dp_hbr2_edp_hbr3,
n_entries);
} else if (use_edp_hobl(encoder)) {
@@ -1544,7 +1551,7 @@ dg1_get_combo_buf_trans_edp(struct intel_encoder *encoder,
const struct intel_crtc_state *crtc_state,
int *n_entries)
{
- if (crtc_state->port_clock > 540000)
+ if (intel_edp_above_hbr2(crtc_state))
return intel_get_buf_trans(&icl_combo_phy_trans_dp_hbr2_edp_hbr3,
n_entries);
else if (use_edp_hobl(encoder))
@@ -1586,7 +1593,7 @@ rkl_get_combo_buf_trans_edp(struct intel_encoder *encoder,
const struct intel_crtc_state *crtc_state,
int *n_entries)
{
- if (crtc_state->port_clock > 540000) {
+ if (intel_edp_above_hbr2(crtc_state)) {
return intel_get_buf_trans(&icl_combo_phy_trans_dp_hbr2_edp_hbr3,
n_entries);
} else if (use_edp_hobl(encoder)) {
@@ -1629,7 +1636,7 @@ adls_get_combo_buf_trans_edp(struct intel_encoder *encoder,
const struct intel_crtc_state *crtc_state,
int *n_entries)
{
- if (crtc_state->port_clock > 540000)
+ if (intel_edp_above_hbr2(crtc_state))
return intel_get_buf_trans(&adls_combo_phy_trans_edp_hbr3, n_entries);
else if (use_edp_hobl(encoder))
return intel_get_buf_trans(&tgl_combo_phy_trans_edp_hbr2_hobl, n_entries);
@@ -1668,7 +1675,7 @@ adlp_get_combo_buf_trans_edp(struct intel_encoder *encoder,
const struct intel_crtc_state *crtc_state,
int *n_entries)
{
- if (crtc_state->port_clock > 540000) {
+ if (intel_edp_above_hbr2(crtc_state)) {
return intel_get_buf_trans(&adlp_combo_phy_trans_edp_hbr3,
n_entries);
} else if (use_edp_hobl(encoder)) {
--
2.45.2
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [RFC v1 07/11] drm/i915/lt: align xe3plpd with V/P Override layout
2026-03-08 13:24 [RFC v1 00/11] support for vswing/preemphasis override Michał Grzelak
` (5 preceding siblings ...)
2026-03-08 13:24 ` [RFC v1 06/11] drm/i915/buf_trans: add intel_edp_above_hbr2() helper Michał Grzelak
@ 2026-03-08 13:24 ` Michał Grzelak
2026-03-08 13:24 ` [RFC v1 08/11] drm/i915/buf_trans: switch from u8 to u32 Michał Grzelak
` (7 subsequent siblings)
14 siblings, 0 replies; 19+ messages in thread
From: Michał Grzelak @ 2026-03-08 13:24 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: Michał Grzelak
Align struct xe3plpd_lt_phy_buf_trans to match layout found in
vswing/preemphasis override tables.
Move txswing & txswing_level to the end of the struct. Keep order
between txswing & txswing_level columns in xe3plpd_lt_* tables.
Move post_cursor from third field to second.
Signed-off-by: Michał Grzelak <michal.grzelak@intel.com>
---
.../drm/i915/display/intel_ddi_buf_trans.c | 72 +++++++++----------
.../drm/i915/display/intel_ddi_buf_trans.h | 6 +-
2 files changed, 39 insertions(+), 39 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c b/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
index 8b369535189c..528a0ccfe8a2 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
@@ -1118,50 +1118,50 @@ static const struct intel_ddi_buf_trans mtl_c20_trans_uhbr = {
/* DP1.4 */
static const union intel_ddi_buf_trans_entry _xe3plpd_lt_trans_dp14[] = {
- { .lt = { 1, 0, 0, 21, 0 } },
- { .lt = { 1, 1, 0, 24, 3 } },
- { .lt = { 1, 2, 0, 28, 7 } },
- { .lt = { 0, 3, 0, 35, 13 } },
- { .lt = { 1, 1, 0, 27, 0 } },
- { .lt = { 1, 2, 0, 31, 4 } },
- { .lt = { 0, 3, 0, 39, 9 } },
- { .lt = { 1, 2, 0, 35, 0 } },
- { .lt = { 0, 3, 0, 41, 7 } },
- { .lt = { 0, 3, 0, 48, 0 } },
+ { .lt = { 21, 0, 0 , 1, 0 } },
+ { .lt = { 24, 0, 3 , 1, 1 } },
+ { .lt = { 28, 0, 7 , 1, 2 } },
+ { .lt = { 35, 0, 13, 0, 3 } },
+ { .lt = { 27, 0, 0 , 1, 1 } },
+ { .lt = { 31, 0, 4 , 1, 2 } },
+ { .lt = { 39, 0, 9 , 0, 3 } },
+ { .lt = { 35, 0, 0 , 1, 2 } },
+ { .lt = { 41, 0, 7 , 0, 3 } },
+ { .lt = { 48, 0, 0 , 0, 3 } },
};
/* DP2.1 */
static const union intel_ddi_buf_trans_entry _xe3plpd_lt_trans_uhbr[] = {
- { .lt = { 0, 0, 0, 48, 0 } },
- { .lt = { 0, 0, 0, 43, 5 } },
- { .lt = { 0, 0, 0, 40, 8 } },
- { .lt = { 0, 0, 0, 37, 11 } },
- { .lt = { 0, 0, 0, 33, 15 } },
- { .lt = { 0, 0, 2, 46, 0 } },
- { .lt = { 0, 0, 2, 42, 4 } },
- { .lt = { 0, 0, 2, 38, 8 } },
- { .lt = { 0, 0, 2, 35, 11 } },
- { .lt = { 0, 0, 2, 33, 13 } },
- { .lt = { 0, 0, 4, 44, 0 } },
- { .lt = { 0, 0, 4, 40, 4 } },
- { .lt = { 0, 0, 4, 37, 7 } },
- { .lt = { 0, 0, 4, 33, 11 } },
- { .lt = { 0, 0, 8, 40, 0 } },
- { .lt = { 1, 0, 2, 26, 2 } },
+ { .lt = { 48, 0, 0 , 0, 0 } },
+ { .lt = { 43, 0, 5 , 0, 0 } },
+ { .lt = { 40, 0, 8 , 0, 0 } },
+ { .lt = { 37, 0, 11, 0, 0 } },
+ { .lt = { 33, 0, 15, 0, 0 } },
+ { .lt = { 46, 2, 0 , 0, 0 } },
+ { .lt = { 42, 2, 4 , 0, 0 } },
+ { .lt = { 38, 2, 8 , 0, 0 } },
+ { .lt = { 35, 2, 11, 0, 0 } },
+ { .lt = { 33, 2, 13, 0, 0 } },
+ { .lt = { 44, 4, 0 , 0, 0 } },
+ { .lt = { 40, 4, 4 , 0, 0 } },
+ { .lt = { 37, 4, 7 , 0, 0 } },
+ { .lt = { 33, 4, 11, 0, 0 } },
+ { .lt = { 40, 8, 0 , 0, 0 } },
+ { .lt = { 26, 2, 2 , 1, 0 } },
};
/* eDp */
static const union intel_ddi_buf_trans_entry _xe3plpd_lt_trans_edp[] = {
- { .lt = { 1, 0, 0, 12, 0 } },
- { .lt = { 1, 1, 0, 13, 1 } },
- { .lt = { 1, 2, 0, 15, 3 } },
- { .lt = { 1, 3, 0, 19, 7 } },
- { .lt = { 1, 1, 0, 14, 0 } },
- { .lt = { 1, 2, 0, 16, 2 } },
- { .lt = { 1, 3, 0, 21, 5 } },
- { .lt = { 1, 2, 0, 18, 0 } },
- { .lt = { 1, 3, 0, 22, 4 } },
- { .lt = { 1, 3, 0, 26, 0 } },
+ { .lt = { 12, 0, 0, 1, 0 } },
+ { .lt = { 13, 0, 1, 1, 1 } },
+ { .lt = { 15, 0, 3, 1, 2 } },
+ { .lt = { 19, 0, 7, 1, 3 } },
+ { .lt = { 14, 0, 0, 1, 1 } },
+ { .lt = { 16, 0, 2, 1, 2 } },
+ { .lt = { 21, 0, 5, 1, 3 } },
+ { .lt = { 18, 0, 0, 1, 2 } },
+ { .lt = { 22, 0, 4, 1, 3 } },
+ { .lt = { 26, 0, 0, 1, 3 } },
};
static const struct intel_ddi_buf_trans xe3plpd_lt_trans_dp14 = {
diff --git a/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.h b/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.h
index cec332090a20..7703c6c0a0cb 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.h
+++ b/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.h
@@ -51,11 +51,11 @@ struct dg2_snps_phy_buf_trans {
};
struct xe3plpd_lt_phy_buf_trans {
- u8 txswing;
- u8 txswing_level;
- u8 pre_cursor;
u8 main_cursor;
+ u8 pre_cursor;
u8 post_cursor;
+ u8 txswing;
+ u8 txswing_level;
};
union intel_ddi_buf_trans_entry {
--
2.45.2
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [RFC v1 08/11] drm/i915/buf_trans: switch from u8 to u32
2026-03-08 13:24 [RFC v1 00/11] support for vswing/preemphasis override Michał Grzelak
` (6 preceding siblings ...)
2026-03-08 13:24 ` [RFC v1 07/11] drm/i915/lt: align xe3plpd with V/P Override layout Michał Grzelak
@ 2026-03-08 13:24 ` Michał Grzelak
2026-03-08 13:24 ` [RFC v1 09/11] drm/i915/xe3p: add V/P Override support for xe3p Michał Grzelak
` (6 subsequent siblings)
14 siblings, 0 replies; 19+ messages in thread
From: Michał Grzelak @ 2026-03-08 13:24 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: Michał Grzelak
Match width of fields of struct xe3plpd_lt_* & struct dg2_snps_*
with vswing/preemphasis tables layout.
This change affects DG2 and MTL+ cases.
Signed-off-by: Michał Grzelak <michal.grzelak@intel.com>
---
.../gpu/drm/i915/display/intel_ddi_buf_trans.h | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.h b/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.h
index 7703c6c0a0cb..bea6fb2ec6f4 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.h
+++ b/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.h
@@ -45,17 +45,17 @@ struct tgl_dkl_phy_ddi_buf_trans {
};
struct dg2_snps_phy_buf_trans {
- u8 vswing;
- u8 pre_cursor;
- u8 post_cursor;
+ u32 vswing;
+ u32 pre_cursor;
+ u32 post_cursor;
};
struct xe3plpd_lt_phy_buf_trans {
- u8 main_cursor;
- u8 pre_cursor;
- u8 post_cursor;
- u8 txswing;
- u8 txswing_level;
+ u32 main_cursor;
+ u32 pre_cursor;
+ u32 post_cursor;
+ u32 txswing;
+ u32 txswing_level;
};
union intel_ddi_buf_trans_entry {
--
2.45.2
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [RFC v1 09/11] drm/i915/xe3p: add V/P Override support for xe3p
2026-03-08 13:24 [RFC v1 00/11] support for vswing/preemphasis override Michał Grzelak
` (7 preceding siblings ...)
2026-03-08 13:24 ` [RFC v1 08/11] drm/i915/buf_trans: switch from u8 to u32 Michał Grzelak
@ 2026-03-08 13:24 ` Michał Grzelak
2026-03-08 13:24 ` [RFC v1 10/11] drm/i915/dg2: warn on V/P Override request on dg2 Michał Grzelak
` (5 subsequent siblings)
14 siblings, 0 replies; 19+ messages in thread
From: Michał Grzelak @ 2026-03-08 13:24 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: Michał Grzelak
Add macros to reflect the layout of vswing/preemphasis override tables
for xe3p.
Add separate intel_ddi_buf_trans_entry to be overridden for xe3plpd.
Set & return it when port requests to override default table.
Set the value by extracting the lowest byte from entry from the table.
There are no changes to intel_ddi_dp_level() since selection of correct
row of intel_ddi_buf_trans_entry is same as when no override request has
been done.
Add FIXME & warning when EDP is requested to be overridden.
beware of endianness:
during VBT parsing, u32's were split into u8;
read u32 from selected row to restore it;
windows assumes u8, so extract the lowest byte.
Signed-off-by: Michał Grzelak <michal.grzelak@intel.com>
---
.../drm/i915/display/intel_ddi_buf_trans.c | 102 +++++++++++++++++-
1 file changed, 99 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c b/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
index 528a0ccfe8a2..632a5fe08381 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
@@ -12,6 +12,16 @@
#include "intel_dp.h"
#include "intel_lt_phy.h"
+#define XE3P_VS_PE_EDP 3
+#define XE3P_VS_PE_DP14 4
+#define XE3P_VS_PE_DP21 5
+
+#define XE3P_VS_PE_COL 5
+#define XE3P_VS_PE_ROW 16
+
+#define VS_PE_MASK 0x000000ff
+
+#define LOW(x) ((x) & (VS_PE_MASK))
/* HDMI/DVI modes ignore everything but the last 2 items. So we share
* them for both DP and FDI transports, allowing those ports to
* automatically adapt to HDMI connections as well
@@ -1164,6 +1174,25 @@ static const union intel_ddi_buf_trans_entry _xe3plpd_lt_trans_edp[] = {
{ .lt = { 26, 0, 0, 1, 3 } },
};
+static union intel_ddi_buf_trans_entry _xe3plpd_lt_trans_override[] = {
+ { .lt = { 0, 0, 0, 0, 0 } },
+ { .lt = { 0, 0, 0, 0, 0 } },
+ { .lt = { 0, 0, 0, 0, 0 } },
+ { .lt = { 0, 0, 0, 0, 0 } },
+ { .lt = { 0, 0, 0, 0, 0 } },
+ { .lt = { 0, 0, 0, 0, 0 } },
+ { .lt = { 0, 0, 0, 0, 0 } },
+ { .lt = { 0, 0, 0, 0, 0 } },
+ { .lt = { 0, 0, 0, 0, 0 } },
+ { .lt = { 0, 0, 0, 0, 0 } },
+ { .lt = { 0, 0, 0, 0, 0 } },
+ { .lt = { 0, 0, 0, 0, 0 } },
+ { .lt = { 0, 0, 0, 0, 0 } },
+ { .lt = { 0, 0, 0, 0, 0 } },
+ { .lt = { 0, 0, 0, 0, 0 } },
+ { .lt = { 0, 0, 0, 0, 0 } },
+};
+
static const struct intel_ddi_buf_trans xe3plpd_lt_trans_dp14 = {
.entries = _xe3plpd_lt_trans_dp14,
.num_entries = ARRAY_SIZE(_xe3plpd_lt_trans_dp14),
@@ -1179,11 +1208,29 @@ static const struct intel_ddi_buf_trans xe3plpd_lt_trans_edp = {
.num_entries = ARRAY_SIZE(_xe3plpd_lt_trans_edp),
};
+static struct intel_ddi_buf_trans xe3plpd_lt_trans_override = {
+ .entries = _xe3plpd_lt_trans_override,
+ .num_entries = ARRAY_SIZE(_xe3plpd_lt_trans_override),
+};
+
bool is_hobl_buf_trans(const struct intel_ddi_buf_trans *table)
{
return table == &tgl_combo_phy_trans_edp_hbr2_hobl;
}
+static const u32 *find_row(const u32 *tables,
+ int idx,
+ int row,
+ int row_no,
+ int col_no)
+{
+ size_t ent_sz = sizeof(*tables);
+ size_t row_sz = col_no * ent_sz;
+ size_t tbl_sz = row_no * row_sz;
+ size_t offset = idx * tbl_sz + row * row_sz;
+ return &tables[offset];
+}
+
static bool intel_dp_above_hbr1(const struct intel_crtc_state *crtc_state)
{
if (crtc_state->port_clock > 270000)
@@ -1785,17 +1832,66 @@ mtl_get_c20_buf_trans(struct intel_encoder *encoder,
return intel_get_buf_trans(&mtl_c20_trans_dp14, n_entries);
}
+static const struct intel_ddi_buf_trans *
+xe3plpd_set_lt_buf_trans(struct intel_encoder *encoder,
+ int idx,
+ int *n_entries)
+{
+ struct intel_display *display = to_intel_display(encoder);
+ struct intel_ddi_buf_trans *buf_trans = &xe3plpd_lt_trans_override;
+ union intel_ddi_buf_trans_entry *entries, *entry;
+ const u32 *tables = display->vbt.override_vswing;
+ const u32 *vals;
+
+ entries = (union intel_ddi_buf_trans_entry *) buf_trans->entries;
+ for (int row = 0; row < XE3P_VS_PE_ROW; row++) {
+ entry = &entries[row];
+ vals = find_row(tables,
+ idx,
+ row,
+ XE3P_VS_PE_ROW,
+ XE3P_VS_PE_COL);
+
+ entry->lt.main_cursor = LOW(vals[0]);
+ entry->lt.pre_cursor = LOW(vals[1]);
+ entry->lt.post_cursor = LOW(vals[2]);
+ entry->lt.txswing = LOW(vals[3]);
+ entry->lt.txswing_level = LOW(vals[4]);
+ }
+
+ return intel_get_buf_trans(&xe3plpd_lt_trans_override, n_entries);
+}
+
static const struct intel_ddi_buf_trans *
xe3plpd_get_lt_buf_trans(struct intel_encoder *encoder,
const struct intel_crtc_state *crtc_state,
int *n_entries)
{
- if (intel_crtc_has_dp_encoder(crtc_state) && intel_dp_is_uhbr(crtc_state))
+ if (intel_crtc_has_dp_encoder(crtc_state) && intel_dp_is_uhbr(crtc_state)) {
+ if (intel_bios_encoder_overrides_vswing(encoder->devdata))
+ return xe3plpd_set_lt_buf_trans(encoder,
+ XE3P_VS_PE_DP21,
+ n_entries);
return intel_get_buf_trans(&xe3plpd_lt_trans_uhbr, n_entries);
- else if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_EDP))
+ } else if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_EDP)) {
+ /* FIXME need to check correct parsing & table index should
+ * this ever trigger.
+ * return xe3plpd_set_lt_buf_trans(encoder,
+ * XE3P_VS_PE_EDP,
+ * n_entries);
+ */
+ drm_WARN(to_intel_display(encoder)->drm,
+ intel_bios_encoder_overrides_vswing(encoder->devdata),
+ "Port %s asks to override EDP's vswing/preemph tables\n",
+ port_name(intel_bios_encoder_port(encoder->devdata)));
return intel_get_buf_trans(&xe3plpd_lt_trans_edp, n_entries);
- else
+ } else {
+ if (intel_bios_encoder_overrides_vswing(encoder->devdata))
+ return xe3plpd_set_lt_buf_trans(encoder,
+ XE3P_VS_PE_DP14,
+ n_entries);
return intel_get_buf_trans(&xe3plpd_lt_trans_dp14, n_entries);
+ }
}
void intel_ddi_buf_trans_init(struct intel_encoder *encoder)
--
2.45.2
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [RFC v1 10/11] drm/i915/dg2: warn on V/P Override request on dg2
2026-03-08 13:24 [RFC v1 00/11] support for vswing/preemphasis override Michał Grzelak
` (8 preceding siblings ...)
2026-03-08 13:24 ` [RFC v1 09/11] drm/i915/xe3p: add V/P Override support for xe3p Michał Grzelak
@ 2026-03-08 13:24 ` Michał Grzelak
2026-03-08 13:24 ` [RFC v1 11/11] drm/i915/mtl: add V/P Override support for mtl+ Michał Grzelak
` (4 subsequent siblings)
14 siblings, 0 replies; 19+ messages in thread
From: Michał Grzelak @ 2026-03-08 13:24 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: Michał Grzelak
DG2 doesn't support vswing/preemphasis overriding. Issue a warning when
requested to do so.
Signed-off-by: Michał Grzelak <michal.grzelak@intel.com>
---
drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c b/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
index 632a5fe08381..1b30c9888f95 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
@@ -1804,6 +1804,10 @@ dg2_get_snps_buf_trans(struct intel_encoder *encoder,
const struct intel_crtc_state *crtc_state,
int *n_entries)
{
+ drm_WARN(to_intel_display(encoder)->drm,
+ intel_bios_encoder_overrides_vswing(encoder->devdata),
+ "Port %s asks to override vswing/preemph tables [DG2]\n",
+ port_name(intel_bios_encoder_port(encoder->devdata)));
if (intel_crtc_has_dp_encoder(crtc_state) &&
intel_dp_is_uhbr(crtc_state))
return intel_get_buf_trans(&dg2_snps_trans_uhbr, n_entries);
--
2.45.2
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [RFC v1 11/11] drm/i915/mtl: add V/P Override support for mtl+
2026-03-08 13:24 [RFC v1 00/11] support for vswing/preemphasis override Michał Grzelak
` (9 preceding siblings ...)
2026-03-08 13:24 ` [RFC v1 10/11] drm/i915/dg2: warn on V/P Override request on dg2 Michał Grzelak
@ 2026-03-08 13:24 ` Michał Grzelak
2026-03-11 9:51 ` Jani Nikula
2026-03-08 13:31 ` ✗ CI.checkpatch: warning for support for vswing/preemphasis override Patchwork
` (3 subsequent siblings)
14 siblings, 1 reply; 19+ messages in thread
From: Michał Grzelak @ 2026-03-08 13:24 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: Michał Grzelak
Add macros to reflect the layout of vswing/preemphasis override tables
for mtl. Add separate macros for C10 & C20.
Add separate intel_ddi_buf_trans_entry to be overridden for mtl onward.
Set & return it when port requests to override default table. Use same
setter for both C10 & C20 cases.
Set the value by extracting the lowest byte from entry from the table.
There are no changes to intel_ddi_dp_level() since selection of correct
row of intel_ddi_buf_trans_entry is same as when no override request has
been done.
Signed-off-by: Michał Grzelak <michal.grzelak@intel.com>
---
.../drm/i915/display/intel_ddi_buf_trans.c | 99 ++++++++++++++++++-
1 file changed, 96 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c b/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
index 1b30c9888f95..7798320a4968 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
@@ -12,6 +12,17 @@
#include "intel_dp.h"
#include "intel_lt_phy.h"
+#define MTL_C10_VS_PE_DP14_RBR_HBR 0
+#define MTL_C10_VS_PE_DP14_HBR2_HBR3 1
+#define MTL_C10_VS_PE_EDP_NON_HBR3 2
+#define MTL_C10_VS_PE_EDP_HBR3 3
+
+#define MTL_C20_VS_PE_DP14 4
+#define MTL_C20_VS_PE_DP20 5
+
+#define MTL_CX0_VS_PE_COL 3
+#define MTL_CX0_VS_PE_ROW 16
+
#define XE3P_VS_PE_EDP 3
#define XE3P_VS_PE_DP14 4
#define XE3P_VS_PE_DP21 5
@@ -1109,6 +1120,25 @@ static const union intel_ddi_buf_trans_entry _mtl_c20_trans_hdmi[] = {
{ .snps = { 32, 4, 12 } }, /* preset 4 */
};
+static union intel_ddi_buf_trans_entry _mtl_cx0_trans_override[] = {
+ { .snps = { 0, 0, 0 } },
+ { .snps = { 0, 0, 0 } },
+ { .snps = { 0, 0, 0 } },
+ { .snps = { 0, 0, 0 } },
+ { .snps = { 0, 0, 0 } },
+ { .snps = { 0, 0, 0 } },
+ { .snps = { 0, 0, 0 } },
+ { .snps = { 0, 0, 0 } },
+ { .snps = { 0, 0, 0 } },
+ { .snps = { 0, 0, 0 } },
+ { .snps = { 0, 0, 0 } },
+ { .snps = { 0, 0, 0 } },
+ { .snps = { 0, 0, 0 } },
+ { .snps = { 0, 0, 0 } },
+ { .snps = { 0, 0, 0 } },
+ { .snps = { 0, 0, 0 } },
+};
+
static const struct intel_ddi_buf_trans mtl_c20_trans_hdmi = {
.entries = _mtl_c20_trans_hdmi,
.num_entries = ARRAY_SIZE(_mtl_c20_trans_hdmi),
@@ -1126,6 +1156,11 @@ static const struct intel_ddi_buf_trans mtl_c20_trans_uhbr = {
.num_entries = ARRAY_SIZE(_mtl_c20_trans_uhbr),
};
+static struct intel_ddi_buf_trans mtl_cx0_trans_override = {
+ .entries = _mtl_cx0_trans_override,
+ .num_entries = ARRAY_SIZE(_mtl_cx0_trans_override),
+};
+
/* DP1.4 */
static const union intel_ddi_buf_trans_entry _xe3plpd_lt_trans_dp14[] = {
{ .lt = { 21, 0, 0 , 1, 0 } },
@@ -1815,11 +1850,60 @@ dg2_get_snps_buf_trans(struct intel_encoder *encoder,
return intel_get_buf_trans(&dg2_snps_trans, n_entries);
}
+static const struct intel_ddi_buf_trans *
+mtl_set_cx0_buf_trans(struct intel_encoder *encoder,
+ int idx,
+ int *n_entries)
+{
+ struct intel_display *display = to_intel_display(encoder);
+ struct intel_ddi_buf_trans *buf_trans = &mtl_cx0_trans_override;
+ union intel_ddi_buf_trans_entry *entries, *entry;
+ const u32 *tables = display->vbt.override_vswing;
+ const u32 *vals;
+
+ entries = (union intel_ddi_buf_trans_entry *) buf_trans->entries;
+ for (int row = 0; row < MTL_CX0_VS_PE_ROW; row++) {
+ entry = &entries[row];
+ vals = find_row(tables,
+ idx,
+ row,
+ MTL_CX0_VS_PE_ROW,
+ MTL_CX0_VS_PE_COL);
+
+ entry->snps.vswing = LOW(vals[0]);
+ entry->snps.pre_cursor = LOW(vals[1]);
+ entry->snps.post_cursor = LOW(vals[2]);
+ }
+
+ return intel_get_buf_trans(&mtl_cx0_trans_override, n_entries);
+}
+
static const struct intel_ddi_buf_trans *
mtl_get_c10_buf_trans(struct intel_encoder *encoder,
const struct intel_crtc_state *crtc_state,
int *n_entries)
{
+ if (intel_bios_encoder_overrides_vswing(encoder->devdata)) {
+ if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_DP)) {
+ if (intel_dp_above_hbr1(crtc_state))
+ return mtl_set_cx0_buf_trans(encoder,
+ MTL_C10_VS_PE_DP14_HBR2_HBR3,
+ n_entries);
+ else
+ return mtl_set_cx0_buf_trans(encoder,
+ MTL_C10_VS_PE_DP14_RBR_HBR,
+ n_entries);
+ } else if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_EDP)){
+ if (intel_edp_above_hbr2(crtc_state))
+ return mtl_set_cx0_buf_trans(encoder,
+ MTL_C10_VS_PE_EDP_HBR3,
+ n_entries);
+ else
+ return mtl_set_cx0_buf_trans(encoder,
+ MTL_C10_VS_PE_EDP_NON_HBR3,
+ n_entries);
+ }
+ }
return intel_get_buf_trans(&mtl_c10_trans_dp14, n_entries);
}
@@ -1828,12 +1912,21 @@ mtl_get_c20_buf_trans(struct intel_encoder *encoder,
const struct intel_crtc_state *crtc_state,
int *n_entries)
{
- if (intel_crtc_has_dp_encoder(crtc_state) && intel_dp_is_uhbr(crtc_state))
+ if (intel_crtc_has_dp_encoder(crtc_state) && intel_dp_is_uhbr(crtc_state)) {
+ if (intel_bios_encoder_overrides_vswing(encoder->devdata))
+ return mtl_set_cx0_buf_trans(encoder,
+ MTL_C20_VS_PE_DP20,
+ n_entries);
return intel_get_buf_trans(&mtl_c20_trans_uhbr, n_entries);
- else if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_HDMI))
+ } else if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_HDMI)) {
return intel_get_buf_trans(&mtl_c20_trans_hdmi, n_entries);
- else
+ } else {
+ if (intel_bios_encoder_overrides_vswing(encoder->devdata))
+ return mtl_set_cx0_buf_trans(encoder,
+ MTL_C20_VS_PE_DP14,
+ n_entries);
return intel_get_buf_trans(&mtl_c20_trans_dp14, n_entries);
+ }
}
static const struct intel_ddi_buf_trans *
--
2.45.2
^ permalink raw reply related [flat|nested] 19+ messages in thread
* ✗ CI.checkpatch: warning for support for vswing/preemphasis override
2026-03-08 13:24 [RFC v1 00/11] support for vswing/preemphasis override Michał Grzelak
` (10 preceding siblings ...)
2026-03-08 13:24 ` [RFC v1 11/11] drm/i915/mtl: add V/P Override support for mtl+ Michał Grzelak
@ 2026-03-08 13:31 ` Patchwork
2026-03-08 13:33 ` ✓ CI.KUnit: success " Patchwork
` (2 subsequent siblings)
14 siblings, 0 replies; 19+ messages in thread
From: Patchwork @ 2026-03-08 13:31 UTC (permalink / raw)
To: Michał Grzelak; +Cc: intel-xe
== Series Details ==
Series: support for vswing/preemphasis override
URL : https://patchwork.freedesktop.org/series/162813/
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 a8f8d00edb4f3222259177cc0b422e526b0aa431
Author: Michał Grzelak <michal.grzelak@intel.com>
Date: Sun Mar 8 14:24:46 2026 +0100
drm/i915/mtl: add V/P Override support for mtl+
Add macros to reflect the layout of vswing/preemphasis override tables
for mtl. Add separate macros for C10 & C20.
Add separate intel_ddi_buf_trans_entry to be overridden for mtl onward.
Set & return it when port requests to override default table. Use same
setter for both C10 & C20 cases.
Set the value by extracting the lowest byte from entry from the table.
There are no changes to intel_ddi_dp_level() since selection of correct
row of intel_ddi_buf_trans_entry is same as when no override request has
been done.
Signed-off-by: Michał Grzelak <michal.grzelak@intel.com>
+ /mt/dim checkpatch f705e865254996e9a099a22a9320e523e6debdcf drm-intel
bc1824f5c1f7 drm/i915/bios: search for Block 57 by default
6ddca3e03774 drm/i915/bios: cache V/P Override block
39d73b41836c drm/i915/bios: remove V/P Override warning
cc3b213c7af3 drm/i915/bios: print V/P Override port info
d0a12b9e3daa drm/i915/buf_trans: add intel_dp_above_hbr1() helper
b0398db83482 drm/i915/buf_trans: add intel_edp_above_hbr2() helper
619b322a52c3 drm/i915/lt: align xe3plpd with V/P Override layout
-:37: ERROR:SPACING: space prohibited before that ',' (ctx:WxW)
#37: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:1121:
+ { .lt = { 21, 0, 0 , 1, 0 } },
^
-:38: ERROR:SPACING: space prohibited before that ',' (ctx:WxW)
#38: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:1122:
+ { .lt = { 24, 0, 3 , 1, 1 } },
^
-:39: ERROR:SPACING: space prohibited before that ',' (ctx:WxW)
#39: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:1123:
+ { .lt = { 28, 0, 7 , 1, 2 } },
^
-:41: ERROR:SPACING: space prohibited before that ',' (ctx:WxW)
#41: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:1125:
+ { .lt = { 27, 0, 0 , 1, 1 } },
^
-:42: ERROR:SPACING: space prohibited before that ',' (ctx:WxW)
#42: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:1126:
+ { .lt = { 31, 0, 4 , 1, 2 } },
^
-:43: ERROR:SPACING: space prohibited before that ',' (ctx:WxW)
#43: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:1127:
+ { .lt = { 39, 0, 9 , 0, 3 } },
^
-:44: ERROR:SPACING: space prohibited before that ',' (ctx:WxW)
#44: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:1128:
+ { .lt = { 35, 0, 0 , 1, 2 } },
^
-:45: ERROR:SPACING: space prohibited before that ',' (ctx:WxW)
#45: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:1129:
+ { .lt = { 41, 0, 7 , 0, 3 } },
^
-:46: ERROR:SPACING: space prohibited before that ',' (ctx:WxW)
#46: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:1130:
+ { .lt = { 48, 0, 0 , 0, 3 } },
^
-:67: ERROR:SPACING: space prohibited before that ',' (ctx:WxW)
#67: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:1135:
+ { .lt = { 48, 0, 0 , 0, 0 } },
^
-:68: ERROR:SPACING: space prohibited before that ',' (ctx:WxW)
#68: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:1136:
+ { .lt = { 43, 0, 5 , 0, 0 } },
^
-:69: ERROR:SPACING: space prohibited before that ',' (ctx:WxW)
#69: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:1137:
+ { .lt = { 40, 0, 8 , 0, 0 } },
^
-:72: ERROR:SPACING: space prohibited before that ',' (ctx:WxW)
#72: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:1140:
+ { .lt = { 46, 2, 0 , 0, 0 } },
^
-:73: ERROR:SPACING: space prohibited before that ',' (ctx:WxW)
#73: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:1141:
+ { .lt = { 42, 2, 4 , 0, 0 } },
^
-:74: ERROR:SPACING: space prohibited before that ',' (ctx:WxW)
#74: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:1142:
+ { .lt = { 38, 2, 8 , 0, 0 } },
^
-:77: ERROR:SPACING: space prohibited before that ',' (ctx:WxW)
#77: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:1145:
+ { .lt = { 44, 4, 0 , 0, 0 } },
^
-:78: ERROR:SPACING: space prohibited before that ',' (ctx:WxW)
#78: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:1146:
+ { .lt = { 40, 4, 4 , 0, 0 } },
^
-:79: ERROR:SPACING: space prohibited before that ',' (ctx:WxW)
#79: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:1147:
+ { .lt = { 37, 4, 7 , 0, 0 } },
^
-:81: ERROR:SPACING: space prohibited before that ',' (ctx:WxW)
#81: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:1149:
+ { .lt = { 40, 8, 0 , 0, 0 } },
^
-:82: ERROR:SPACING: space prohibited before that ',' (ctx:WxW)
#82: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:1150:
+ { .lt = { 26, 2, 2 , 1, 0 } },
^
total: 20 errors, 0 warnings, 0 checks, 100 lines checked
241c0a42c9fb drm/i915/buf_trans: switch from u8 to u32
2c831cdfa1cb drm/i915/xe3p: add V/P Override support for xe3p
-:101: WARNING:LINE_SPACING: Missing a blank line after declarations
#101: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:1231:
+ size_t offset = idx * tbl_sz + row * row_sz;
+ return &tables[offset];
-:122: CHECK:SPACING: No space is necessary after a cast
#122: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:1846:
+ entries = (union intel_ddi_buf_trans_entry *) buf_trans->entries;
-:156: WARNING:BLOCK_COMMENT_STYLE: Block comments should align the * on each line
#156: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:1878:
+ /* FIXME need to check correct parsing & table index should
+ * this ever trigger.
-:158: WARNING:SPACE_BEFORE_TAB: please, no space before tabs
#158: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:1880:
+^I^I * ^I^I^I^I XE3P_VS_PE_EDP,$
total: 0 errors, 3 warnings, 1 checks, 139 lines checked
396ec1c11c89 drm/i915/dg2: warn on V/P Override request on dg2
a8f8d00edb4f drm/i915/mtl: add V/P Override support for mtl+
-:99: CHECK:SPACING: No space is necessary after a cast
#99: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:1864:
+ entries = (union intel_ddi_buf_trans_entry *) buf_trans->entries;
-:131: ERROR:SPACING: space required before the open brace '{'
#131: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:1896:
+ } else if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_EDP)){
total: 1 errors, 0 warnings, 1 checks, 137 lines checked
^ permalink raw reply [flat|nested] 19+ messages in thread
* ✓ CI.KUnit: success for support for vswing/preemphasis override
2026-03-08 13:24 [RFC v1 00/11] support for vswing/preemphasis override Michał Grzelak
` (11 preceding siblings ...)
2026-03-08 13:31 ` ✗ CI.checkpatch: warning for support for vswing/preemphasis override Patchwork
@ 2026-03-08 13:33 ` Patchwork
2026-03-08 14:08 ` ✓ Xe.CI.BAT: " Patchwork
2026-03-08 15:06 ` ✓ Xe.CI.FULL: " Patchwork
14 siblings, 0 replies; 19+ messages in thread
From: Patchwork @ 2026-03-08 13:33 UTC (permalink / raw)
To: Michał Grzelak; +Cc: intel-xe
== Series Details ==
Series: support for vswing/preemphasis override
URL : https://patchwork.freedesktop.org/series/162813/
State : success
== Summary ==
+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[13:31:50] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[13:31: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
[13:32:25] Starting KUnit Kernel (1/1)...
[13:32:25] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[13:32:25] ================== guc_buf (11 subtests) ===================
[13:32:25] [PASSED] test_smallest
[13:32:25] [PASSED] test_largest
[13:32:25] [PASSED] test_granular
[13:32:25] [PASSED] test_unique
[13:32:25] [PASSED] test_overlap
[13:32:25] [PASSED] test_reusable
[13:32:25] [PASSED] test_too_big
[13:32:25] [PASSED] test_flush
[13:32:25] [PASSED] test_lookup
[13:32:25] [PASSED] test_data
[13:32:25] [PASSED] test_class
[13:32:25] ===================== [PASSED] guc_buf =====================
[13:32:25] =================== guc_dbm (7 subtests) ===================
[13:32:25] [PASSED] test_empty
[13:32:25] [PASSED] test_default
[13:32:25] ======================== test_size ========================
[13:32:25] [PASSED] 4
[13:32:25] [PASSED] 8
[13:32:25] [PASSED] 32
[13:32:25] [PASSED] 256
[13:32:25] ==================== [PASSED] test_size ====================
[13:32:25] ======================= test_reuse ========================
[13:32:25] [PASSED] 4
[13:32:25] [PASSED] 8
[13:32:25] [PASSED] 32
[13:32:25] [PASSED] 256
[13:32:25] =================== [PASSED] test_reuse ====================
[13:32:25] =================== test_range_overlap ====================
[13:32:25] [PASSED] 4
[13:32:25] [PASSED] 8
[13:32:25] [PASSED] 32
[13:32:25] [PASSED] 256
[13:32:25] =============== [PASSED] test_range_overlap ================
[13:32:25] =================== test_range_compact ====================
[13:32:25] [PASSED] 4
[13:32:25] [PASSED] 8
[13:32:25] [PASSED] 32
[13:32:25] [PASSED] 256
[13:32:25] =============== [PASSED] test_range_compact ================
[13:32:25] ==================== test_range_spare =====================
[13:32:25] [PASSED] 4
[13:32:25] [PASSED] 8
[13:32:25] [PASSED] 32
[13:32:25] [PASSED] 256
[13:32:25] ================ [PASSED] test_range_spare =================
[13:32:25] ===================== [PASSED] guc_dbm =====================
[13:32:25] =================== guc_idm (6 subtests) ===================
[13:32:25] [PASSED] bad_init
[13:32:25] [PASSED] no_init
[13:32:25] [PASSED] init_fini
[13:32:25] [PASSED] check_used
[13:32:25] [PASSED] check_quota
[13:32:25] [PASSED] check_all
[13:32:25] ===================== [PASSED] guc_idm =====================
[13:32:25] ================== no_relay (3 subtests) ===================
[13:32:25] [PASSED] xe_drops_guc2pf_if_not_ready
[13:32:25] [PASSED] xe_drops_guc2vf_if_not_ready
[13:32:25] [PASSED] xe_rejects_send_if_not_ready
[13:32:25] ==================== [PASSED] no_relay =====================
[13:32:25] ================== pf_relay (14 subtests) ==================
[13:32:25] [PASSED] pf_rejects_guc2pf_too_short
[13:32:25] [PASSED] pf_rejects_guc2pf_too_long
[13:32:25] [PASSED] pf_rejects_guc2pf_no_payload
[13:32:25] [PASSED] pf_fails_no_payload
[13:32:25] [PASSED] pf_fails_bad_origin
[13:32:25] [PASSED] pf_fails_bad_type
[13:32:25] [PASSED] pf_txn_reports_error
[13:32:25] [PASSED] pf_txn_sends_pf2guc
[13:32:25] [PASSED] pf_sends_pf2guc
[13:32:25] [SKIPPED] pf_loopback_nop
[13:32:25] [SKIPPED] pf_loopback_echo
[13:32:25] [SKIPPED] pf_loopback_fail
[13:32:25] [SKIPPED] pf_loopback_busy
[13:32:25] [SKIPPED] pf_loopback_retry
[13:32:25] ==================== [PASSED] pf_relay =====================
[13:32:25] ================== vf_relay (3 subtests) ===================
[13:32:25] [PASSED] vf_rejects_guc2vf_too_short
[13:32:25] [PASSED] vf_rejects_guc2vf_too_long
[13:32:25] [PASSED] vf_rejects_guc2vf_no_payload
[13:32:25] ==================== [PASSED] vf_relay =====================
[13:32:25] ================ pf_gt_config (9 subtests) =================
[13:32:25] [PASSED] fair_contexts_1vf
[13:32:25] [PASSED] fair_doorbells_1vf
[13:32:25] [PASSED] fair_ggtt_1vf
[13:32:25] ====================== fair_vram_1vf ======================
[13:32:25] [PASSED] 3.50 GiB
[13:32:25] [PASSED] 11.5 GiB
[13:32:25] [PASSED] 15.5 GiB
[13:32:25] [PASSED] 31.5 GiB
[13:32:25] [PASSED] 63.5 GiB
[13:32:25] [PASSED] 1.91 GiB
[13:32:25] ================== [PASSED] fair_vram_1vf ==================
[13:32:25] ================ fair_vram_1vf_admin_only =================
[13:32:25] [PASSED] 3.50 GiB
[13:32:25] [PASSED] 11.5 GiB
[13:32:25] [PASSED] 15.5 GiB
[13:32:25] [PASSED] 31.5 GiB
[13:32:25] [PASSED] 63.5 GiB
[13:32:25] [PASSED] 1.91 GiB
[13:32:25] ============ [PASSED] fair_vram_1vf_admin_only =============
[13:32:25] ====================== fair_contexts ======================
[13:32:25] [PASSED] 1 VF
[13:32:25] [PASSED] 2 VFs
[13:32:25] [PASSED] 3 VFs
[13:32:25] [PASSED] 4 VFs
[13:32:25] [PASSED] 5 VFs
[13:32:25] [PASSED] 6 VFs
[13:32:25] [PASSED] 7 VFs
[13:32:25] [PASSED] 8 VFs
[13:32:25] [PASSED] 9 VFs
[13:32:25] [PASSED] 10 VFs
[13:32:25] [PASSED] 11 VFs
[13:32:25] [PASSED] 12 VFs
[13:32:25] [PASSED] 13 VFs
[13:32:25] [PASSED] 14 VFs
[13:32:25] [PASSED] 15 VFs
[13:32:25] [PASSED] 16 VFs
[13:32:25] [PASSED] 17 VFs
[13:32:25] [PASSED] 18 VFs
[13:32:25] [PASSED] 19 VFs
[13:32:26] [PASSED] 20 VFs
[13:32:26] [PASSED] 21 VFs
[13:32:26] [PASSED] 22 VFs
[13:32:26] [PASSED] 23 VFs
[13:32:26] [PASSED] 24 VFs
[13:32:26] [PASSED] 25 VFs
[13:32:26] [PASSED] 26 VFs
[13:32:26] [PASSED] 27 VFs
[13:32:26] [PASSED] 28 VFs
[13:32:26] [PASSED] 29 VFs
[13:32:26] [PASSED] 30 VFs
[13:32:26] [PASSED] 31 VFs
[13:32:26] [PASSED] 32 VFs
[13:32:26] [PASSED] 33 VFs
[13:32:26] [PASSED] 34 VFs
[13:32:26] [PASSED] 35 VFs
[13:32:26] [PASSED] 36 VFs
[13:32:26] [PASSED] 37 VFs
[13:32:26] [PASSED] 38 VFs
[13:32:26] [PASSED] 39 VFs
[13:32:26] [PASSED] 40 VFs
[13:32:26] [PASSED] 41 VFs
[13:32:26] [PASSED] 42 VFs
[13:32:26] [PASSED] 43 VFs
[13:32:26] [PASSED] 44 VFs
[13:32:26] [PASSED] 45 VFs
[13:32:26] [PASSED] 46 VFs
[13:32:26] [PASSED] 47 VFs
[13:32:26] [PASSED] 48 VFs
[13:32:26] [PASSED] 49 VFs
[13:32:26] [PASSED] 50 VFs
[13:32:26] [PASSED] 51 VFs
[13:32:26] [PASSED] 52 VFs
[13:32:26] [PASSED] 53 VFs
[13:32:26] [PASSED] 54 VFs
[13:32:26] [PASSED] 55 VFs
[13:32:26] [PASSED] 56 VFs
[13:32:26] [PASSED] 57 VFs
[13:32:26] [PASSED] 58 VFs
[13:32:26] [PASSED] 59 VFs
[13:32:26] [PASSED] 60 VFs
[13:32:26] [PASSED] 61 VFs
[13:32:26] [PASSED] 62 VFs
[13:32:26] [PASSED] 63 VFs
[13:32:26] ================== [PASSED] fair_contexts ==================
[13:32:26] ===================== fair_doorbells ======================
[13:32:26] [PASSED] 1 VF
[13:32:26] [PASSED] 2 VFs
[13:32:26] [PASSED] 3 VFs
[13:32:26] [PASSED] 4 VFs
[13:32:26] [PASSED] 5 VFs
[13:32:26] [PASSED] 6 VFs
[13:32:26] [PASSED] 7 VFs
[13:32:26] [PASSED] 8 VFs
[13:32:26] [PASSED] 9 VFs
[13:32:26] [PASSED] 10 VFs
[13:32:26] [PASSED] 11 VFs
[13:32:26] [PASSED] 12 VFs
[13:32:26] [PASSED] 13 VFs
[13:32:26] [PASSED] 14 VFs
[13:32:26] [PASSED] 15 VFs
[13:32:26] [PASSED] 16 VFs
[13:32:26] [PASSED] 17 VFs
[13:32:26] [PASSED] 18 VFs
[13:32:26] [PASSED] 19 VFs
[13:32:26] [PASSED] 20 VFs
[13:32:26] [PASSED] 21 VFs
[13:32:26] [PASSED] 22 VFs
[13:32:26] [PASSED] 23 VFs
[13:32:26] [PASSED] 24 VFs
[13:32:26] [PASSED] 25 VFs
[13:32:26] [PASSED] 26 VFs
[13:32:26] [PASSED] 27 VFs
[13:32:26] [PASSED] 28 VFs
[13:32:26] [PASSED] 29 VFs
[13:32:26] [PASSED] 30 VFs
[13:32:26] [PASSED] 31 VFs
[13:32:26] [PASSED] 32 VFs
[13:32:26] [PASSED] 33 VFs
[13:32:26] [PASSED] 34 VFs
[13:32:26] [PASSED] 35 VFs
[13:32:26] [PASSED] 36 VFs
[13:32:26] [PASSED] 37 VFs
[13:32:26] [PASSED] 38 VFs
[13:32:26] [PASSED] 39 VFs
[13:32:26] [PASSED] 40 VFs
[13:32:26] [PASSED] 41 VFs
[13:32:26] [PASSED] 42 VFs
[13:32:26] [PASSED] 43 VFs
[13:32:26] [PASSED] 44 VFs
[13:32:26] [PASSED] 45 VFs
[13:32:26] [PASSED] 46 VFs
[13:32:26] [PASSED] 47 VFs
[13:32:26] [PASSED] 48 VFs
[13:32:26] [PASSED] 49 VFs
[13:32:26] [PASSED] 50 VFs
[13:32:26] [PASSED] 51 VFs
[13:32:26] [PASSED] 52 VFs
[13:32:26] [PASSED] 53 VFs
[13:32:26] [PASSED] 54 VFs
[13:32:26] [PASSED] 55 VFs
[13:32:26] [PASSED] 56 VFs
[13:32:26] [PASSED] 57 VFs
[13:32:26] [PASSED] 58 VFs
[13:32:26] [PASSED] 59 VFs
[13:32:26] [PASSED] 60 VFs
[13:32:26] [PASSED] 61 VFs
[13:32:26] [PASSED] 62 VFs
[13:32:26] [PASSED] 63 VFs
[13:32:26] ================= [PASSED] fair_doorbells ==================
[13:32:26] ======================== fair_ggtt ========================
[13:32:26] [PASSED] 1 VF
[13:32:26] [PASSED] 2 VFs
[13:32:26] [PASSED] 3 VFs
[13:32:26] [PASSED] 4 VFs
[13:32:26] [PASSED] 5 VFs
[13:32:26] [PASSED] 6 VFs
[13:32:26] [PASSED] 7 VFs
[13:32:26] [PASSED] 8 VFs
[13:32:26] [PASSED] 9 VFs
[13:32:26] [PASSED] 10 VFs
[13:32:26] [PASSED] 11 VFs
[13:32:26] [PASSED] 12 VFs
[13:32:26] [PASSED] 13 VFs
[13:32:26] [PASSED] 14 VFs
[13:32:26] [PASSED] 15 VFs
[13:32:26] [PASSED] 16 VFs
[13:32:26] [PASSED] 17 VFs
[13:32:26] [PASSED] 18 VFs
[13:32:26] [PASSED] 19 VFs
[13:32:26] [PASSED] 20 VFs
[13:32:26] [PASSED] 21 VFs
[13:32:26] [PASSED] 22 VFs
[13:32:26] [PASSED] 23 VFs
[13:32:26] [PASSED] 24 VFs
[13:32:26] [PASSED] 25 VFs
[13:32:26] [PASSED] 26 VFs
[13:32:26] [PASSED] 27 VFs
[13:32:26] [PASSED] 28 VFs
[13:32:26] [PASSED] 29 VFs
[13:32:26] [PASSED] 30 VFs
[13:32:26] [PASSED] 31 VFs
[13:32:26] [PASSED] 32 VFs
[13:32:26] [PASSED] 33 VFs
[13:32:26] [PASSED] 34 VFs
[13:32:26] [PASSED] 35 VFs
[13:32:26] [PASSED] 36 VFs
[13:32:26] [PASSED] 37 VFs
[13:32:26] [PASSED] 38 VFs
[13:32:26] [PASSED] 39 VFs
[13:32:26] [PASSED] 40 VFs
[13:32:26] [PASSED] 41 VFs
[13:32:26] [PASSED] 42 VFs
[13:32:26] [PASSED] 43 VFs
[13:32:26] [PASSED] 44 VFs
[13:32:26] [PASSED] 45 VFs
[13:32:26] [PASSED] 46 VFs
[13:32:26] [PASSED] 47 VFs
[13:32:26] [PASSED] 48 VFs
[13:32:26] [PASSED] 49 VFs
[13:32:26] [PASSED] 50 VFs
[13:32:26] [PASSED] 51 VFs
[13:32:26] [PASSED] 52 VFs
[13:32:26] [PASSED] 53 VFs
[13:32:26] [PASSED] 54 VFs
[13:32:26] [PASSED] 55 VFs
[13:32:26] [PASSED] 56 VFs
[13:32:26] [PASSED] 57 VFs
[13:32:26] [PASSED] 58 VFs
[13:32:26] [PASSED] 59 VFs
[13:32:26] [PASSED] 60 VFs
[13:32:26] [PASSED] 61 VFs
[13:32:26] [PASSED] 62 VFs
[13:32:26] [PASSED] 63 VFs
[13:32:26] ==================== [PASSED] fair_ggtt ====================
[13:32:26] ======================== fair_vram ========================
[13:32:26] [PASSED] 1 VF
[13:32:26] [PASSED] 2 VFs
[13:32:26] [PASSED] 3 VFs
[13:32:26] [PASSED] 4 VFs
[13:32:26] [PASSED] 5 VFs
[13:32:26] [PASSED] 6 VFs
[13:32:26] [PASSED] 7 VFs
[13:32:26] [PASSED] 8 VFs
[13:32:26] [PASSED] 9 VFs
[13:32:26] [PASSED] 10 VFs
[13:32:26] [PASSED] 11 VFs
[13:32:26] [PASSED] 12 VFs
[13:32:26] [PASSED] 13 VFs
[13:32:26] [PASSED] 14 VFs
[13:32:26] [PASSED] 15 VFs
[13:32:26] [PASSED] 16 VFs
[13:32:26] [PASSED] 17 VFs
[13:32:26] [PASSED] 18 VFs
[13:32:26] [PASSED] 19 VFs
[13:32:26] [PASSED] 20 VFs
[13:32:26] [PASSED] 21 VFs
[13:32:26] [PASSED] 22 VFs
[13:32:26] [PASSED] 23 VFs
[13:32:26] [PASSED] 24 VFs
[13:32:26] [PASSED] 25 VFs
[13:32:26] [PASSED] 26 VFs
[13:32:26] [PASSED] 27 VFs
[13:32:26] [PASSED] 28 VFs
[13:32:26] [PASSED] 29 VFs
[13:32:26] [PASSED] 30 VFs
[13:32:26] [PASSED] 31 VFs
[13:32:26] [PASSED] 32 VFs
[13:32:26] [PASSED] 33 VFs
[13:32:26] [PASSED] 34 VFs
[13:32:26] [PASSED] 35 VFs
[13:32:26] [PASSED] 36 VFs
[13:32:26] [PASSED] 37 VFs
[13:32:26] [PASSED] 38 VFs
[13:32:26] [PASSED] 39 VFs
[13:32:26] [PASSED] 40 VFs
[13:32:26] [PASSED] 41 VFs
[13:32:26] [PASSED] 42 VFs
[13:32:26] [PASSED] 43 VFs
[13:32:26] [PASSED] 44 VFs
[13:32:26] [PASSED] 45 VFs
[13:32:26] [PASSED] 46 VFs
[13:32:26] [PASSED] 47 VFs
[13:32:26] [PASSED] 48 VFs
[13:32:26] [PASSED] 49 VFs
[13:32:26] [PASSED] 50 VFs
[13:32:26] [PASSED] 51 VFs
[13:32:26] [PASSED] 52 VFs
[13:32:26] [PASSED] 53 VFs
[13:32:26] [PASSED] 54 VFs
[13:32:26] [PASSED] 55 VFs
[13:32:26] [PASSED] 56 VFs
[13:32:26] [PASSED] 57 VFs
[13:32:26] [PASSED] 58 VFs
[13:32:26] [PASSED] 59 VFs
[13:32:26] [PASSED] 60 VFs
[13:32:26] [PASSED] 61 VFs
[13:32:26] [PASSED] 62 VFs
[13:32:26] [PASSED] 63 VFs
[13:32:26] ==================== [PASSED] fair_vram ====================
[13:32:26] ================== [PASSED] pf_gt_config ===================
[13:32:26] ===================== lmtt (1 subtest) =====================
[13:32:26] ======================== test_ops =========================
[13:32:26] [PASSED] 2-level
[13:32:26] [PASSED] multi-level
[13:32:26] ==================== [PASSED] test_ops =====================
[13:32:26] ====================== [PASSED] lmtt =======================
[13:32:26] ================= pf_service (11 subtests) =================
[13:32:26] [PASSED] pf_negotiate_any
[13:32:26] [PASSED] pf_negotiate_base_match
[13:32:26] [PASSED] pf_negotiate_base_newer
[13:32:26] [PASSED] pf_negotiate_base_next
[13:32:26] [SKIPPED] pf_negotiate_base_older
[13:32:26] [PASSED] pf_negotiate_base_prev
[13:32:26] [PASSED] pf_negotiate_latest_match
[13:32:26] [PASSED] pf_negotiate_latest_newer
[13:32:26] [PASSED] pf_negotiate_latest_next
[13:32:26] [SKIPPED] pf_negotiate_latest_older
[13:32:26] [SKIPPED] pf_negotiate_latest_prev
[13:32:26] =================== [PASSED] pf_service ====================
[13:32:26] ================= xe_guc_g2g (2 subtests) ==================
[13:32:26] ============== xe_live_guc_g2g_kunit_default ==============
[13:32:26] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[13:32:26] ============== xe_live_guc_g2g_kunit_allmem ===============
[13:32:26] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[13:32:26] =================== [SKIPPED] xe_guc_g2g ===================
[13:32:26] =================== xe_mocs (2 subtests) ===================
[13:32:26] ================ xe_live_mocs_kernel_kunit ================
[13:32:26] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[13:32:26] ================ xe_live_mocs_reset_kunit =================
[13:32:26] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[13:32:26] ==================== [SKIPPED] xe_mocs =====================
[13:32:26] ================= xe_migrate (2 subtests) ==================
[13:32:26] ================= xe_migrate_sanity_kunit =================
[13:32:26] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[13:32:26] ================== xe_validate_ccs_kunit ==================
[13:32:26] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[13:32:26] =================== [SKIPPED] xe_migrate ===================
[13:32:26] ================== xe_dma_buf (1 subtest) ==================
[13:32:26] ==================== xe_dma_buf_kunit =====================
[13:32:26] ================ [SKIPPED] xe_dma_buf_kunit ================
[13:32:26] =================== [SKIPPED] xe_dma_buf ===================
[13:32:26] ================= xe_bo_shrink (1 subtest) =================
[13:32:26] =================== xe_bo_shrink_kunit ====================
[13:32:26] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[13:32:26] ================== [SKIPPED] xe_bo_shrink ==================
[13:32:26] ==================== xe_bo (2 subtests) ====================
[13:32:26] ================== xe_ccs_migrate_kunit ===================
[13:32:26] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[13:32:26] ==================== xe_bo_evict_kunit ====================
[13:32:26] =============== [SKIPPED] xe_bo_evict_kunit ================
[13:32:26] ===================== [SKIPPED] xe_bo ======================
[13:32:26] ==================== args (13 subtests) ====================
[13:32:26] [PASSED] count_args_test
[13:32:26] [PASSED] call_args_example
[13:32:26] [PASSED] call_args_test
[13:32:26] [PASSED] drop_first_arg_example
[13:32:26] [PASSED] drop_first_arg_test
[13:32:26] [PASSED] first_arg_example
[13:32:26] [PASSED] first_arg_test
[13:32:26] [PASSED] last_arg_example
[13:32:26] [PASSED] last_arg_test
[13:32:26] [PASSED] pick_arg_example
[13:32:26] [PASSED] if_args_example
[13:32:26] [PASSED] if_args_test
[13:32:26] [PASSED] sep_comma_example
[13:32:26] ====================== [PASSED] args =======================
[13:32:26] =================== xe_pci (3 subtests) ====================
[13:32:26] ==================== check_graphics_ip ====================
[13:32:26] [PASSED] 12.00 Xe_LP
[13:32:26] [PASSED] 12.10 Xe_LP+
[13:32:26] [PASSED] 12.55 Xe_HPG
[13:32:26] [PASSED] 12.60 Xe_HPC
[13:32:26] [PASSED] 12.70 Xe_LPG
[13:32:26] [PASSED] 12.71 Xe_LPG
[13:32:26] [PASSED] 12.74 Xe_LPG+
[13:32:26] [PASSED] 20.01 Xe2_HPG
[13:32:26] [PASSED] 20.02 Xe2_HPG
[13:32:26] [PASSED] 20.04 Xe2_LPG
[13:32:26] [PASSED] 30.00 Xe3_LPG
[13:32:26] [PASSED] 30.01 Xe3_LPG
[13:32:26] [PASSED] 30.03 Xe3_LPG
[13:32:26] [PASSED] 30.04 Xe3_LPG
[13:32:26] [PASSED] 30.05 Xe3_LPG
[13:32:26] [PASSED] 35.10 Xe3p_LPG
[13:32:26] [PASSED] 35.11 Xe3p_XPC
[13:32:26] ================ [PASSED] check_graphics_ip ================
[13:32:26] ===================== check_media_ip ======================
[13:32:26] [PASSED] 12.00 Xe_M
[13:32:26] [PASSED] 12.55 Xe_HPM
[13:32:26] [PASSED] 13.00 Xe_LPM+
[13:32:26] [PASSED] 13.01 Xe2_HPM
[13:32:26] [PASSED] 20.00 Xe2_LPM
[13:32:26] [PASSED] 30.00 Xe3_LPM
[13:32:26] [PASSED] 30.02 Xe3_LPM
[13:32:26] [PASSED] 35.00 Xe3p_LPM
[13:32:26] [PASSED] 35.03 Xe3p_HPM
[13:32:26] ================= [PASSED] check_media_ip ==================
[13:32:26] =================== check_platform_desc ===================
[13:32:26] [PASSED] 0x9A60 (TIGERLAKE)
[13:32:26] [PASSED] 0x9A68 (TIGERLAKE)
[13:32:26] [PASSED] 0x9A70 (TIGERLAKE)
[13:32:26] [PASSED] 0x9A40 (TIGERLAKE)
[13:32:26] [PASSED] 0x9A49 (TIGERLAKE)
[13:32:26] [PASSED] 0x9A59 (TIGERLAKE)
[13:32:26] [PASSED] 0x9A78 (TIGERLAKE)
[13:32:26] [PASSED] 0x9AC0 (TIGERLAKE)
[13:32:26] [PASSED] 0x9AC9 (TIGERLAKE)
[13:32:26] [PASSED] 0x9AD9 (TIGERLAKE)
[13:32:26] [PASSED] 0x9AF8 (TIGERLAKE)
[13:32:26] [PASSED] 0x4C80 (ROCKETLAKE)
[13:32:26] [PASSED] 0x4C8A (ROCKETLAKE)
[13:32:26] [PASSED] 0x4C8B (ROCKETLAKE)
[13:32:26] [PASSED] 0x4C8C (ROCKETLAKE)
[13:32:26] [PASSED] 0x4C90 (ROCKETLAKE)
[13:32:26] [PASSED] 0x4C9A (ROCKETLAKE)
[13:32:26] [PASSED] 0x4680 (ALDERLAKE_S)
[13:32:26] [PASSED] 0x4682 (ALDERLAKE_S)
[13:32:26] [PASSED] 0x4688 (ALDERLAKE_S)
[13:32:26] [PASSED] 0x468A (ALDERLAKE_S)
[13:32:26] [PASSED] 0x468B (ALDERLAKE_S)
[13:32:26] [PASSED] 0x4690 (ALDERLAKE_S)
[13:32:26] [PASSED] 0x4692 (ALDERLAKE_S)
[13:32:26] [PASSED] 0x4693 (ALDERLAKE_S)
[13:32:26] [PASSED] 0x46A0 (ALDERLAKE_P)
[13:32:26] [PASSED] 0x46A1 (ALDERLAKE_P)
[13:32:26] [PASSED] 0x46A2 (ALDERLAKE_P)
[13:32:26] [PASSED] 0x46A3 (ALDERLAKE_P)
[13:32:26] [PASSED] 0x46A6 (ALDERLAKE_P)
[13:32:26] [PASSED] 0x46A8 (ALDERLAKE_P)
[13:32:26] [PASSED] 0x46AA (ALDERLAKE_P)
[13:32:26] [PASSED] 0x462A (ALDERLAKE_P)
[13:32:26] [PASSED] 0x4626 (ALDERLAKE_P)
[13:32:26] [PASSED] 0x4628 (ALDERLAKE_P)
[13:32:26] [PASSED] 0x46B0 (ALDERLAKE_P)
[13:32:26] [PASSED] 0x46B1 (ALDERLAKE_P)
[13:32:26] [PASSED] 0x46B2 (ALDERLAKE_P)
[13:32:26] [PASSED] 0x46B3 (ALDERLAKE_P)
[13:32:26] [PASSED] 0x46C0 (ALDERLAKE_P)
[13:32:26] [PASSED] 0x46C1 (ALDERLAKE_P)
[13:32:26] [PASSED] 0x46C2 (ALDERLAKE_P)
[13:32:26] [PASSED] 0x46C3 (ALDERLAKE_P)
[13:32:26] [PASSED] 0x46D0 (ALDERLAKE_N)
[13:32:26] [PASSED] 0x46D1 (ALDERLAKE_N)
[13:32:26] [PASSED] 0x46D2 (ALDERLAKE_N)
[13:32:26] [PASSED] 0x46D3 (ALDERLAKE_N)
[13:32:26] [PASSED] 0x46D4 (ALDERLAKE_N)
[13:32:26] [PASSED] 0xA721 (ALDERLAKE_P)
[13:32:26] [PASSED] 0xA7A1 (ALDERLAKE_P)
[13:32:26] [PASSED] 0xA7A9 (ALDERLAKE_P)
[13:32:26] [PASSED] 0xA7AC (ALDERLAKE_P)
[13:32:26] [PASSED] 0xA7AD (ALDERLAKE_P)
[13:32:26] [PASSED] 0xA720 (ALDERLAKE_P)
[13:32:26] [PASSED] 0xA7A0 (ALDERLAKE_P)
[13:32:26] [PASSED] 0xA7A8 (ALDERLAKE_P)
[13:32:26] [PASSED] 0xA7AA (ALDERLAKE_P)
[13:32:26] [PASSED] 0xA7AB (ALDERLAKE_P)
[13:32:26] [PASSED] 0xA780 (ALDERLAKE_S)
[13:32:26] [PASSED] 0xA781 (ALDERLAKE_S)
[13:32:26] [PASSED] 0xA782 (ALDERLAKE_S)
[13:32:26] [PASSED] 0xA783 (ALDERLAKE_S)
[13:32:26] [PASSED] 0xA788 (ALDERLAKE_S)
[13:32:26] [PASSED] 0xA789 (ALDERLAKE_S)
[13:32:26] [PASSED] 0xA78A (ALDERLAKE_S)
[13:32:26] [PASSED] 0xA78B (ALDERLAKE_S)
[13:32:26] [PASSED] 0x4905 (DG1)
[13:32:26] [PASSED] 0x4906 (DG1)
[13:32:26] [PASSED] 0x4907 (DG1)
[13:32:26] [PASSED] 0x4908 (DG1)
[13:32:26] [PASSED] 0x4909 (DG1)
[13:32:26] [PASSED] 0x56C0 (DG2)
[13:32:26] [PASSED] 0x56C2 (DG2)
[13:32:26] [PASSED] 0x56C1 (DG2)
[13:32:26] [PASSED] 0x7D51 (METEORLAKE)
[13:32:26] [PASSED] 0x7DD1 (METEORLAKE)
[13:32:26] [PASSED] 0x7D41 (METEORLAKE)
[13:32:26] [PASSED] 0x7D67 (METEORLAKE)
[13:32:26] [PASSED] 0xB640 (METEORLAKE)
[13:32:26] [PASSED] 0x56A0 (DG2)
[13:32:26] [PASSED] 0x56A1 (DG2)
[13:32:26] [PASSED] 0x56A2 (DG2)
[13:32:26] [PASSED] 0x56BE (DG2)
[13:32:26] [PASSED] 0x56BF (DG2)
[13:32:26] [PASSED] 0x5690 (DG2)
[13:32:26] [PASSED] 0x5691 (DG2)
[13:32:26] [PASSED] 0x5692 (DG2)
[13:32:26] [PASSED] 0x56A5 (DG2)
[13:32:26] [PASSED] 0x56A6 (DG2)
[13:32:26] [PASSED] 0x56B0 (DG2)
[13:32:26] [PASSED] 0x56B1 (DG2)
[13:32:26] [PASSED] 0x56BA (DG2)
[13:32:26] [PASSED] 0x56BB (DG2)
[13:32:26] [PASSED] 0x56BC (DG2)
[13:32:26] [PASSED] 0x56BD (DG2)
[13:32:26] [PASSED] 0x5693 (DG2)
[13:32:26] [PASSED] 0x5694 (DG2)
[13:32:26] [PASSED] 0x5695 (DG2)
[13:32:26] [PASSED] 0x56A3 (DG2)
[13:32:26] [PASSED] 0x56A4 (DG2)
[13:32:26] [PASSED] 0x56B2 (DG2)
[13:32:26] [PASSED] 0x56B3 (DG2)
[13:32:26] [PASSED] 0x5696 (DG2)
[13:32:26] [PASSED] 0x5697 (DG2)
[13:32:26] [PASSED] 0xB69 (PVC)
[13:32:26] [PASSED] 0xB6E (PVC)
[13:32:26] [PASSED] 0xBD4 (PVC)
[13:32:26] [PASSED] 0xBD5 (PVC)
[13:32:26] [PASSED] 0xBD6 (PVC)
[13:32:26] [PASSED] 0xBD7 (PVC)
[13:32:26] [PASSED] 0xBD8 (PVC)
[13:32:26] [PASSED] 0xBD9 (PVC)
[13:32:26] [PASSED] 0xBDA (PVC)
[13:32:26] [PASSED] 0xBDB (PVC)
[13:32:26] [PASSED] 0xBE0 (PVC)
[13:32:26] [PASSED] 0xBE1 (PVC)
[13:32:26] [PASSED] 0xBE5 (PVC)
[13:32:26] [PASSED] 0x7D40 (METEORLAKE)
[13:32:26] [PASSED] 0x7D45 (METEORLAKE)
[13:32:26] [PASSED] 0x7D55 (METEORLAKE)
[13:32:26] [PASSED] 0x7D60 (METEORLAKE)
[13:32:26] [PASSED] 0x7DD5 (METEORLAKE)
[13:32:26] [PASSED] 0x6420 (LUNARLAKE)
[13:32:26] [PASSED] 0x64A0 (LUNARLAKE)
[13:32:26] [PASSED] 0x64B0 (LUNARLAKE)
[13:32:26] [PASSED] 0xE202 (BATTLEMAGE)
[13:32:26] [PASSED] 0xE209 (BATTLEMAGE)
[13:32:26] [PASSED] 0xE20B (BATTLEMAGE)
[13:32:26] [PASSED] 0xE20C (BATTLEMAGE)
[13:32:26] [PASSED] 0xE20D (BATTLEMAGE)
[13:32:26] [PASSED] 0xE210 (BATTLEMAGE)
[13:32:26] [PASSED] 0xE211 (BATTLEMAGE)
[13:32:26] [PASSED] 0xE212 (BATTLEMAGE)
[13:32:26] [PASSED] 0xE216 (BATTLEMAGE)
[13:32:26] [PASSED] 0xE220 (BATTLEMAGE)
[13:32:26] [PASSED] 0xE221 (BATTLEMAGE)
[13:32:26] [PASSED] 0xE222 (BATTLEMAGE)
[13:32:26] [PASSED] 0xE223 (BATTLEMAGE)
[13:32:26] [PASSED] 0xB080 (PANTHERLAKE)
[13:32:26] [PASSED] 0xB081 (PANTHERLAKE)
[13:32:26] [PASSED] 0xB082 (PANTHERLAKE)
[13:32:26] [PASSED] 0xB083 (PANTHERLAKE)
[13:32:26] [PASSED] 0xB084 (PANTHERLAKE)
[13:32:26] [PASSED] 0xB085 (PANTHERLAKE)
[13:32:26] [PASSED] 0xB086 (PANTHERLAKE)
[13:32:26] [PASSED] 0xB087 (PANTHERLAKE)
[13:32:26] [PASSED] 0xB08F (PANTHERLAKE)
[13:32:26] [PASSED] 0xB090 (PANTHERLAKE)
[13:32:26] [PASSED] 0xB0A0 (PANTHERLAKE)
[13:32:26] [PASSED] 0xB0B0 (PANTHERLAKE)
[13:32:26] [PASSED] 0xFD80 (PANTHERLAKE)
[13:32:26] [PASSED] 0xFD81 (PANTHERLAKE)
[13:32:26] [PASSED] 0xD740 (NOVALAKE_S)
[13:32:26] [PASSED] 0xD741 (NOVALAKE_S)
[13:32:26] [PASSED] 0xD742 (NOVALAKE_S)
[13:32:26] [PASSED] 0xD743 (NOVALAKE_S)
[13:32:26] [PASSED] 0xD744 (NOVALAKE_S)
[13:32:26] [PASSED] 0xD745 (NOVALAKE_S)
[13:32:26] [PASSED] 0x674C (CRESCENTISLAND)
[13:32:26] [PASSED] 0xD750 (NOVALAKE_P)
[13:32:26] [PASSED] 0xD751 (NOVALAKE_P)
[13:32:26] [PASSED] 0xD752 (NOVALAKE_P)
[13:32:26] [PASSED] 0xD753 (NOVALAKE_P)
[13:32:26] [PASSED] 0xD754 (NOVALAKE_P)
[13:32:26] [PASSED] 0xD755 (NOVALAKE_P)
[13:32:26] [PASSED] 0xD756 (NOVALAKE_P)
[13:32:26] [PASSED] 0xD757 (NOVALAKE_P)
[13:32:26] [PASSED] 0xD75F (NOVALAKE_P)
[13:32:26] =============== [PASSED] check_platform_desc ===============
[13:32:26] ===================== [PASSED] xe_pci ======================
[13:32:26] =================== xe_rtp (2 subtests) ====================
[13:32:26] =============== xe_rtp_process_to_sr_tests ================
[13:32:26] [PASSED] coalesce-same-reg
[13:32:26] [PASSED] no-match-no-add
[13:32:26] [PASSED] match-or
[13:32:26] [PASSED] match-or-xfail
[13:32:26] [PASSED] no-match-no-add-multiple-rules
[13:32:26] [PASSED] two-regs-two-entries
[13:32:26] [PASSED] clr-one-set-other
[13:32:26] [PASSED] set-field
[13:32:26] [PASSED] conflict-duplicate
stty: 'standard input': Inappropriate ioctl for device
[13:32:26] [PASSED] conflict-not-disjoint
[13:32:26] [PASSED] conflict-reg-type
[13:32:26] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[13:32:26] ================== xe_rtp_process_tests ===================
[13:32:26] [PASSED] active1
[13:32:26] [PASSED] active2
[13:32:26] [PASSED] active-inactive
[13:32:26] [PASSED] inactive-active
[13:32:26] [PASSED] inactive-1st_or_active-inactive
[13:32:26] [PASSED] inactive-2nd_or_active-inactive
[13:32:26] [PASSED] inactive-last_or_active-inactive
[13:32:26] [PASSED] inactive-no_or_active-inactive
[13:32:26] ============== [PASSED] xe_rtp_process_tests ===============
[13:32:26] ===================== [PASSED] xe_rtp ======================
[13:32:26] ==================== xe_wa (1 subtest) =====================
[13:32:26] ======================== xe_wa_gt =========================
[13:32:26] [PASSED] TIGERLAKE B0
[13:32:26] [PASSED] DG1 A0
[13:32:26] [PASSED] DG1 B0
[13:32:26] [PASSED] ALDERLAKE_S A0
[13:32:26] [PASSED] ALDERLAKE_S B0
[13:32:26] [PASSED] ALDERLAKE_S C0
[13:32:26] [PASSED] ALDERLAKE_S D0
[13:32:26] [PASSED] ALDERLAKE_P A0
[13:32:26] [PASSED] ALDERLAKE_P B0
[13:32:26] [PASSED] ALDERLAKE_P C0
[13:32:26] [PASSED] ALDERLAKE_S RPLS D0
[13:32:26] [PASSED] ALDERLAKE_P RPLU E0
[13:32:26] [PASSED] DG2 G10 C0
[13:32:26] [PASSED] DG2 G11 B1
[13:32:26] [PASSED] DG2 G12 A1
[13:32:26] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[13:32:26] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[13:32:26] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[13:32:26] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[13:32:26] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[13:32:26] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[13:32:26] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[13:32:26] ==================== [PASSED] xe_wa_gt =====================
[13:32:26] ====================== [PASSED] xe_wa ======================
[13:32:26] ============================================================
[13:32:26] Testing complete. Ran 597 tests: passed: 579, skipped: 18
[13:32:26] Elapsed time: 35.464s total, 4.280s configuring, 30.566s building, 0.598s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[13:32:26] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[13:32:28] 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
[13:32:51] Starting KUnit Kernel (1/1)...
[13:32:51] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[13:32:52] ============ drm_test_pick_cmdline (2 subtests) ============
[13:32:52] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[13:32:52] =============== drm_test_pick_cmdline_named ===============
[13:32:52] [PASSED] NTSC
[13:32:52] [PASSED] NTSC-J
[13:32:52] [PASSED] PAL
[13:32:52] [PASSED] PAL-M
[13:32:52] =========== [PASSED] drm_test_pick_cmdline_named ===========
[13:32:52] ============== [PASSED] drm_test_pick_cmdline ==============
[13:32:52] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[13:32:52] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[13:32:52] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[13:32:52] =========== drm_validate_clone_mode (2 subtests) ===========
[13:32:52] ============== drm_test_check_in_clone_mode ===============
[13:32:52] [PASSED] in_clone_mode
[13:32:52] [PASSED] not_in_clone_mode
[13:32:52] ========== [PASSED] drm_test_check_in_clone_mode ===========
[13:32:52] =============== drm_test_check_valid_clones ===============
[13:32:52] [PASSED] not_in_clone_mode
[13:32:52] [PASSED] valid_clone
[13:32:52] [PASSED] invalid_clone
[13:32:52] =========== [PASSED] drm_test_check_valid_clones ===========
[13:32:52] ============= [PASSED] drm_validate_clone_mode =============
[13:32:52] ============= drm_validate_modeset (1 subtest) =============
[13:32:52] [PASSED] drm_test_check_connector_changed_modeset
[13:32:52] ============== [PASSED] drm_validate_modeset ===============
[13:32:52] ====== drm_test_bridge_get_current_state (2 subtests) ======
[13:32:52] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[13:32:52] [PASSED] drm_test_drm_bridge_get_current_state_legacy
[13:32:52] ======== [PASSED] drm_test_bridge_get_current_state ========
[13:32:52] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[13:32:52] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[13:32:52] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[13:32:52] [PASSED] drm_test_drm_bridge_helper_reset_crtc_legacy
[13:32:52] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[13:32:52] ============== drm_bridge_alloc (2 subtests) ===============
[13:32:52] [PASSED] drm_test_drm_bridge_alloc_basic
[13:32:52] [PASSED] drm_test_drm_bridge_alloc_get_put
[13:32:52] ================ [PASSED] drm_bridge_alloc =================
[13:32:52] ============= drm_cmdline_parser (40 subtests) =============
[13:32:52] [PASSED] drm_test_cmdline_force_d_only
[13:32:52] [PASSED] drm_test_cmdline_force_D_only_dvi
[13:32:52] [PASSED] drm_test_cmdline_force_D_only_hdmi
[13:32:52] [PASSED] drm_test_cmdline_force_D_only_not_digital
[13:32:52] [PASSED] drm_test_cmdline_force_e_only
[13:32:52] [PASSED] drm_test_cmdline_res
[13:32:52] [PASSED] drm_test_cmdline_res_vesa
[13:32:52] [PASSED] drm_test_cmdline_res_vesa_rblank
[13:32:52] [PASSED] drm_test_cmdline_res_rblank
[13:32:52] [PASSED] drm_test_cmdline_res_bpp
[13:32:52] [PASSED] drm_test_cmdline_res_refresh
[13:32:52] [PASSED] drm_test_cmdline_res_bpp_refresh
[13:32:52] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[13:32:52] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[13:32:52] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[13:32:52] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[13:32:52] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[13:32:52] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[13:32:52] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[13:32:52] [PASSED] drm_test_cmdline_res_margins_force_on
[13:32:52] [PASSED] drm_test_cmdline_res_vesa_margins
[13:32:52] [PASSED] drm_test_cmdline_name
[13:32:52] [PASSED] drm_test_cmdline_name_bpp
[13:32:52] [PASSED] drm_test_cmdline_name_option
[13:32:52] [PASSED] drm_test_cmdline_name_bpp_option
[13:32:52] [PASSED] drm_test_cmdline_rotate_0
[13:32:52] [PASSED] drm_test_cmdline_rotate_90
[13:32:52] [PASSED] drm_test_cmdline_rotate_180
[13:32:52] [PASSED] drm_test_cmdline_rotate_270
[13:32:52] [PASSED] drm_test_cmdline_hmirror
[13:32:52] [PASSED] drm_test_cmdline_vmirror
[13:32:52] [PASSED] drm_test_cmdline_margin_options
[13:32:52] [PASSED] drm_test_cmdline_multiple_options
[13:32:52] [PASSED] drm_test_cmdline_bpp_extra_and_option
[13:32:52] [PASSED] drm_test_cmdline_extra_and_option
[13:32:52] [PASSED] drm_test_cmdline_freestanding_options
[13:32:52] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[13:32:52] [PASSED] drm_test_cmdline_panel_orientation
[13:32:52] ================ drm_test_cmdline_invalid =================
[13:32:52] [PASSED] margin_only
[13:32:52] [PASSED] interlace_only
[13:32:52] [PASSED] res_missing_x
[13:32:52] [PASSED] res_missing_y
[13:32:52] [PASSED] res_bad_y
[13:32:52] [PASSED] res_missing_y_bpp
[13:32:52] [PASSED] res_bad_bpp
[13:32:52] [PASSED] res_bad_refresh
[13:32:52] [PASSED] res_bpp_refresh_force_on_off
[13:32:52] [PASSED] res_invalid_mode
[13:32:52] [PASSED] res_bpp_wrong_place_mode
[13:32:52] [PASSED] name_bpp_refresh
[13:32:52] [PASSED] name_refresh
[13:32:52] [PASSED] name_refresh_wrong_mode
[13:32:52] [PASSED] name_refresh_invalid_mode
[13:32:52] [PASSED] rotate_multiple
[13:32:52] [PASSED] rotate_invalid_val
[13:32:52] [PASSED] rotate_truncated
[13:32:52] [PASSED] invalid_option
[13:32:52] [PASSED] invalid_tv_option
[13:32:52] [PASSED] truncated_tv_option
[13:32:52] ============ [PASSED] drm_test_cmdline_invalid =============
[13:32:52] =============== drm_test_cmdline_tv_options ===============
[13:32:52] [PASSED] NTSC
[13:32:52] [PASSED] NTSC_443
[13:32:52] [PASSED] NTSC_J
[13:32:52] [PASSED] PAL
[13:32:52] [PASSED] PAL_M
[13:32:52] [PASSED] PAL_N
[13:32:52] [PASSED] SECAM
[13:32:52] [PASSED] MONO_525
[13:32:52] [PASSED] MONO_625
[13:32:52] =========== [PASSED] drm_test_cmdline_tv_options ===========
[13:32:52] =============== [PASSED] drm_cmdline_parser ================
[13:32:52] ========== drmm_connector_hdmi_init (20 subtests) ==========
[13:32:52] [PASSED] drm_test_connector_hdmi_init_valid
[13:32:52] [PASSED] drm_test_connector_hdmi_init_bpc_8
[13:32:52] [PASSED] drm_test_connector_hdmi_init_bpc_10
[13:32:52] [PASSED] drm_test_connector_hdmi_init_bpc_12
[13:32:52] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[13:32:52] [PASSED] drm_test_connector_hdmi_init_bpc_null
[13:32:52] [PASSED] drm_test_connector_hdmi_init_formats_empty
[13:32:52] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[13:32:52] === drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[13:32:52] [PASSED] supported_formats=0x9 yuv420_allowed=1
[13:32:52] [PASSED] supported_formats=0x9 yuv420_allowed=0
[13:32:52] [PASSED] supported_formats=0x3 yuv420_allowed=1
[13:32:52] [PASSED] supported_formats=0x3 yuv420_allowed=0
[13:32:52] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[13:32:52] [PASSED] drm_test_connector_hdmi_init_null_ddc
[13:32:52] [PASSED] drm_test_connector_hdmi_init_null_product
[13:32:52] [PASSED] drm_test_connector_hdmi_init_null_vendor
[13:32:52] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[13:32:52] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[13:32:52] [PASSED] drm_test_connector_hdmi_init_product_valid
[13:32:52] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[13:32:52] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[13:32:52] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[13:32:52] ========= drm_test_connector_hdmi_init_type_valid =========
[13:32:52] [PASSED] HDMI-A
[13:32:52] [PASSED] HDMI-B
[13:32:52] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[13:32:52] ======== drm_test_connector_hdmi_init_type_invalid ========
[13:32:52] [PASSED] Unknown
[13:32:52] [PASSED] VGA
[13:32:52] [PASSED] DVI-I
[13:32:52] [PASSED] DVI-D
[13:32:52] [PASSED] DVI-A
[13:32:52] [PASSED] Composite
[13:32:52] [PASSED] SVIDEO
[13:32:52] [PASSED] LVDS
[13:32:52] [PASSED] Component
[13:32:52] [PASSED] DIN
[13:32:52] [PASSED] DP
[13:32:52] [PASSED] TV
[13:32:52] [PASSED] eDP
[13:32:52] [PASSED] Virtual
[13:32:52] [PASSED] DSI
[13:32:52] [PASSED] DPI
[13:32:52] [PASSED] Writeback
[13:32:52] [PASSED] SPI
[13:32:52] [PASSED] USB
[13:32:52] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[13:32:52] ============ [PASSED] drmm_connector_hdmi_init =============
[13:32:52] ============= drmm_connector_init (3 subtests) =============
[13:32:52] [PASSED] drm_test_drmm_connector_init
[13:32:52] [PASSED] drm_test_drmm_connector_init_null_ddc
[13:32:52] ========= drm_test_drmm_connector_init_type_valid =========
[13:32:52] [PASSED] Unknown
[13:32:52] [PASSED] VGA
[13:32:52] [PASSED] DVI-I
[13:32:52] [PASSED] DVI-D
[13:32:52] [PASSED] DVI-A
[13:32:52] [PASSED] Composite
[13:32:52] [PASSED] SVIDEO
[13:32:52] [PASSED] LVDS
[13:32:52] [PASSED] Component
[13:32:52] [PASSED] DIN
[13:32:52] [PASSED] DP
[13:32:52] [PASSED] HDMI-A
[13:32:52] [PASSED] HDMI-B
[13:32:52] [PASSED] TV
[13:32:52] [PASSED] eDP
[13:32:52] [PASSED] Virtual
[13:32:52] [PASSED] DSI
[13:32:52] [PASSED] DPI
[13:32:52] [PASSED] Writeback
[13:32:52] [PASSED] SPI
[13:32:52] [PASSED] USB
[13:32:52] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[13:32:52] =============== [PASSED] drmm_connector_init ===============
[13:32:52] ========= drm_connector_dynamic_init (6 subtests) ==========
[13:32:52] [PASSED] drm_test_drm_connector_dynamic_init
[13:32:52] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[13:32:52] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[13:32:52] [PASSED] drm_test_drm_connector_dynamic_init_properties
[13:32:52] ===== drm_test_drm_connector_dynamic_init_type_valid ======
[13:32:52] [PASSED] Unknown
[13:32:52] [PASSED] VGA
[13:32:52] [PASSED] DVI-I
[13:32:52] [PASSED] DVI-D
[13:32:52] [PASSED] DVI-A
[13:32:52] [PASSED] Composite
[13:32:52] [PASSED] SVIDEO
[13:32:52] [PASSED] LVDS
[13:32:52] [PASSED] Component
[13:32:52] [PASSED] DIN
[13:32:52] [PASSED] DP
[13:32:52] [PASSED] HDMI-A
[13:32:52] [PASSED] HDMI-B
[13:32:52] [PASSED] TV
[13:32:52] [PASSED] eDP
[13:32:52] [PASSED] Virtual
[13:32:52] [PASSED] DSI
[13:32:52] [PASSED] DPI
[13:32:52] [PASSED] Writeback
[13:32:52] [PASSED] SPI
[13:32:52] [PASSED] USB
[13:32:52] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[13:32:52] ======== drm_test_drm_connector_dynamic_init_name =========
[13:32:52] [PASSED] Unknown
[13:32:52] [PASSED] VGA
[13:32:52] [PASSED] DVI-I
[13:32:52] [PASSED] DVI-D
[13:32:52] [PASSED] DVI-A
[13:32:52] [PASSED] Composite
[13:32:52] [PASSED] SVIDEO
[13:32:52] [PASSED] LVDS
[13:32:52] [PASSED] Component
[13:32:52] [PASSED] DIN
[13:32:52] [PASSED] DP
[13:32:52] [PASSED] HDMI-A
[13:32:52] [PASSED] HDMI-B
[13:32:52] [PASSED] TV
[13:32:52] [PASSED] eDP
[13:32:52] [PASSED] Virtual
[13:32:52] [PASSED] DSI
[13:32:52] [PASSED] DPI
[13:32:52] [PASSED] Writeback
[13:32:52] [PASSED] SPI
[13:32:52] [PASSED] USB
[13:32:52] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[13:32:52] =========== [PASSED] drm_connector_dynamic_init ============
[13:32:52] ==== drm_connector_dynamic_register_early (4 subtests) =====
[13:32:52] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[13:32:52] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[13:32:52] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[13:32:52] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[13:32:52] ====== [PASSED] drm_connector_dynamic_register_early =======
[13:32:52] ======= drm_connector_dynamic_register (7 subtests) ========
[13:32:52] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[13:32:52] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[13:32:52] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[13:32:52] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[13:32:52] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[13:32:52] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[13:32:52] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[13:32:52] ========= [PASSED] drm_connector_dynamic_register ==========
[13:32:52] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[13:32:52] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[13:32:52] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[13:32:52] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[13:32:52] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[13:32:52] ========== drm_test_get_tv_mode_from_name_valid ===========
[13:32:52] [PASSED] NTSC
[13:32:52] [PASSED] NTSC-443
[13:32:52] [PASSED] NTSC-J
[13:32:52] [PASSED] PAL
[13:32:52] [PASSED] PAL-M
[13:32:52] [PASSED] PAL-N
[13:32:52] [PASSED] SECAM
[13:32:52] [PASSED] Mono
[13:32:52] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[13:32:52] [PASSED] drm_test_get_tv_mode_from_name_truncated
[13:32:52] ============ [PASSED] drm_get_tv_mode_from_name ============
[13:32:52] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[13:32:52] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[13:32:52] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[13:32:52] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[13:32:52] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[13:32:52] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[13:32:52] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[13:32:52] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid =
[13:32:52] [PASSED] VIC 96
[13:32:52] [PASSED] VIC 97
[13:32:52] [PASSED] VIC 101
[13:32:52] [PASSED] VIC 102
[13:32:52] [PASSED] VIC 106
[13:32:52] [PASSED] VIC 107
[13:32:52] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[13:32:52] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[13:32:52] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[13:32:52] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[13:32:52] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[13:32:52] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[13:32:52] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[13:32:52] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[13:32:52] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ====
[13:32:52] [PASSED] Automatic
[13:32:52] [PASSED] Full
[13:32:52] [PASSED] Limited 16:235
[13:32:52] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[13:32:52] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[13:32:52] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[13:32:52] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[13:32:52] === drm_test_drm_hdmi_connector_get_output_format_name ====
[13:32:52] [PASSED] RGB
[13:32:52] [PASSED] YUV 4:2:0
[13:32:52] [PASSED] YUV 4:2:2
[13:32:52] [PASSED] YUV 4:4:4
[13:32:52] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[13:32:52] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[13:32:52] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[13:32:52] ============= drm_damage_helper (21 subtests) ==============
[13:32:52] [PASSED] drm_test_damage_iter_no_damage
[13:32:52] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[13:32:52] [PASSED] drm_test_damage_iter_no_damage_src_moved
[13:32:52] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[13:32:52] [PASSED] drm_test_damage_iter_no_damage_not_visible
[13:32:52] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[13:32:52] [PASSED] drm_test_damage_iter_no_damage_no_fb
[13:32:52] [PASSED] drm_test_damage_iter_simple_damage
[13:32:52] [PASSED] drm_test_damage_iter_single_damage
[13:32:52] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[13:32:52] [PASSED] drm_test_damage_iter_single_damage_outside_src
[13:32:52] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[13:32:52] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[13:32:52] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[13:32:52] [PASSED] drm_test_damage_iter_single_damage_src_moved
[13:32:52] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[13:32:52] [PASSED] drm_test_damage_iter_damage
[13:32:52] [PASSED] drm_test_damage_iter_damage_one_intersect
[13:32:52] [PASSED] drm_test_damage_iter_damage_one_outside
[13:32:52] [PASSED] drm_test_damage_iter_damage_src_moved
[13:32:52] [PASSED] drm_test_damage_iter_damage_not_visible
[13:32:52] ================ [PASSED] drm_damage_helper ================
[13:32:52] ============== drm_dp_mst_helper (3 subtests) ==============
[13:32:52] ============== drm_test_dp_mst_calc_pbn_mode ==============
[13:32:52] [PASSED] Clock 154000 BPP 30 DSC disabled
[13:32:52] [PASSED] Clock 234000 BPP 30 DSC disabled
[13:32:52] [PASSED] Clock 297000 BPP 24 DSC disabled
[13:32:52] [PASSED] Clock 332880 BPP 24 DSC enabled
[13:32:52] [PASSED] Clock 324540 BPP 24 DSC enabled
[13:32:52] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[13:32:52] ============== drm_test_dp_mst_calc_pbn_div ===============
[13:32:52] [PASSED] Link rate 2000000 lane count 4
[13:32:52] [PASSED] Link rate 2000000 lane count 2
[13:32:52] [PASSED] Link rate 2000000 lane count 1
[13:32:52] [PASSED] Link rate 1350000 lane count 4
[13:32:52] [PASSED] Link rate 1350000 lane count 2
[13:32:52] [PASSED] Link rate 1350000 lane count 1
[13:32:52] [PASSED] Link rate 1000000 lane count 4
[13:32:52] [PASSED] Link rate 1000000 lane count 2
[13:32:52] [PASSED] Link rate 1000000 lane count 1
[13:32:52] [PASSED] Link rate 810000 lane count 4
[13:32:52] [PASSED] Link rate 810000 lane count 2
[13:32:52] [PASSED] Link rate 810000 lane count 1
[13:32:52] [PASSED] Link rate 540000 lane count 4
[13:32:52] [PASSED] Link rate 540000 lane count 2
[13:32:52] [PASSED] Link rate 540000 lane count 1
[13:32:52] [PASSED] Link rate 270000 lane count 4
[13:32:52] [PASSED] Link rate 270000 lane count 2
[13:32:52] [PASSED] Link rate 270000 lane count 1
[13:32:52] [PASSED] Link rate 162000 lane count 4
[13:32:52] [PASSED] Link rate 162000 lane count 2
[13:32:52] [PASSED] Link rate 162000 lane count 1
[13:32:52] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[13:32:52] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[13:32:52] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[13:32:52] [PASSED] DP_POWER_UP_PHY with port number
[13:32:52] [PASSED] DP_POWER_DOWN_PHY with port number
[13:32:52] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[13:32:52] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[13:32:52] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[13:32:52] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[13:32:52] [PASSED] DP_QUERY_PAYLOAD with port number
[13:32:52] [PASSED] DP_QUERY_PAYLOAD with VCPI
[13:32:52] [PASSED] DP_REMOTE_DPCD_READ with port number
[13:32:52] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[13:32:52] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[13:32:52] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[13:32:52] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[13:32:52] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[13:32:52] [PASSED] DP_REMOTE_I2C_READ with port number
[13:32:52] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[13:32:52] [PASSED] DP_REMOTE_I2C_READ with transactions array
[13:32:52] [PASSED] DP_REMOTE_I2C_WRITE with port number
[13:32:52] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[13:32:52] [PASSED] DP_REMOTE_I2C_WRITE with data array
[13:32:52] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[13:32:52] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[13:32:52] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[13:32:52] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[13:32:52] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[13:32:52] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[13:32:52] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[13:32:52] ================ [PASSED] drm_dp_mst_helper ================
[13:32:52] ================== drm_exec (7 subtests) ===================
[13:32:52] [PASSED] sanitycheck
[13:32:52] [PASSED] test_lock
[13:32:52] [PASSED] test_lock_unlock
[13:32:52] [PASSED] test_duplicates
[13:32:52] [PASSED] test_prepare
[13:32:52] [PASSED] test_prepare_array
[13:32:52] [PASSED] test_multiple_loops
[13:32:52] ==================== [PASSED] drm_exec =====================
[13:32:52] =========== drm_format_helper_test (17 subtests) ===========
[13:32:52] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[13:32:52] [PASSED] single_pixel_source_buffer
[13:32:52] [PASSED] single_pixel_clip_rectangle
[13:32:52] [PASSED] well_known_colors
[13:32:52] [PASSED] destination_pitch
[13:32:52] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[13:32:52] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[13:32:52] [PASSED] single_pixel_source_buffer
[13:32:52] [PASSED] single_pixel_clip_rectangle
[13:32:52] [PASSED] well_known_colors
[13:32:52] [PASSED] destination_pitch
[13:32:52] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[13:32:52] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[13:32:52] [PASSED] single_pixel_source_buffer
[13:32:52] [PASSED] single_pixel_clip_rectangle
[13:32:52] [PASSED] well_known_colors
[13:32:52] [PASSED] destination_pitch
[13:32:52] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[13:32:52] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[13:32:52] [PASSED] single_pixel_source_buffer
[13:32:52] [PASSED] single_pixel_clip_rectangle
[13:32:52] [PASSED] well_known_colors
[13:32:52] [PASSED] destination_pitch
[13:32:52] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[13:32:52] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[13:32:52] [PASSED] single_pixel_source_buffer
[13:32:52] [PASSED] single_pixel_clip_rectangle
[13:32:52] [PASSED] well_known_colors
[13:32:52] [PASSED] destination_pitch
[13:32:52] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[13:32:52] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[13:32:52] [PASSED] single_pixel_source_buffer
[13:32:52] [PASSED] single_pixel_clip_rectangle
[13:32:52] [PASSED] well_known_colors
[13:32:52] [PASSED] destination_pitch
[13:32:52] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[13:32:52] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[13:32:52] [PASSED] single_pixel_source_buffer
[13:32:52] [PASSED] single_pixel_clip_rectangle
[13:32:52] [PASSED] well_known_colors
[13:32:52] [PASSED] destination_pitch
[13:32:52] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[13:32:52] ============= drm_test_fb_xrgb8888_to_bgr888 ==============
[13:32:52] [PASSED] single_pixel_source_buffer
[13:32:52] [PASSED] single_pixel_clip_rectangle
[13:32:52] [PASSED] well_known_colors
[13:32:52] [PASSED] destination_pitch
[13:32:52] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[13:32:52] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[13:32:52] [PASSED] single_pixel_source_buffer
[13:32:52] [PASSED] single_pixel_clip_rectangle
[13:32:52] [PASSED] well_known_colors
[13:32:52] [PASSED] destination_pitch
[13:32:52] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[13:32:52] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[13:32:52] [PASSED] single_pixel_source_buffer
[13:32:52] [PASSED] single_pixel_clip_rectangle
[13:32:52] [PASSED] well_known_colors
[13:32:52] [PASSED] destination_pitch
[13:32:52] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[13:32:52] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[13:32:52] [PASSED] single_pixel_source_buffer
[13:32:52] [PASSED] single_pixel_clip_rectangle
[13:32:52] [PASSED] well_known_colors
[13:32:52] [PASSED] destination_pitch
[13:32:52] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[13:32:52] ============== drm_test_fb_xrgb8888_to_mono ===============
[13:32:52] [PASSED] single_pixel_source_buffer
[13:32:52] [PASSED] single_pixel_clip_rectangle
[13:32:52] [PASSED] well_known_colors
[13:32:52] [PASSED] destination_pitch
[13:32:52] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[13:32:52] ==================== drm_test_fb_swab =====================
[13:32:52] [PASSED] single_pixel_source_buffer
[13:32:52] [PASSED] single_pixel_clip_rectangle
[13:32:52] [PASSED] well_known_colors
[13:32:52] [PASSED] destination_pitch
[13:32:52] ================ [PASSED] drm_test_fb_swab =================
[13:32:52] ============ drm_test_fb_xrgb8888_to_xbgr8888 =============
[13:32:52] [PASSED] single_pixel_source_buffer
[13:32:52] [PASSED] single_pixel_clip_rectangle
[13:32:52] [PASSED] well_known_colors
[13:32:52] [PASSED] destination_pitch
[13:32:52] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[13:32:52] ============ drm_test_fb_xrgb8888_to_abgr8888 =============
[13:32:52] [PASSED] single_pixel_source_buffer
[13:32:52] [PASSED] single_pixel_clip_rectangle
[13:32:52] [PASSED] well_known_colors
[13:32:52] [PASSED] destination_pitch
[13:32:52] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[13:32:52] ================= drm_test_fb_clip_offset =================
[13:32:52] [PASSED] pass through
[13:32:52] [PASSED] horizontal offset
[13:32:52] [PASSED] vertical offset
[13:32:52] [PASSED] horizontal and vertical offset
[13:32:52] [PASSED] horizontal offset (custom pitch)
[13:32:52] [PASSED] vertical offset (custom pitch)
[13:32:52] [PASSED] horizontal and vertical offset (custom pitch)
[13:32:52] ============= [PASSED] drm_test_fb_clip_offset =============
[13:32:52] =================== drm_test_fb_memcpy ====================
[13:32:52] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[13:32:52] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[13:32:52] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[13:32:52] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[13:32:52] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[13:32:52] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[13:32:52] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[13:32:52] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[13:32:52] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[13:32:52] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[13:32:52] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[13:32:52] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[13:32:52] =============== [PASSED] drm_test_fb_memcpy ================
[13:32:52] ============= [PASSED] drm_format_helper_test ==============
[13:32:52] ================= drm_format (18 subtests) =================
[13:32:52] [PASSED] drm_test_format_block_width_invalid
[13:32:52] [PASSED] drm_test_format_block_width_one_plane
[13:32:52] [PASSED] drm_test_format_block_width_two_plane
[13:32:52] [PASSED] drm_test_format_block_width_three_plane
[13:32:52] [PASSED] drm_test_format_block_width_tiled
[13:32:52] [PASSED] drm_test_format_block_height_invalid
[13:32:52] [PASSED] drm_test_format_block_height_one_plane
[13:32:52] [PASSED] drm_test_format_block_height_two_plane
[13:32:52] [PASSED] drm_test_format_block_height_three_plane
[13:32:52] [PASSED] drm_test_format_block_height_tiled
[13:32:52] [PASSED] drm_test_format_min_pitch_invalid
[13:32:52] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[13:32:52] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[13:32:52] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[13:32:52] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[13:32:52] [PASSED] drm_test_format_min_pitch_two_plane
[13:32:52] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[13:32:52] [PASSED] drm_test_format_min_pitch_tiled
[13:32:52] =================== [PASSED] drm_format ====================
[13:32:52] ============== drm_framebuffer (10 subtests) ===============
[13:32:52] ========== drm_test_framebuffer_check_src_coords ==========
[13:32:52] [PASSED] Success: source fits into fb
[13:32:52] [PASSED] Fail: overflowing fb with x-axis coordinate
[13:32:52] [PASSED] Fail: overflowing fb with y-axis coordinate
[13:32:52] [PASSED] Fail: overflowing fb with source width
[13:32:52] [PASSED] Fail: overflowing fb with source height
[13:32:52] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[13:32:52] [PASSED] drm_test_framebuffer_cleanup
[13:32:52] =============== drm_test_framebuffer_create ===============
[13:32:52] [PASSED] ABGR8888 normal sizes
[13:32:52] [PASSED] ABGR8888 max sizes
[13:32:52] [PASSED] ABGR8888 pitch greater than min required
[13:32:52] [PASSED] ABGR8888 pitch less than min required
[13:32:52] [PASSED] ABGR8888 Invalid width
[13:32:52] [PASSED] ABGR8888 Invalid buffer handle
[13:32:52] [PASSED] No pixel format
[13:32:52] [PASSED] ABGR8888 Width 0
[13:32:52] [PASSED] ABGR8888 Height 0
[13:32:52] [PASSED] ABGR8888 Out of bound height * pitch combination
[13:32:52] [PASSED] ABGR8888 Large buffer offset
[13:32:52] [PASSED] ABGR8888 Buffer offset for inexistent plane
[13:32:52] [PASSED] ABGR8888 Invalid flag
[13:32:52] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[13:32:52] [PASSED] ABGR8888 Valid buffer modifier
[13:32:52] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[13:32:52] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[13:32:52] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[13:32:52] [PASSED] NV12 Normal sizes
[13:32:52] [PASSED] NV12 Max sizes
[13:32:52] [PASSED] NV12 Invalid pitch
[13:32:52] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[13:32:52] [PASSED] NV12 different modifier per-plane
[13:32:52] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[13:32:52] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[13:32:52] [PASSED] NV12 Modifier for inexistent plane
[13:32:52] [PASSED] NV12 Handle for inexistent plane
[13:32:52] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[13:32:52] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[13:32:52] [PASSED] YVU420 Normal sizes
[13:32:52] [PASSED] YVU420 Max sizes
[13:32:52] [PASSED] YVU420 Invalid pitch
[13:32:52] [PASSED] YVU420 Different pitches
[13:32:52] [PASSED] YVU420 Different buffer offsets/pitches
[13:32:52] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[13:32:52] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[13:32:52] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[13:32:52] [PASSED] YVU420 Valid modifier
[13:32:52] [PASSED] YVU420 Different modifiers per plane
[13:32:52] [PASSED] YVU420 Modifier for inexistent plane
[13:32:52] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[13:32:52] [PASSED] X0L2 Normal sizes
[13:32:52] [PASSED] X0L2 Max sizes
[13:32:52] [PASSED] X0L2 Invalid pitch
[13:32:52] [PASSED] X0L2 Pitch greater than minimum required
[13:32:52] [PASSED] X0L2 Handle for inexistent plane
[13:32:52] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[13:32:52] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[13:32:52] [PASSED] X0L2 Valid modifier
[13:32:52] [PASSED] X0L2 Modifier for inexistent plane
[13:32:52] =========== [PASSED] drm_test_framebuffer_create ===========
[13:32:52] [PASSED] drm_test_framebuffer_free
[13:32:52] [PASSED] drm_test_framebuffer_init
[13:32:52] [PASSED] drm_test_framebuffer_init_bad_format
[13:32:52] [PASSED] drm_test_framebuffer_init_dev_mismatch
[13:32:52] [PASSED] drm_test_framebuffer_lookup
[13:32:52] [PASSED] drm_test_framebuffer_lookup_inexistent
[13:32:52] [PASSED] drm_test_framebuffer_modifiers_not_supported
[13:32:52] ================= [PASSED] drm_framebuffer =================
[13:32:52] ================ drm_gem_shmem (8 subtests) ================
[13:32:52] [PASSED] drm_gem_shmem_test_obj_create
[13:32:52] [PASSED] drm_gem_shmem_test_obj_create_private
[13:32:52] [PASSED] drm_gem_shmem_test_pin_pages
[13:32:52] [PASSED] drm_gem_shmem_test_vmap
[13:32:52] [PASSED] drm_gem_shmem_test_get_sg_table
[13:32:52] [PASSED] drm_gem_shmem_test_get_pages_sgt
[13:32:52] [PASSED] drm_gem_shmem_test_madvise
[13:32:52] [PASSED] drm_gem_shmem_test_purge
[13:32:52] ================== [PASSED] drm_gem_shmem ==================
[13:32:52] === drm_atomic_helper_connector_hdmi_check (27 subtests) ===
[13:32:52] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[13:32:52] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[13:32:52] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[13:32:52] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[13:32:52] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[13:32:52] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[13:32:52] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 =======
[13:32:52] [PASSED] Automatic
[13:32:52] [PASSED] Full
[13:32:52] [PASSED] Limited 16:235
[13:32:52] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[13:32:52] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[13:32:52] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[13:32:52] [PASSED] drm_test_check_disable_connector
[13:32:52] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[13:32:52] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[13:32:52] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[13:32:52] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[13:32:52] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[13:32:52] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[13:32:52] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[13:32:52] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[13:32:52] [PASSED] drm_test_check_output_bpc_dvi
[13:32:52] [PASSED] drm_test_check_output_bpc_format_vic_1
[13:32:52] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[13:32:52] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[13:32:52] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[13:32:52] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[13:32:52] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[13:32:52] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[13:32:52] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[13:32:52] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[13:32:52] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[13:32:52] [PASSED] drm_test_check_broadcast_rgb_value
[13:32:52] [PASSED] drm_test_check_bpc_8_value
[13:32:52] [PASSED] drm_test_check_bpc_10_value
[13:32:52] [PASSED] drm_test_check_bpc_12_value
[13:32:52] [PASSED] drm_test_check_format_value
[13:32:52] [PASSED] drm_test_check_tmds_char_value
[13:32:52] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[13:32:52] = drm_atomic_helper_connector_hdmi_mode_valid (4 subtests) =
[13:32:52] [PASSED] drm_test_check_mode_valid
[13:32:52] [PASSED] drm_test_check_mode_valid_reject
[13:32:52] [PASSED] drm_test_check_mode_valid_reject_rate
[13:32:52] [PASSED] drm_test_check_mode_valid_reject_max_clock
[13:32:52] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[13:32:52] = drm_atomic_helper_connector_hdmi_infoframes (5 subtests) =
[13:32:52] [PASSED] drm_test_check_infoframes
[13:32:52] [PASSED] drm_test_check_reject_avi_infoframe
[13:32:52] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_8
[13:32:52] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_10
[13:32:52] [PASSED] drm_test_check_reject_audio_infoframe
[13:32:52] === [PASSED] drm_atomic_helper_connector_hdmi_infoframes ===
[13:32:52] ================= drm_managed (2 subtests) =================
[13:32:52] [PASSED] drm_test_managed_release_action
[13:32:52] [PASSED] drm_test_managed_run_action
[13:32:52] =================== [PASSED] drm_managed ===================
[13:32:52] =================== drm_mm (6 subtests) ====================
[13:32:52] [PASSED] drm_test_mm_init
[13:32:52] [PASSED] drm_test_mm_debug
[13:32:52] [PASSED] drm_test_mm_align32
[13:32:52] [PASSED] drm_test_mm_align64
[13:32:52] [PASSED] drm_test_mm_lowest
[13:32:52] [PASSED] drm_test_mm_highest
[13:32:52] ===================== [PASSED] drm_mm ======================
[13:32:52] ============= drm_modes_analog_tv (5 subtests) =============
[13:32:52] [PASSED] drm_test_modes_analog_tv_mono_576i
[13:32:52] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[13:32:52] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[13:32:52] [PASSED] drm_test_modes_analog_tv_pal_576i
[13:32:52] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[13:32:52] =============== [PASSED] drm_modes_analog_tv ===============
[13:32:52] ============== drm_plane_helper (2 subtests) ===============
[13:32:52] =============== drm_test_check_plane_state ================
[13:32:52] [PASSED] clipping_simple
[13:32:52] [PASSED] clipping_rotate_reflect
[13:32:52] [PASSED] positioning_simple
[13:32:52] [PASSED] upscaling
[13:32:52] [PASSED] downscaling
[13:32:52] [PASSED] rounding1
[13:32:52] [PASSED] rounding2
[13:32:52] [PASSED] rounding3
[13:32:52] [PASSED] rounding4
[13:32:52] =========== [PASSED] drm_test_check_plane_state ============
[13:32:52] =========== drm_test_check_invalid_plane_state ============
[13:32:52] [PASSED] positioning_invalid
[13:32:52] [PASSED] upscaling_invalid
[13:32:52] [PASSED] downscaling_invalid
[13:32:52] ======= [PASSED] drm_test_check_invalid_plane_state ========
[13:32:52] ================ [PASSED] drm_plane_helper =================
[13:32:52] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[13:32:52] ====== drm_test_connector_helper_tv_get_modes_check =======
[13:32:52] [PASSED] None
[13:32:52] [PASSED] PAL
[13:32:52] [PASSED] NTSC
[13:32:52] [PASSED] Both, NTSC Default
[13:32:52] [PASSED] Both, PAL Default
[13:32:52] [PASSED] Both, NTSC Default, with PAL on command-line
[13:32:52] [PASSED] Both, PAL Default, with NTSC on command-line
[13:32:52] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[13:32:52] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[13:32:52] ================== drm_rect (9 subtests) ===================
[13:32:52] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[13:32:52] [PASSED] drm_test_rect_clip_scaled_not_clipped
[13:32:52] [PASSED] drm_test_rect_clip_scaled_clipped
[13:32:52] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[13:32:52] ================= drm_test_rect_intersect =================
[13:32:52] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[13:32:52] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[13:32:52] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[13:32:52] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[13:32:52] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[13:32:52] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[13:32:52] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[13:32:52] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[13:32:52] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[13:32:52] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[13:32:52] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[13:32:52] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[13:32:52] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[13:32:52] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[13:32:52] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[13:32:52] ============= [PASSED] drm_test_rect_intersect =============
[13:32:52] ================ drm_test_rect_calc_hscale ================
[13:32:52] [PASSED] normal use
[13:32:52] [PASSED] out of max range
[13:32:52] [PASSED] out of min range
[13:32:52] [PASSED] zero dst
[13:32:52] [PASSED] negative src
[13:32:52] [PASSED] negative dst
[13:32:52] ============ [PASSED] drm_test_rect_calc_hscale ============
[13:32:52] ================ drm_test_rect_calc_vscale ================
[13:32:52] [PASSED] normal use
[13:32:52] [PASSED] out of max range
[13:32:52] [PASSED] out of min range
[13:32:52] [PASSED] zero dst
[13:32:52] [PASSED] negative src
[13:32:52] [PASSED] negative dst
stty: 'standard input': Inappropriate ioctl for device
[13:32:52] ============ [PASSED] drm_test_rect_calc_vscale ============
[13:32:52] ================== drm_test_rect_rotate ===================
[13:32:52] [PASSED] reflect-x
[13:32:52] [PASSED] reflect-y
[13:32:52] [PASSED] rotate-0
[13:32:52] [PASSED] rotate-90
[13:32:52] [PASSED] rotate-180
[13:32:52] [PASSED] rotate-270
[13:32:52] ============== [PASSED] drm_test_rect_rotate ===============
[13:32:52] ================ drm_test_rect_rotate_inv =================
[13:32:52] [PASSED] reflect-x
[13:32:52] [PASSED] reflect-y
[13:32:52] [PASSED] rotate-0
[13:32:52] [PASSED] rotate-90
[13:32:52] [PASSED] rotate-180
[13:32:52] [PASSED] rotate-270
[13:32:52] ============ [PASSED] drm_test_rect_rotate_inv =============
[13:32:52] ==================== [PASSED] drm_rect =====================
[13:32:52] ============ drm_sysfb_modeset_test (1 subtest) ============
[13:32:52] ============ drm_test_sysfb_build_fourcc_list =============
[13:32:52] [PASSED] no native formats
[13:32:52] [PASSED] XRGB8888 as native format
[13:32:52] [PASSED] remove duplicates
[13:32:52] [PASSED] convert alpha formats
[13:32:52] [PASSED] random formats
[13:32:52] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[13:32:52] ============= [PASSED] drm_sysfb_modeset_test ==============
[13:32:52] ================== drm_fixp (2 subtests) ===================
[13:32:52] [PASSED] drm_test_int2fixp
[13:32:52] [PASSED] drm_test_sm2fixp
[13:32:52] ==================== [PASSED] drm_fixp =====================
[13:32:52] ============================================================
[13:32:52] Testing complete. Ran 621 tests: passed: 621
[13:32:52] Elapsed time: 25.746s total, 1.625s configuring, 23.952s building, 0.133s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[13:32:52] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[13:32:53] 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
[13:33:03] Starting KUnit Kernel (1/1)...
[13:33:03] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[13:33:03] ================= ttm_device (5 subtests) ==================
[13:33:03] [PASSED] ttm_device_init_basic
[13:33:03] [PASSED] ttm_device_init_multiple
[13:33:03] [PASSED] ttm_device_fini_basic
[13:33:03] [PASSED] ttm_device_init_no_vma_man
[13:33:03] ================== ttm_device_init_pools ==================
[13:33:03] [PASSED] No DMA allocations, no DMA32 required
[13:33:03] [PASSED] DMA allocations, DMA32 required
[13:33:03] [PASSED] No DMA allocations, DMA32 required
[13:33:03] [PASSED] DMA allocations, no DMA32 required
[13:33:03] ============== [PASSED] ttm_device_init_pools ==============
[13:33:03] =================== [PASSED] ttm_device ====================
[13:33:03] ================== ttm_pool (8 subtests) ===================
[13:33:03] ================== ttm_pool_alloc_basic ===================
[13:33:03] [PASSED] One page
[13:33:03] [PASSED] More than one page
[13:33:03] [PASSED] Above the allocation limit
[13:33:03] [PASSED] One page, with coherent DMA mappings enabled
[13:33:03] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[13:33:03] ============== [PASSED] ttm_pool_alloc_basic ===============
[13:33:03] ============== ttm_pool_alloc_basic_dma_addr ==============
[13:33:03] [PASSED] One page
[13:33:03] [PASSED] More than one page
[13:33:03] [PASSED] Above the allocation limit
[13:33:03] [PASSED] One page, with coherent DMA mappings enabled
[13:33:03] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[13:33:03] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[13:33:03] [PASSED] ttm_pool_alloc_order_caching_match
[13:33:03] [PASSED] ttm_pool_alloc_caching_mismatch
[13:33:03] [PASSED] ttm_pool_alloc_order_mismatch
[13:33:03] [PASSED] ttm_pool_free_dma_alloc
[13:33:03] [PASSED] ttm_pool_free_no_dma_alloc
[13:33:03] [PASSED] ttm_pool_fini_basic
[13:33:03] ==================== [PASSED] ttm_pool =====================
[13:33:03] ================ ttm_resource (8 subtests) =================
[13:33:03] ================= ttm_resource_init_basic =================
[13:33:03] [PASSED] Init resource in TTM_PL_SYSTEM
[13:33:03] [PASSED] Init resource in TTM_PL_VRAM
[13:33:03] [PASSED] Init resource in a private placement
[13:33:03] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[13:33:03] ============= [PASSED] ttm_resource_init_basic =============
[13:33:03] [PASSED] ttm_resource_init_pinned
[13:33:03] [PASSED] ttm_resource_fini_basic
[13:33:03] [PASSED] ttm_resource_manager_init_basic
[13:33:03] [PASSED] ttm_resource_manager_usage_basic
[13:33:03] [PASSED] ttm_resource_manager_set_used_basic
[13:33:03] [PASSED] ttm_sys_man_alloc_basic
[13:33:03] [PASSED] ttm_sys_man_free_basic
[13:33:03] ================== [PASSED] ttm_resource ===================
[13:33:03] =================== ttm_tt (15 subtests) ===================
[13:33:03] ==================== ttm_tt_init_basic ====================
[13:33:03] [PASSED] Page-aligned size
[13:33:03] [PASSED] Extra pages requested
[13:33:03] ================ [PASSED] ttm_tt_init_basic ================
[13:33:03] [PASSED] ttm_tt_init_misaligned
[13:33:03] [PASSED] ttm_tt_fini_basic
[13:33:03] [PASSED] ttm_tt_fini_sg
[13:33:03] [PASSED] ttm_tt_fini_shmem
[13:33:03] [PASSED] ttm_tt_create_basic
[13:33:03] [PASSED] ttm_tt_create_invalid_bo_type
[13:33:03] [PASSED] ttm_tt_create_ttm_exists
[13:33:03] [PASSED] ttm_tt_create_failed
[13:33:03] [PASSED] ttm_tt_destroy_basic
[13:33:03] [PASSED] ttm_tt_populate_null_ttm
[13:33:03] [PASSED] ttm_tt_populate_populated_ttm
[13:33:03] [PASSED] ttm_tt_unpopulate_basic
[13:33:03] [PASSED] ttm_tt_unpopulate_empty_ttm
[13:33:03] [PASSED] ttm_tt_swapin_basic
[13:33:03] ===================== [PASSED] ttm_tt ======================
[13:33:03] =================== ttm_bo (14 subtests) ===================
[13:33:03] =========== ttm_bo_reserve_optimistic_no_ticket ===========
[13:33:03] [PASSED] Cannot be interrupted and sleeps
[13:33:03] [PASSED] Cannot be interrupted, locks straight away
[13:33:03] [PASSED] Can be interrupted, sleeps
[13:33:03] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[13:33:03] [PASSED] ttm_bo_reserve_locked_no_sleep
[13:33:03] [PASSED] ttm_bo_reserve_no_wait_ticket
[13:33:03] [PASSED] ttm_bo_reserve_double_resv
[13:33:03] [PASSED] ttm_bo_reserve_interrupted
[13:33:03] [PASSED] ttm_bo_reserve_deadlock
[13:33:03] [PASSED] ttm_bo_unreserve_basic
[13:33:03] [PASSED] ttm_bo_unreserve_pinned
[13:33:03] [PASSED] ttm_bo_unreserve_bulk
[13:33:03] [PASSED] ttm_bo_fini_basic
[13:33:03] [PASSED] ttm_bo_fini_shared_resv
[13:33:03] [PASSED] ttm_bo_pin_basic
[13:33:03] [PASSED] ttm_bo_pin_unpin_resource
[13:33:03] [PASSED] ttm_bo_multiple_pin_one_unpin
[13:33:03] ===================== [PASSED] ttm_bo ======================
[13:33:03] ============== ttm_bo_validate (21 subtests) ===============
[13:33:03] ============== ttm_bo_init_reserved_sys_man ===============
[13:33:03] [PASSED] Buffer object for userspace
[13:33:03] [PASSED] Kernel buffer object
[13:33:03] [PASSED] Shared buffer object
[13:33:03] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[13:33:03] ============== ttm_bo_init_reserved_mock_man ==============
[13:33:03] [PASSED] Buffer object for userspace
[13:33:03] [PASSED] Kernel buffer object
[13:33:03] [PASSED] Shared buffer object
[13:33:03] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[13:33:03] [PASSED] ttm_bo_init_reserved_resv
[13:33:03] ================== ttm_bo_validate_basic ==================
[13:33:03] [PASSED] Buffer object for userspace
[13:33:03] [PASSED] Kernel buffer object
[13:33:03] [PASSED] Shared buffer object
[13:33:03] ============== [PASSED] ttm_bo_validate_basic ==============
[13:33:03] [PASSED] ttm_bo_validate_invalid_placement
[13:33:03] ============= ttm_bo_validate_same_placement ==============
[13:33:03] [PASSED] System manager
[13:33:03] [PASSED] VRAM manager
[13:33:03] ========= [PASSED] ttm_bo_validate_same_placement ==========
[13:33:03] [PASSED] ttm_bo_validate_failed_alloc
[13:33:03] [PASSED] ttm_bo_validate_pinned
[13:33:03] [PASSED] ttm_bo_validate_busy_placement
[13:33:03] ================ ttm_bo_validate_multihop =================
[13:33:03] [PASSED] Buffer object for userspace
[13:33:03] [PASSED] Kernel buffer object
[13:33:03] [PASSED] Shared buffer object
[13:33:03] ============ [PASSED] ttm_bo_validate_multihop =============
[13:33:03] ========== ttm_bo_validate_no_placement_signaled ==========
[13:33:03] [PASSED] Buffer object in system domain, no page vector
[13:33:03] [PASSED] Buffer object in system domain with an existing page vector
[13:33:03] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[13:33:03] ======== ttm_bo_validate_no_placement_not_signaled ========
[13:33:03] [PASSED] Buffer object for userspace
[13:33:03] [PASSED] Kernel buffer object
[13:33:03] [PASSED] Shared buffer object
[13:33:03] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[13:33:03] [PASSED] ttm_bo_validate_move_fence_signaled
[13:33:03] ========= ttm_bo_validate_move_fence_not_signaled =========
[13:33:03] [PASSED] Waits for GPU
[13:33:03] [PASSED] Tries to lock straight away
[13:33:03] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[13:33:03] [PASSED] ttm_bo_validate_happy_evict
[13:33:03] [PASSED] ttm_bo_validate_all_pinned_evict
[13:33:03] [PASSED] ttm_bo_validate_allowed_only_evict
[13:33:03] [PASSED] ttm_bo_validate_deleted_evict
[13:33:03] [PASSED] ttm_bo_validate_busy_domain_evict
[13:33:03] [PASSED] ttm_bo_validate_evict_gutting
[13:33:03] [PASSED] ttm_bo_validate_recrusive_evict
stty: 'standard input': Inappropriate ioctl for device
[13:33:03] ================= [PASSED] ttm_bo_validate =================
[13:33:03] ============================================================
[13:33:03] Testing complete. Ran 101 tests: passed: 101
[13:33:03] Elapsed time: 11.390s total, 1.710s configuring, 9.464s building, 0.176s 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 support for vswing/preemphasis override
2026-03-08 13:24 [RFC v1 00/11] support for vswing/preemphasis override Michał Grzelak
` (12 preceding siblings ...)
2026-03-08 13:33 ` ✓ CI.KUnit: success " Patchwork
@ 2026-03-08 14:08 ` Patchwork
2026-03-08 15:06 ` ✓ Xe.CI.FULL: " Patchwork
14 siblings, 0 replies; 19+ messages in thread
From: Patchwork @ 2026-03-08 14:08 UTC (permalink / raw)
To: Michał Grzelak; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 6262 bytes --]
== Series Details ==
Series: support for vswing/preemphasis override
URL : https://patchwork.freedesktop.org/series/162813/
State : success
== Summary ==
CI Bug Log - changes from xe-4677-f705e865254996e9a099a22a9320e523e6debdcf_BAT -> xe-pw-162813v1_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (12 -> 14)
------------------------------
Additional (2): bat-atsm-2 bat-bmg-3
Known issues
------------
Here are the changes found in xe-pw-162813v1_BAT that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@fbdev@write:
- bat-atsm-2: NOTRUN -> [SKIP][1] ([Intel XE#2134]) +4 other tests skip
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/bat-atsm-2/igt@fbdev@write.html
* igt@kms_addfb_basic@addfb25-yf-tiled-legacy:
- bat-atsm-2: NOTRUN -> [SKIP][2] ([i915#6077]) +30 other tests skip
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/bat-atsm-2/igt@kms_addfb_basic@addfb25-yf-tiled-legacy.html
* igt@kms_cursor_legacy@basic-flip-after-cursor-legacy:
- bat-atsm-2: NOTRUN -> [SKIP][3] ([Intel XE#1024] / [Intel XE#782] / [Intel XE#947]) +5 other tests skip
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/bat-atsm-2/igt@kms_cursor_legacy@basic-flip-after-cursor-legacy.html
* igt@kms_dsc@dsc-basic:
- bat-atsm-2: NOTRUN -> [SKIP][4] ([Intel XE#1024] / [Intel XE#784] / [Intel XE#947])
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/bat-atsm-2/igt@kms_dsc@dsc-basic.html
* igt@kms_frontbuffer_tracking@basic:
- bat-atsm-2: NOTRUN -> [SKIP][5] ([Intel XE#1024] / [Intel XE#783] / [Intel XE#947])
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/bat-atsm-2/igt@kms_frontbuffer_tracking@basic.html
* igt@kms_hdmi_inject@inject-audio:
- bat-atsm-2: NOTRUN -> [SKIP][6] ([Intel XE#540]) +3 other tests skip
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/bat-atsm-2/igt@kms_hdmi_inject@inject-audio.html
* igt@kms_pipe_crc_basic@nonblocking-crc:
- bat-atsm-2: NOTRUN -> [SKIP][7] ([Intel XE#829] / [i915#1836]) +6 other tests skip
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/bat-atsm-2/igt@kms_pipe_crc_basic@nonblocking-crc.html
* igt@kms_prop_blob@basic:
- bat-atsm-2: NOTRUN -> [SKIP][8] ([Intel XE#780])
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/bat-atsm-2/igt@kms_prop_blob@basic.html
* igt@kms_psr@psr-primary-page-flip:
- bat-atsm-2: NOTRUN -> [SKIP][9] ([Intel XE#1024] / [Intel XE#947]) +6 other tests skip
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/bat-atsm-2/igt@kms_psr@psr-primary-page-flip.html
* igt@xe_exec_fault_mode@twice-userptr-prefetch:
- bat-atsm-2: NOTRUN -> [SKIP][10] ([Intel XE#288]) +32 other tests skip
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/bat-atsm-2/igt@xe_exec_fault_mode@twice-userptr-prefetch.html
* igt@xe_huc_copy@huc_copy:
- bat-atsm-2: NOTRUN -> [SKIP][11] ([Intel XE#255])
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/bat-atsm-2/igt@xe_huc_copy@huc_copy.html
* igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit:
- bat-atsm-2: NOTRUN -> [SKIP][12] ([Intel XE#2229])
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/bat-atsm-2/igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit.html
* igt@xe_pat@pat-index-xe2:
- bat-atsm-2: NOTRUN -> [SKIP][13] ([Intel XE#977])
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/bat-atsm-2/igt@xe_pat@pat-index-xe2.html
* igt@xe_pat@pat-index-xehpc:
- bat-atsm-2: NOTRUN -> [SKIP][14] ([Intel XE#2838] / [Intel XE#979])
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/bat-atsm-2/igt@xe_pat@pat-index-xehpc.html
* igt@xe_pat@pat-index-xelpg:
- bat-atsm-2: NOTRUN -> [SKIP][15] ([Intel XE#979])
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/bat-atsm-2/igt@xe_pat@pat-index-xelpg.html
* igt@xe_peer2peer@read@read-gpua-vram01-gpub-system-p2p:
- bat-bmg-3: NOTRUN -> [SKIP][16] ([Intel XE#6566]) +3 other tests skip
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/bat-bmg-3/igt@xe_peer2peer@read@read-gpua-vram01-gpub-system-p2p.html
[Intel XE#1024]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1024
[Intel XE#2134]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2134
[Intel XE#2229]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2229
[Intel XE#255]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/255
[Intel XE#2838]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2838
[Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
[Intel XE#540]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/540
[Intel XE#6566]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6566
[Intel XE#780]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/780
[Intel XE#782]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/782
[Intel XE#783]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/783
[Intel XE#784]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/784
[Intel XE#829]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/829
[Intel XE#947]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/947
[Intel XE#977]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/977
[Intel XE#979]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/979
[i915#1836]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1836
[i915#6077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6077
Build changes
-------------
* Linux: xe-4677-f705e865254996e9a099a22a9320e523e6debdcf -> xe-pw-162813v1
IGT_8784: c7d12b3499ef1698373f246748e68c05ada0579e @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-4677-f705e865254996e9a099a22a9320e523e6debdcf: f705e865254996e9a099a22a9320e523e6debdcf
xe-pw-162813v1: 162813v1
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/index.html
[-- Attachment #2: Type: text/html, Size: 7665 bytes --]
^ permalink raw reply [flat|nested] 19+ messages in thread
* ✓ Xe.CI.FULL: success for support for vswing/preemphasis override
2026-03-08 13:24 [RFC v1 00/11] support for vswing/preemphasis override Michał Grzelak
` (13 preceding siblings ...)
2026-03-08 14:08 ` ✓ Xe.CI.BAT: " Patchwork
@ 2026-03-08 15:06 ` Patchwork
14 siblings, 0 replies; 19+ messages in thread
From: Patchwork @ 2026-03-08 15:06 UTC (permalink / raw)
To: Michał Grzelak; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 21347 bytes --]
== Series Details ==
Series: support for vswing/preemphasis override
URL : https://patchwork.freedesktop.org/series/162813/
State : success
== Summary ==
CI Bug Log - changes from xe-4677-f705e865254996e9a099a22a9320e523e6debdcf_FULL -> xe-pw-162813v1_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-162813v1_FULL that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_big_fb@4-tiled-8bpp-rotate-270:
- shard-bmg: NOTRUN -> [SKIP][1] ([Intel XE#2327])
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-7/igt@kms_big_fb@4-tiled-8bpp-rotate-270.html
* igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-async-flip:
- shard-bmg: NOTRUN -> [SKIP][2] ([Intel XE#1124]) +1 other test skip
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-4/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html
* igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-rc-ccs:
- shard-bmg: NOTRUN -> [SKIP][3] ([Intel XE#2887]) +2 other tests skip
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-10/igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-rc-ccs.html
* igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs:
- shard-bmg: NOTRUN -> [SKIP][4] ([Intel XE#3432])
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-7/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs.html
* igt@kms_chamelium_hpd@dp-hpd-storm:
- shard-bmg: NOTRUN -> [SKIP][5] ([Intel XE#2252]) +3 other tests skip
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-7/igt@kms_chamelium_hpd@dp-hpd-storm.html
* igt@kms_cursor_crc@cursor-onscreen-128x42:
- shard-bmg: NOTRUN -> [SKIP][6] ([Intel XE#2320]) +1 other test skip
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-4/igt@kms_cursor_crc@cursor-onscreen-128x42.html
* igt@kms_feature_discovery@psr1:
- shard-bmg: NOTRUN -> [SKIP][7] ([Intel XE#2374] / [Intel XE#6127])
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-10/igt@kms_feature_discovery@psr1.html
* igt@kms_feature_discovery@psr2:
- shard-bmg: NOTRUN -> [SKIP][8] ([Intel XE#2374] / [Intel XE#6128])
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-7/igt@kms_feature_discovery@psr2.html
* igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling:
- shard-bmg: NOTRUN -> [SKIP][9] ([Intel XE#7178] / [Intel XE#7349])
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-7/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling:
- shard-bmg: NOTRUN -> [SKIP][10] ([Intel XE#7178] / [Intel XE#7351]) +1 other test skip
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-7/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling.html
* igt@kms_frontbuffer_tracking@drrs-2p-primscrn-pri-indfb-draw-mmap-wc:
- shard-bmg: NOTRUN -> [SKIP][11] ([Intel XE#2311]) +8 other tests skip
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-10/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-pri-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-blt:
- shard-bmg: NOTRUN -> [SKIP][12] ([Intel XE#4141]) +1 other test skip
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-10/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcdrrs-abgr161616f-draw-render:
- shard-bmg: NOTRUN -> [SKIP][13] ([Intel XE#7061] / [Intel XE#7356]) +2 other tests skip
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-7/igt@kms_frontbuffer_tracking@fbcdrrs-abgr161616f-draw-render.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-mmap-wc:
- shard-bmg: NOTRUN -> [SKIP][14] ([Intel XE#2313]) +8 other tests skip
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-4/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-mmap-wc.html
* igt@kms_plane@pixel-format-y-tiled-gen12-mc-ccs-modifier-source-clamping:
- shard-bmg: NOTRUN -> [SKIP][15] ([Intel XE#7283])
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-7/igt@kms_plane@pixel-format-y-tiled-gen12-mc-ccs-modifier-source-clamping.html
* igt@kms_plane_multiple@tiling-y:
- shard-bmg: NOTRUN -> [SKIP][16] ([Intel XE#5020] / [Intel XE#7348])
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-7/igt@kms_plane_multiple@tiling-y.html
* igt@kms_plane_scaling@planes-downscale-factor-0-75@pipe-a:
- shard-bmg: NOTRUN -> [SKIP][17] ([Intel XE#2763] / [Intel XE#6886]) +4 other tests skip
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-7/igt@kms_plane_scaling@planes-downscale-factor-0-75@pipe-a.html
* igt@kms_pm_backlight@bad-brightness:
- shard-bmg: NOTRUN -> [SKIP][18] ([Intel XE#7376] / [Intel XE#870]) +1 other test skip
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-10/igt@kms_pm_backlight@bad-brightness.html
* igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-exceed-sf:
- shard-bmg: NOTRUN -> [SKIP][19] ([Intel XE#1489]) +1 other test skip
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-4/igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-exceed-sf.html
* igt@kms_psr2_su@frontbuffer-xrgb8888:
- shard-bmg: NOTRUN -> [SKIP][20] ([Intel XE#2387] / [Intel XE#7429])
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-4/igt@kms_psr2_su@frontbuffer-xrgb8888.html
* igt@kms_psr@pr-suspend:
- shard-bmg: NOTRUN -> [SKIP][21] ([Intel XE#2234] / [Intel XE#2850]) +3 other tests skip
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-7/igt@kms_psr@pr-suspend.html
* igt@kms_rotation_crc@primary-y-tiled-reflect-x-180:
- shard-bmg: NOTRUN -> [SKIP][22] ([Intel XE#2330] / [Intel XE#5813])
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-7/igt@kms_rotation_crc@primary-y-tiled-reflect-x-180.html
* igt@kms_scaling_modes@scaling-mode-full-aspect:
- shard-bmg: NOTRUN -> [SKIP][23] ([Intel XE#2413])
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-7/igt@kms_scaling_modes@scaling-mode-full-aspect.html
* igt@kms_sharpness_filter@invalid-filter-with-scaler:
- shard-bmg: NOTRUN -> [SKIP][24] ([Intel XE#6503])
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-7/igt@kms_sharpness_filter@invalid-filter-with-scaler.html
* igt@kms_vrr@flip-suspend:
- shard-bmg: NOTRUN -> [SKIP][25] ([Intel XE#1499]) +2 other tests skip
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-4/igt@kms_vrr@flip-suspend.html
* igt@xe_eudebug@vm-bind-clear:
- shard-bmg: NOTRUN -> [SKIP][26] ([Intel XE#4837]) +4 other tests skip
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-7/igt@xe_eudebug@vm-bind-clear.html
* igt@xe_eudebug_online@stopped-thread:
- shard-bmg: NOTRUN -> [SKIP][27] ([Intel XE#4837] / [Intel XE#6665]) +1 other test skip
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-7/igt@xe_eudebug_online@stopped-thread.html
* igt@xe_evict@evict-mixed-many-threads-small:
- shard-bmg: [PASS][28] -> [INCOMPLETE][29] ([Intel XE#6321])
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4677-f705e865254996e9a099a22a9320e523e6debdcf/shard-bmg-6/igt@xe_evict@evict-mixed-many-threads-small.html
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-7/igt@xe_evict@evict-mixed-many-threads-small.html
* igt@xe_exec_basic@multigpu-many-execqueues-many-vm-userptr-invalidate-race:
- shard-bmg: NOTRUN -> [SKIP][30] ([Intel XE#2322] / [Intel XE#7372])
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-7/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-userptr-invalidate-race.html
* igt@xe_exec_fault_mode@many-multi-queue-imm:
- shard-bmg: NOTRUN -> [SKIP][31] ([Intel XE#7136]) +2 other tests skip
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-7/igt@xe_exec_fault_mode@many-multi-queue-imm.html
* igt@xe_exec_multi_queue@two-queues-dyn-priority:
- shard-bmg: NOTRUN -> [SKIP][32] ([Intel XE#6874]) +13 other tests skip
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-4/igt@xe_exec_multi_queue@two-queues-dyn-priority.html
* igt@xe_exec_system_allocator@many-stride-new-prefetch:
- shard-bmg: NOTRUN -> [INCOMPLETE][33] ([Intel XE#7098])
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-10/igt@xe_exec_system_allocator@many-stride-new-prefetch.html
* igt@xe_exec_threads@threads-multi-queue-fd-userptr-invalidate-race:
- shard-bmg: NOTRUN -> [SKIP][34] ([Intel XE#7138]) +3 other tests skip
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-10/igt@xe_exec_threads@threads-multi-queue-fd-userptr-invalidate-race.html
* igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv:
- shard-bmg: NOTRUN -> [ABORT][35] ([Intel XE#5466] / [Intel XE#6652])
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-7/igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv.html
* igt@xe_multigpu_svm@mgpu-concurrent-access-prefetch:
- shard-bmg: NOTRUN -> [SKIP][36] ([Intel XE#6964]) +1 other test skip
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-7/igt@xe_multigpu_svm@mgpu-concurrent-access-prefetch.html
* igt@xe_peer2peer@write:
- shard-bmg: NOTRUN -> [SKIP][37] ([Intel XE#2427] / [Intel XE#6953] / [Intel XE#7326] / [Intel XE#7353])
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-4/igt@xe_peer2peer@write.html
* igt@xe_pm@d3cold-i2c:
- shard-bmg: NOTRUN -> [SKIP][38] ([Intel XE#5694] / [Intel XE#7370])
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-7/igt@xe_pm@d3cold-i2c.html
* igt@xe_pm@s3-d3cold-basic-exec:
- shard-bmg: NOTRUN -> [SKIP][39] ([Intel XE#2284] / [Intel XE#7370])
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-10/igt@xe_pm@s3-d3cold-basic-exec.html
* igt@xe_pxp@pxp-stale-queue-post-suspend:
- shard-bmg: NOTRUN -> [SKIP][40] ([Intel XE#4733] / [Intel XE#7417]) +2 other tests skip
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-7/igt@xe_pxp@pxp-stale-queue-post-suspend.html
#### Possible fixes ####
* igt@kms_atomic_transition@plane-all-transition-nonblocking-fencing:
- shard-bmg: [INCOMPLETE][41] ([Intel XE#1727] / [Intel XE#2705] / [Intel XE#6819] / [Intel XE#6904]) -> [PASS][42]
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4677-f705e865254996e9a099a22a9320e523e6debdcf/shard-bmg-3/igt@kms_atomic_transition@plane-all-transition-nonblocking-fencing.html
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-4/igt@kms_atomic_transition@plane-all-transition-nonblocking-fencing.html
* igt@kms_atomic_transition@plane-all-transition-nonblocking-fencing@pipe-a-dp-2:
- shard-bmg: [DMESG-FAIL][43] ([Intel XE#1727] / [Intel XE#2705] / [Intel XE#6819]) -> [PASS][44]
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4677-f705e865254996e9a099a22a9320e523e6debdcf/shard-bmg-3/igt@kms_atomic_transition@plane-all-transition-nonblocking-fencing@pipe-a-dp-2.html
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-4/igt@kms_atomic_transition@plane-all-transition-nonblocking-fencing@pipe-a-dp-2.html
* igt@kms_color@ctm-0-75@pipe-b-hdmi-a-3:
- shard-bmg: [INCOMPLETE][45] ([Intel XE#6652]) -> [PASS][46] +1 other test pass
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4677-f705e865254996e9a099a22a9320e523e6debdcf/shard-bmg-2/igt@kms_color@ctm-0-75@pipe-b-hdmi-a-3.html
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-7/igt@kms_color@ctm-0-75@pipe-b-hdmi-a-3.html
* igt@kms_flip@flip-vs-expired-vblank@c-edp1:
- shard-lnl: [FAIL][47] ([Intel XE#301] / [Intel XE#3149]) -> [PASS][48] +1 other test pass
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4677-f705e865254996e9a099a22a9320e523e6debdcf/shard-lnl-4/igt@kms_flip@flip-vs-expired-vblank@c-edp1.html
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-lnl-6/igt@kms_flip@flip-vs-expired-vblank@c-edp1.html
* igt@kms_flip@flip-vs-suspend-interruptible:
- shard-bmg: [INCOMPLETE][49] ([Intel XE#2049] / [Intel XE#2597]) -> [PASS][50] +1 other test pass
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4677-f705e865254996e9a099a22a9320e523e6debdcf/shard-bmg-1/igt@kms_flip@flip-vs-suspend-interruptible.html
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-4/igt@kms_flip@flip-vs-suspend-interruptible.html
* igt@kms_plane@pixel-format-linear-modifier@pipe-a-plane-0:
- shard-lnl: [FAIL][51] -> [PASS][52] +1 other test pass
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4677-f705e865254996e9a099a22a9320e523e6debdcf/shard-lnl-3/igt@kms_plane@pixel-format-linear-modifier@pipe-a-plane-0.html
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-lnl-8/igt@kms_plane@pixel-format-linear-modifier@pipe-a-plane-0.html
* igt@xe_sriov_auto_provisioning@resources-released-on-vfs-disabling@numvfs-random:
- shard-bmg: [FAIL][53] ([Intel XE#5937]) -> [PASS][54] +1 other test pass
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4677-f705e865254996e9a099a22a9320e523e6debdcf/shard-bmg-6/igt@xe_sriov_auto_provisioning@resources-released-on-vfs-disabling@numvfs-random.html
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-3/igt@xe_sriov_auto_provisioning@resources-released-on-vfs-disabling@numvfs-random.html
#### Warnings ####
* igt@kms_hdr@brightness-with-hdr:
- shard-bmg: [SKIP][55] ([Intel XE#3374] / [Intel XE#3544]) -> [SKIP][56] ([Intel XE#3544])
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4677-f705e865254996e9a099a22a9320e523e6debdcf/shard-bmg-1/igt@kms_hdr@brightness-with-hdr.html
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-4/igt@kms_hdr@brightness-with-hdr.html
* igt@kms_tiled_display@basic-test-pattern:
- shard-bmg: [SKIP][57] ([Intel XE#2426] / [Intel XE#5848]) -> [FAIL][58] ([Intel XE#1729] / [Intel XE#7424])
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4677-f705e865254996e9a099a22a9320e523e6debdcf/shard-bmg-3/igt@kms_tiled_display@basic-test-pattern.html
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/shard-bmg-4/igt@kms_tiled_display@basic-test-pattern.html
[Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
[Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
[Intel XE#1499]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1499
[Intel XE#1727]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1727
[Intel XE#1729]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1729
[Intel XE#2049]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2049
[Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
[Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
[Intel XE#2284]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2284
[Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
[Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
[Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
[Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
[Intel XE#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327
[Intel XE#2330]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2330
[Intel XE#2374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2374
[Intel XE#2387]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2387
[Intel XE#2413]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2413
[Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
[Intel XE#2427]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2427
[Intel XE#2597]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2597
[Intel XE#2705]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2705
[Intel XE#2763]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2763
[Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
[Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
[Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
[Intel XE#3149]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3149
[Intel XE#3374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3374
[Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
[Intel XE#3544]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3544
[Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
[Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
[Intel XE#4837]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4837
[Intel XE#5020]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5020
[Intel XE#5466]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5466
[Intel XE#5694]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5694
[Intel XE#5813]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5813
[Intel XE#5848]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5848
[Intel XE#5937]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5937
[Intel XE#6127]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6127
[Intel XE#6128]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6128
[Intel XE#6321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6321
[Intel XE#6503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6503
[Intel XE#6652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6652
[Intel XE#6665]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6665
[Intel XE#6819]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6819
[Intel XE#6874]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6874
[Intel XE#6886]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6886
[Intel XE#6904]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6904
[Intel XE#6953]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6953
[Intel XE#6964]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6964
[Intel XE#7061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7061
[Intel XE#7098]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7098
[Intel XE#7136]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7136
[Intel XE#7138]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7138
[Intel XE#7178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7178
[Intel XE#7283]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7283
[Intel XE#7326]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7326
[Intel XE#7348]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7348
[Intel XE#7349]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7349
[Intel XE#7351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7351
[Intel XE#7353]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7353
[Intel XE#7356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7356
[Intel XE#7370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7370
[Intel XE#7372]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7372
[Intel XE#7376]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7376
[Intel XE#7417]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7417
[Intel XE#7424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7424
[Intel XE#7429]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7429
[Intel XE#870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/870
Build changes
-------------
* Linux: xe-4677-f705e865254996e9a099a22a9320e523e6debdcf -> xe-pw-162813v1
IGT_8784: c7d12b3499ef1698373f246748e68c05ada0579e @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-4677-f705e865254996e9a099a22a9320e523e6debdcf: f705e865254996e9a099a22a9320e523e6debdcf
xe-pw-162813v1: 162813v1
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162813v1/index.html
[-- Attachment #2: Type: text/html, Size: 23441 bytes --]
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [RFC v1 05/11] drm/i915/buf_trans: add intel_dp_above_hbr1() helper
2026-03-08 13:24 ` [RFC v1 05/11] drm/i915/buf_trans: add intel_dp_above_hbr1() helper Michał Grzelak
@ 2026-03-11 9:17 ` Jani Nikula
0 siblings, 0 replies; 19+ messages in thread
From: Jani Nikula @ 2026-03-11 9:17 UTC (permalink / raw)
To: Michał Grzelak, intel-gfx, intel-xe; +Cc: Michał Grzelak
On Sun, 08 Mar 2026, Michał Grzelak <michal.grzelak@intel.com> wrote:
> Check if port_clock is above HBR1 inside separate function.
I've got a mixture of reactions to this.
- For better or for worse, I think most people want to have these checks
inline instead of hidden in a function.
- This whole "above hbr1" is also oddly specific. If we wanted to
abstract this somehow, it should be generic. We have
intel_dp_is_uhbr() because it changes everything about the link. None
of the other rates are that special.
- If we wanted to hide the magic numbers, we'd need to define some RBR,
HBR, etc. macros for the link rates... but then the problem is you'd
have to remember what they mean. The numbers are easy.
- Realizing this kind of change is contentious, and unrelated to the
feature at hand, you're probably better off dropping it (or suggesting
it in another thread, another time) and focusing on the feature.
BR,
Jani.
>
> Signed-off-by: Michał Grzelak <michal.grzelak@intel.com>
> ---
> .../drm/i915/display/intel_ddi_buf_trans.c | 27 ++++++++++++-------
> 1 file changed, 17 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c b/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
> index 395dba8c9e4d..ee6a78a20dac 100644
> --- a/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
> +++ b/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
> @@ -1184,6 +1184,13 @@ bool is_hobl_buf_trans(const struct intel_ddi_buf_trans *table)
> return table == &tgl_combo_phy_trans_edp_hbr2_hobl;
> }
>
> +static bool intel_dp_above_hbr1(const struct intel_crtc_state *crtc_state)
> +{
> + if (crtc_state->port_clock > 270000)
> + return true;
> + return false;
> +}
> +
> static bool use_edp_hobl(struct intel_encoder *encoder)
> {
> struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
> @@ -1396,7 +1403,7 @@ icl_get_mg_buf_trans_dp(struct intel_encoder *encoder,
> const struct intel_crtc_state *crtc_state,
> int *n_entries)
> {
> - if (crtc_state->port_clock > 270000) {
> + if (intel_dp_above_hbr1(crtc_state)) {
> return intel_get_buf_trans(&icl_mg_phy_trans_hbr2_hbr3,
> n_entries);
> } else {
> @@ -1421,7 +1428,7 @@ ehl_get_combo_buf_trans_edp(struct intel_encoder *encoder,
> const struct intel_crtc_state *crtc_state,
> int *n_entries)
> {
> - if (crtc_state->port_clock > 270000)
> + if (intel_dp_above_hbr1(crtc_state))
> return intel_get_buf_trans(&ehl_combo_phy_trans_edp_hbr2, n_entries);
> else
> return intel_get_buf_trans(&icl_combo_phy_trans_edp_hbr2, n_entries);
> @@ -1446,7 +1453,7 @@ jsl_get_combo_buf_trans_edp(struct intel_encoder *encoder,
> const struct intel_crtc_state *crtc_state,
> int *n_entries)
> {
> - if (crtc_state->port_clock > 270000)
> + if (intel_dp_above_hbr1(crtc_state))
> return intel_get_buf_trans(&jsl_combo_phy_trans_edp_hbr2, n_entries);
> else
> return intel_get_buf_trans(&jsl_combo_phy_trans_edp_hbr, n_entries);
> @@ -1473,7 +1480,7 @@ tgl_get_combo_buf_trans_dp(struct intel_encoder *encoder,
> {
> struct intel_display *display = to_intel_display(encoder);
>
> - if (crtc_state->port_clock > 270000) {
> + if (intel_dp_above_hbr1(crtc_state)) {
> if (display->platform.tigerlake_uy) {
> return intel_get_buf_trans(&tgl_uy_combo_phy_trans_dp_hbr2,
> n_entries);
> @@ -1524,7 +1531,7 @@ dg1_get_combo_buf_trans_dp(struct intel_encoder *encoder,
> const struct intel_crtc_state *crtc_state,
> int *n_entries)
> {
> - if (crtc_state->port_clock > 270000)
> + if (intel_dp_above_hbr1(crtc_state))
> return intel_get_buf_trans(&dg1_combo_phy_trans_dp_hbr2_hbr3,
> n_entries);
> else
> @@ -1568,7 +1575,7 @@ rkl_get_combo_buf_trans_dp(struct intel_encoder *encoder,
> const struct intel_crtc_state *crtc_state,
> int *n_entries)
> {
> - if (crtc_state->port_clock > 270000)
> + if (intel_dp_above_hbr1(crtc_state))
> return intel_get_buf_trans(&rkl_combo_phy_trans_dp_hbr2_hbr3, n_entries);
> else
> return intel_get_buf_trans(&rkl_combo_phy_trans_dp_hbr, n_entries);
> @@ -1611,7 +1618,7 @@ adls_get_combo_buf_trans_dp(struct intel_encoder *encoder,
> const struct intel_crtc_state *crtc_state,
> int *n_entries)
> {
> - if (crtc_state->port_clock > 270000)
> + if (intel_dp_above_hbr1(crtc_state))
> return intel_get_buf_trans(&adls_combo_phy_trans_dp_hbr2_hbr3, n_entries);
> else
> return intel_get_buf_trans(&tgl_combo_phy_trans_dp_hbr, n_entries);
> @@ -1650,7 +1657,7 @@ adlp_get_combo_buf_trans_dp(struct intel_encoder *encoder,
> const struct intel_crtc_state *crtc_state,
> int *n_entries)
> {
> - if (crtc_state->port_clock > 270000)
> + if (intel_dp_above_hbr1(crtc_state))
> return intel_get_buf_trans(&adlp_combo_phy_trans_dp_hbr2_hbr3, n_entries);
> else
> return intel_get_buf_trans(&adlp_combo_phy_trans_dp_hbr, n_entries);
> @@ -1693,7 +1700,7 @@ tgl_get_dkl_buf_trans_dp(struct intel_encoder *encoder,
> const struct intel_crtc_state *crtc_state,
> int *n_entries)
> {
> - if (crtc_state->port_clock > 270000) {
> + if (intel_dp_above_hbr1(crtc_state)) {
> return intel_get_buf_trans(&tgl_dkl_phy_trans_dp_hbr2,
> n_entries);
> } else {
> @@ -1718,7 +1725,7 @@ adlp_get_dkl_buf_trans_dp(struct intel_encoder *encoder,
> const struct intel_crtc_state *crtc_state,
> int *n_entries)
> {
> - if (crtc_state->port_clock > 270000) {
> + if (intel_dp_above_hbr1(crtc_state)) {
> return intel_get_buf_trans(&adlp_dkl_phy_trans_dp_hbr2_hbr3,
> n_entries);
> } else {
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [RFC v1 06/11] drm/i915/buf_trans: add intel_edp_above_hbr2() helper
2026-03-08 13:24 ` [RFC v1 06/11] drm/i915/buf_trans: add intel_edp_above_hbr2() helper Michał Grzelak
@ 2026-03-11 9:19 ` Jani Nikula
0 siblings, 0 replies; 19+ messages in thread
From: Jani Nikula @ 2026-03-11 9:19 UTC (permalink / raw)
To: Michał Grzelak, intel-gfx, intel-xe; +Cc: Michał Grzelak
On Sun, 08 Mar 2026, Michał Grzelak <michal.grzelak@intel.com> wrote:
> Check if port_clock is above HBR2 inside separate function.
Same as the previous patch.
>
> Signed-off-by: Michał Grzelak <michal.grzelak@intel.com>
> ---
> .../drm/i915/display/intel_ddi_buf_trans.c | 19 +++++++++++++------
> 1 file changed, 13 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c b/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
> index ee6a78a20dac..8b369535189c 100644
> --- a/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
> +++ b/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
> @@ -1191,6 +1191,13 @@ static bool intel_dp_above_hbr1(const struct intel_crtc_state *crtc_state)
> return false;
> }
>
> +static bool intel_edp_above_hbr2(const struct intel_crtc_state *crtc_state)
This doesn't have anything to do with "edp" specifically.
> +{
> + if (crtc_state->port_clock > 540000)
> + return true;
> + return false;
Side note, this is just "return crtc_state->port_clock > 540000"
directly, if-else for returning true/false is unnecessary.
BR,
Jani.
> +}
> +
> static bool use_edp_hobl(struct intel_encoder *encoder)
> {
> struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
> @@ -1374,7 +1381,7 @@ icl_get_combo_buf_trans_edp(struct intel_encoder *encoder,
> const struct intel_crtc_state *crtc_state,
> int *n_entries)
> {
> - if (crtc_state->port_clock > 540000) {
> + if (intel_edp_above_hbr2(crtc_state)) {
> return intel_get_buf_trans(&icl_combo_phy_trans_dp_hbr2_edp_hbr3,
> n_entries);
> } else if (use_edp_low_vswing(encoder)) {
> @@ -1499,7 +1506,7 @@ tgl_get_combo_buf_trans_edp(struct intel_encoder *encoder,
> const struct intel_crtc_state *crtc_state,
> int *n_entries)
> {
> - if (crtc_state->port_clock > 540000) {
> + if (intel_edp_above_hbr2(crtc_state)) {
> return intel_get_buf_trans(&icl_combo_phy_trans_dp_hbr2_edp_hbr3,
> n_entries);
> } else if (use_edp_hobl(encoder)) {
> @@ -1544,7 +1551,7 @@ dg1_get_combo_buf_trans_edp(struct intel_encoder *encoder,
> const struct intel_crtc_state *crtc_state,
> int *n_entries)
> {
> - if (crtc_state->port_clock > 540000)
> + if (intel_edp_above_hbr2(crtc_state))
> return intel_get_buf_trans(&icl_combo_phy_trans_dp_hbr2_edp_hbr3,
> n_entries);
> else if (use_edp_hobl(encoder))
> @@ -1586,7 +1593,7 @@ rkl_get_combo_buf_trans_edp(struct intel_encoder *encoder,
> const struct intel_crtc_state *crtc_state,
> int *n_entries)
> {
> - if (crtc_state->port_clock > 540000) {
> + if (intel_edp_above_hbr2(crtc_state)) {
> return intel_get_buf_trans(&icl_combo_phy_trans_dp_hbr2_edp_hbr3,
> n_entries);
> } else if (use_edp_hobl(encoder)) {
> @@ -1629,7 +1636,7 @@ adls_get_combo_buf_trans_edp(struct intel_encoder *encoder,
> const struct intel_crtc_state *crtc_state,
> int *n_entries)
> {
> - if (crtc_state->port_clock > 540000)
> + if (intel_edp_above_hbr2(crtc_state))
> return intel_get_buf_trans(&adls_combo_phy_trans_edp_hbr3, n_entries);
> else if (use_edp_hobl(encoder))
> return intel_get_buf_trans(&tgl_combo_phy_trans_edp_hbr2_hobl, n_entries);
> @@ -1668,7 +1675,7 @@ adlp_get_combo_buf_trans_edp(struct intel_encoder *encoder,
> const struct intel_crtc_state *crtc_state,
> int *n_entries)
> {
> - if (crtc_state->port_clock > 540000) {
> + if (intel_edp_above_hbr2(crtc_state)) {
> return intel_get_buf_trans(&adlp_combo_phy_trans_edp_hbr3,
> n_entries);
> } else if (use_edp_hobl(encoder)) {
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [RFC v1 11/11] drm/i915/mtl: add V/P Override support for mtl+
2026-03-08 13:24 ` [RFC v1 11/11] drm/i915/mtl: add V/P Override support for mtl+ Michał Grzelak
@ 2026-03-11 9:51 ` Jani Nikula
0 siblings, 0 replies; 19+ messages in thread
From: Jani Nikula @ 2026-03-11 9:51 UTC (permalink / raw)
To: Michał Grzelak, intel-gfx, intel-xe; +Cc: Michał Grzelak
On Sun, 08 Mar 2026, Michał Grzelak <michal.grzelak@intel.com> wrote:
> Add macros to reflect the layout of vswing/preemphasis override tables
> for mtl. Add separate macros for C10 & C20.
>
> Add separate intel_ddi_buf_trans_entry to be overridden for mtl onward.
> Set & return it when port requests to override default table. Use same
> setter for both C10 & C20 cases.
>
> Set the value by extracting the lowest byte from entry from the table.
>
> There are no changes to intel_ddi_dp_level() since selection of correct
> row of intel_ddi_buf_trans_entry is same as when no override request has
> been done.
>
> Signed-off-by: Michał Grzelak <michal.grzelak@intel.com>
> ---
> .../drm/i915/display/intel_ddi_buf_trans.c | 99 ++++++++++++++++++-
> 1 file changed, 96 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c b/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
> index 1b30c9888f95..7798320a4968 100644
> --- a/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
> +++ b/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
> @@ -12,6 +12,17 @@
> #include "intel_dp.h"
> #include "intel_lt_phy.h"
>
> +#define MTL_C10_VS_PE_DP14_RBR_HBR 0
> +#define MTL_C10_VS_PE_DP14_HBR2_HBR3 1
> +#define MTL_C10_VS_PE_EDP_NON_HBR3 2
> +#define MTL_C10_VS_PE_EDP_HBR3 3
> +
> +#define MTL_C20_VS_PE_DP14 4
> +#define MTL_C20_VS_PE_DP20 5
> +
> +#define MTL_CX0_VS_PE_COL 3
> +#define MTL_CX0_VS_PE_ROW 16
I don't know what any of these mean, and it's really hard to figure out
from the code.
> +
> #define XE3P_VS_PE_EDP 3
> #define XE3P_VS_PE_DP14 4
> #define XE3P_VS_PE_DP21 5
> @@ -1109,6 +1120,25 @@ static const union intel_ddi_buf_trans_entry _mtl_c20_trans_hdmi[] = {
> { .snps = { 32, 4, 12 } }, /* preset 4 */
> };
>
> +static union intel_ddi_buf_trans_entry _mtl_cx0_trans_override[] = {
> + { .snps = { 0, 0, 0 } },
> + { .snps = { 0, 0, 0 } },
> + { .snps = { 0, 0, 0 } },
> + { .snps = { 0, 0, 0 } },
> + { .snps = { 0, 0, 0 } },
> + { .snps = { 0, 0, 0 } },
> + { .snps = { 0, 0, 0 } },
> + { .snps = { 0, 0, 0 } },
> + { .snps = { 0, 0, 0 } },
> + { .snps = { 0, 0, 0 } },
> + { .snps = { 0, 0, 0 } },
> + { .snps = { 0, 0, 0 } },
> + { .snps = { 0, 0, 0 } },
> + { .snps = { 0, 0, 0 } },
> + { .snps = { 0, 0, 0 } },
> + { .snps = { 0, 0, 0 } },
> +};
> +
Using mutable static data for this is not possible. It's module
specific, which means having two devices in the same system will trample
each other's data.
> static const struct intel_ddi_buf_trans mtl_c20_trans_hdmi = {
> .entries = _mtl_c20_trans_hdmi,
> .num_entries = ARRAY_SIZE(_mtl_c20_trans_hdmi),
> @@ -1126,6 +1156,11 @@ static const struct intel_ddi_buf_trans mtl_c20_trans_uhbr = {
> .num_entries = ARRAY_SIZE(_mtl_c20_trans_uhbr),
> };
>
> +static struct intel_ddi_buf_trans mtl_cx0_trans_override = {
> + .entries = _mtl_cx0_trans_override,
> + .num_entries = ARRAY_SIZE(_mtl_cx0_trans_override),
> +};
> +
> /* DP1.4 */
> static const union intel_ddi_buf_trans_entry _xe3plpd_lt_trans_dp14[] = {
> { .lt = { 21, 0, 0 , 1, 0 } },
> @@ -1815,11 +1850,60 @@ dg2_get_snps_buf_trans(struct intel_encoder *encoder,
> return intel_get_buf_trans(&dg2_snps_trans, n_entries);
> }
>
> +static const struct intel_ddi_buf_trans *
> +mtl_set_cx0_buf_trans(struct intel_encoder *encoder,
> + int idx,
> + int *n_entries)
> +{
> + struct intel_display *display = to_intel_display(encoder);
> + struct intel_ddi_buf_trans *buf_trans = &mtl_cx0_trans_override;
> + union intel_ddi_buf_trans_entry *entries, *entry;
> + const u32 *tables = display->vbt.override_vswing;
> + const u32 *vals;
> +
> + entries = (union intel_ddi_buf_trans_entry *) buf_trans->entries;
> + for (int row = 0; row < MTL_CX0_VS_PE_ROW; row++) {
> + entry = &entries[row];
> + vals = find_row(tables,
> + idx,
> + row,
> + MTL_CX0_VS_PE_ROW,
> + MTL_CX0_VS_PE_COL);
> +
> + entry->snps.vswing = LOW(vals[0]);
> + entry->snps.pre_cursor = LOW(vals[1]);
> + entry->snps.post_cursor = LOW(vals[2]);
> + }
> +
> + return intel_get_buf_trans(&mtl_cx0_trans_override, n_entries);
> +}
But why do we have to "set" the data in the first place?
Is it not possible to arrange the buf trans data that we have in the
same format as VBT? And then instead of returning the data from our
predefined tables, we'd return the data from VBT. Without conversions.
If that's not feasible, then parsing of VBT data belongs to
intel_bios.c. That's the place where we convert VBT input into the
format our driver understands, and the rest of the driver doesn't need
to jump through hoops to parse it.
> +
> static const struct intel_ddi_buf_trans *
> mtl_get_c10_buf_trans(struct intel_encoder *encoder,
> const struct intel_crtc_state *crtc_state,
> int *n_entries)
> {
> + if (intel_bios_encoder_overrides_vswing(encoder->devdata)) {
> + if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_DP)) {
> + if (intel_dp_above_hbr1(crtc_state))
> + return mtl_set_cx0_buf_trans(encoder,
> + MTL_C10_VS_PE_DP14_HBR2_HBR3,
> + n_entries);
> + else
> + return mtl_set_cx0_buf_trans(encoder,
> + MTL_C10_VS_PE_DP14_RBR_HBR,
> + n_entries);
> + } else if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_EDP)){
> + if (intel_edp_above_hbr2(crtc_state))
> + return mtl_set_cx0_buf_trans(encoder,
> + MTL_C10_VS_PE_EDP_HBR3,
> + n_entries);
> + else
> + return mtl_set_cx0_buf_trans(encoder,
> + MTL_C10_VS_PE_EDP_NON_HBR3,
> + n_entries);
> + }
> + }
Can we not do this in a more generic fashion instead of sprinkling these
override things and if-ladders absolutely everywhere? I mean the whole
file is already a bunch of if-ladders, but do we really need to add
another set for VBT stuff?
> return intel_get_buf_trans(&mtl_c10_trans_dp14, n_entries);
> }
>
> @@ -1828,12 +1912,21 @@ mtl_get_c20_buf_trans(struct intel_encoder *encoder,
> const struct intel_crtc_state *crtc_state,
> int *n_entries)
> {
> - if (intel_crtc_has_dp_encoder(crtc_state) && intel_dp_is_uhbr(crtc_state))
> + if (intel_crtc_has_dp_encoder(crtc_state) && intel_dp_is_uhbr(crtc_state)) {
> + if (intel_bios_encoder_overrides_vswing(encoder->devdata))
> + return mtl_set_cx0_buf_trans(encoder,
> + MTL_C20_VS_PE_DP20,
> + n_entries);
> return intel_get_buf_trans(&mtl_c20_trans_uhbr, n_entries);
> - else if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_HDMI))
> + } else if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_HDMI)) {
> return intel_get_buf_trans(&mtl_c20_trans_hdmi, n_entries);
> - else
> + } else {
> + if (intel_bios_encoder_overrides_vswing(encoder->devdata))
> + return mtl_set_cx0_buf_trans(encoder,
> + MTL_C20_VS_PE_DP14,
> + n_entries);
> return intel_get_buf_trans(&mtl_c20_trans_dp14, n_entries);
> + }
> }
>
> static const struct intel_ddi_buf_trans *
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2026-03-11 9:52 UTC | newest]
Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-08 13:24 [RFC v1 00/11] support for vswing/preemphasis override Michał Grzelak
2026-03-08 13:24 ` [RFC v1 01/11] drm/i915/bios: search for Block 57 by default Michał Grzelak
2026-03-08 13:24 ` [RFC v1 02/11] drm/i915/bios: cache V/P Override block Michał Grzelak
2026-03-08 13:24 ` [RFC v1 03/11] drm/i915/bios: remove V/P Override warning Michał Grzelak
2026-03-08 13:24 ` [RFC v1 04/11] drm/i915/bios: print V/P Override port info Michał Grzelak
2026-03-08 13:24 ` [RFC v1 05/11] drm/i915/buf_trans: add intel_dp_above_hbr1() helper Michał Grzelak
2026-03-11 9:17 ` Jani Nikula
2026-03-08 13:24 ` [RFC v1 06/11] drm/i915/buf_trans: add intel_edp_above_hbr2() helper Michał Grzelak
2026-03-11 9:19 ` Jani Nikula
2026-03-08 13:24 ` [RFC v1 07/11] drm/i915/lt: align xe3plpd with V/P Override layout Michał Grzelak
2026-03-08 13:24 ` [RFC v1 08/11] drm/i915/buf_trans: switch from u8 to u32 Michał Grzelak
2026-03-08 13:24 ` [RFC v1 09/11] drm/i915/xe3p: add V/P Override support for xe3p Michał Grzelak
2026-03-08 13:24 ` [RFC v1 10/11] drm/i915/dg2: warn on V/P Override request on dg2 Michał Grzelak
2026-03-08 13:24 ` [RFC v1 11/11] drm/i915/mtl: add V/P Override support for mtl+ Michał Grzelak
2026-03-11 9:51 ` Jani Nikula
2026-03-08 13:31 ` ✗ CI.checkpatch: warning for support for vswing/preemphasis override Patchwork
2026-03-08 13:33 ` ✓ CI.KUnit: success " Patchwork
2026-03-08 14:08 ` ✓ Xe.CI.BAT: " Patchwork
2026-03-08 15:06 ` ✓ 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