* [PATCH v6 00/18] Enable DP2.1 alpm
@ 2026-09-15 18:04 Animesh Manna
2026-09-15 18:04 ` [PATCH v6 01/18] drm/i915/alpm: Add DPCD definition for DP2.1 ALPM capability Animesh Manna
` (21 more replies)
0 siblings, 22 replies; 32+ messages in thread
From: Animesh Manna @ 2026-09-15 18:04 UTC (permalink / raw)
To: intel-gfx, intel-xe, dri-devel
Cc: jouni.hogander, jani.nikula, suraj.kandpal, Animesh Manna
ALPM support added on DP2.1 and xe3p will support DP2.1 alpm.
This patch series extending alpm supoort for DP2.1.
Cc: Jouni Högander <jouni.hogander@intel.com>
Signed-off-by: Animesh Manna <animesh.manna@intel.com>
Animesh Manna (18):
drm/i915/alpm: Add DPCD definition for DP2.1 ALPM capability
drm/i915/alpm: Move alpm sink capability readout into a separate
function
drm/i915/alpm: alpm_init() for DP2.1
drm/i915/alpm: Enable debugfs for DP2.1
drm/i915/alpm: Refactor Auxless wake time calculation
drm/i915/alpm: Auxless wake time calculation for Xe3p
drm/i915/alpm: Modify AUX_LESS_WAKE_TIME bitfield for xe3lpd
drm/i915/alpm: table based establishment period
drm/i915/alpm: Half LFPS cycle calculation
drm/i915/alpm: Modify LFPS cycle count for DP ALPM
drm/i915/alpm: Modify LFPS_CYCLE_COUNT bitfield for xe3lpd
drm/i915/alpm: Program LTTPR count for DP 2.1 ALPM
drm/i915/alpm: Enable MAC Transmitting LFPS for LT PHY
drm/i915/alpm: Replace is_edp() with alpm_is_possible()
drm/i915/alpm: Introduce has_alpm to decouple from pr/psr2/lobf
drm/i915/alpm: Compute and program switch to active latency
drm/i915/alpm: Program zero-based LFPS half cycle duration
drm/i915/alpm: Disallow ALPM for UHBR link rate
drivers/gpu/drm/i915/display/intel_alpm.c | 359 +++++++++++++++---
drivers/gpu/drm/i915/display/intel_alpm.h | 7 +-
drivers/gpu/drm/i915/display/intel_cx0_phy.c | 6 +-
drivers/gpu/drm/i915/display/intel_ddi.c | 5 +-
.../drm/i915/display/intel_display_types.h | 2 +
drivers/gpu/drm/i915/display/intel_dp.c | 15 +-
.../drm/i915/display/intel_dp_link_training.c | 21 +
drivers/gpu/drm/i915/display/intel_lt_phy.c | 27 ++
drivers/gpu/drm/i915/display/intel_lt_phy.h | 2 +
.../gpu/drm/i915/display/intel_lt_phy_regs.h | 3 +
drivers/gpu/drm/i915/display/intel_psr.c | 48 ++-
drivers/gpu/drm/i915/display/intel_psr.h | 1 -
drivers/gpu/drm/i915/display/intel_psr_regs.h | 16 +-
include/drm/display/drm_dp.h | 4 +-
14 files changed, 433 insertions(+), 83 deletions(-)
--
2.29.0
^ permalink raw reply [flat|nested] 32+ messages in thread
* [PATCH v6 01/18] drm/i915/alpm: Add DPCD definition for DP2.1 ALPM capability
2026-09-15 18:04 [PATCH v6 00/18] Enable DP2.1 alpm Animesh Manna
@ 2026-09-15 18:04 ` Animesh Manna
2026-09-15 18:04 ` [PATCH v6 02/18] drm/i915/alpm: Move alpm sink capability readout into a separate function Animesh Manna
` (20 subsequent siblings)
21 siblings, 0 replies; 32+ messages in thread
From: Animesh Manna @ 2026-09-15 18:04 UTC (permalink / raw)
To: intel-gfx, intel-xe, dri-devel
Cc: jouni.hogander, jani.nikula, suraj.kandpal, Animesh Manna
Add required DPCD address which will be needed to enable DP2.1 ALPM.
Cc: Jouni Högander <jouni.hogander@intel.com>
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
Signed-off-by: Animesh Manna <animesh.manna@intel.com>
---
include/drm/display/drm_dp.h | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/include/drm/display/drm_dp.h b/include/drm/display/drm_dp.h
index e63c7f075f54..9f1e9ef5cdb6 100644
--- a/include/drm/display/drm_dp.h
+++ b/include/drm/display/drm_dp.h
@@ -1541,6 +1541,8 @@
/* See DP_128B132B_SUPPORTED_LINK_RATES for values */
#define DP_PHY_REPEATER_128B132B_RATES 0xf0007 /* 2.0 */
#define DP_PHY_REPEATER_EQ_DONE 0xf0008 /* 2.0 E11 */
+#define DP_LTTPR_ALPM_CAPABILITIES 0xf0009 /* 2.1 */
+#define DP_TOTAL_LTTPR_CNT 0xf000a /* 2.1 */
enum drm_dp_phy {
DP_PHY_DPRX,
@@ -1720,7 +1722,7 @@ enum drm_dp_phy {
#define DP_DSC_BRANCH_CAP_SIZE 3
#define EDP_PSR_RECEIVER_CAP_SIZE 2
#define EDP_DISPLAY_CTL_CAP_SIZE 5
-#define DP_LTTPR_COMMON_CAP_SIZE 8
+#define DP_LTTPR_COMMON_CAP_SIZE 10
#define DP_LTTPR_PHY_CAP_SIZE 3
#define DP_SDP_AUDIO_TIMESTAMP 0x01
--
2.29.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH v6 02/18] drm/i915/alpm: Move alpm sink capability readout into a separate function
2026-09-15 18:04 [PATCH v6 00/18] Enable DP2.1 alpm Animesh Manna
2026-09-15 18:04 ` [PATCH v6 01/18] drm/i915/alpm: Add DPCD definition for DP2.1 ALPM capability Animesh Manna
@ 2026-09-15 18:04 ` Animesh Manna
2026-09-15 18:04 ` [PATCH v6 03/18] drm/i915/alpm: alpm_init() for DP2.1 Animesh Manna
` (19 subsequent siblings)
21 siblings, 0 replies; 32+ messages in thread
From: Animesh Manna @ 2026-09-15 18:04 UTC (permalink / raw)
To: intel-gfx, intel-xe, dri-devel
Cc: jouni.hogander, jani.nikula, suraj.kandpal, Animesh Manna
Abstract ALPM DPCD initialization into its own function.
v2:
- Improve commit description. [Suraj, Jouni]
Cc: Jouni Högander <jouni.hogander@intel.com>
Signed-off-by: Animesh Manna <animesh.manna@intel.com>
---
drivers/gpu/drm/i915/display/intel_alpm.c | 11 +++++++++++
drivers/gpu/drm/i915/display/intel_alpm.h | 1 +
drivers/gpu/drm/i915/display/intel_dp.c | 6 +-----
3 files changed, 13 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_alpm.c b/drivers/gpu/drm/i915/display/intel_alpm.c
index 10943539bc7c..a6743fe62d48 100644
--- a/drivers/gpu/drm/i915/display/intel_alpm.c
+++ b/drivers/gpu/drm/i915/display/intel_alpm.c
@@ -43,6 +43,17 @@ bool intel_alpm_is_alpm_aux_less(struct intel_dp *intel_dp,
(crtc_state->has_lobf && intel_alpm_aux_less_wake_supported(intel_dp));
}
+bool intel_alpm_init_dpcd(struct intel_dp *intel_dp)
+{
+ u8 dpcd;
+
+ if (drm_dp_dpcd_read_byte(&intel_dp->aux, DP_RECEIVER_ALPM_CAP, &dpcd) < 0)
+ return false;
+
+ intel_dp->alpm_dpcd = dpcd;
+ return true;
+}
+
void intel_alpm_init(struct intel_dp *intel_dp)
{
mutex_init(&intel_dp->alpm.lock);
diff --git a/drivers/gpu/drm/i915/display/intel_alpm.h b/drivers/gpu/drm/i915/display/intel_alpm.h
index f8f605d94f96..56c3e1482e37 100644
--- a/drivers/gpu/drm/i915/display/intel_alpm.h
+++ b/drivers/gpu/drm/i915/display/intel_alpm.h
@@ -15,6 +15,7 @@ struct intel_connector;
struct intel_atomic_state;
struct intel_crtc;
+bool intel_alpm_init_dpcd(struct intel_dp *intel_dp);
void intel_alpm_init(struct intel_dp *intel_dp);
bool intel_alpm_compute_params(struct intel_dp *intel_dp,
struct intel_crtc_state *crtc_state);
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index 0cd5e6b5034c..650c8b39270b 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -4783,7 +4783,6 @@ static bool
intel_edp_init_dpcd(struct intel_dp *intel_dp, struct intel_connector *connector)
{
struct intel_display *display = to_intel_display(intel_dp);
- int ret;
u8 dprx;
/* this function is meant to be called only once */
@@ -4829,10 +4828,7 @@ intel_edp_init_dpcd(struct intel_dp *intel_dp, struct intel_connector *connector
*/
intel_dp_init_source_oui(intel_dp);
- /* Read the ALPM DPCD caps */
- ret = drm_dp_dpcd_read_byte(&intel_dp->aux, DP_RECEIVER_ALPM_CAP,
- &intel_dp->alpm_dpcd);
- if (ret < 0)
+ if (!intel_alpm_init_dpcd(intel_dp))
return false;
/*
--
2.29.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH v6 03/18] drm/i915/alpm: alpm_init() for DP2.1
2026-09-15 18:04 [PATCH v6 00/18] Enable DP2.1 alpm Animesh Manna
2026-09-15 18:04 ` [PATCH v6 01/18] drm/i915/alpm: Add DPCD definition for DP2.1 ALPM capability Animesh Manna
2026-09-15 18:04 ` [PATCH v6 02/18] drm/i915/alpm: Move alpm sink capability readout into a separate function Animesh Manna
@ 2026-09-15 18:04 ` Animesh Manna
2026-09-15 18:57 ` sashiko-bot
2026-09-15 18:04 ` [PATCH v6 04/18] drm/i915/alpm: Enable debugfs " Animesh Manna
` (18 subsequent siblings)
21 siblings, 1 reply; 32+ messages in thread
From: Animesh Manna @ 2026-09-15 18:04 UTC (permalink / raw)
To: intel-gfx, intel-xe, dri-devel
Cc: jouni.hogander, jani.nikula, suraj.kandpal, Animesh Manna
Initialize ALPM for DP2.1 and separate out ALPM mutex-init
from alpm-init.
v2: Separate out mutex-init. [Jani]
v3: Refactor further to avoid DISPLAY_VER check in multiple places. [Jani]
v4: Cosmetic changes. [Suraj]
v5: Reset alpm_dpcd and simplify source-supported check.
v6: Drop display-version check for eDP for backward compatible.
Cc: Jouni Högander <jouni.hogander@intel.com>
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
Signed-off-by: Animesh Manna <animesh.manna@intel.com>
---
drivers/gpu/drm/i915/display/intel_alpm.c | 9 +++++++++
drivers/gpu/drm/i915/display/intel_alpm.h | 1 +
drivers/gpu/drm/i915/display/intel_dp.c | 9 +++++++--
3 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_alpm.c b/drivers/gpu/drm/i915/display/intel_alpm.c
index a6743fe62d48..4801fc6bade2 100644
--- a/drivers/gpu/drm/i915/display/intel_alpm.c
+++ b/drivers/gpu/drm/i915/display/intel_alpm.c
@@ -43,6 +43,15 @@ bool intel_alpm_is_alpm_aux_less(struct intel_dp *intel_dp,
(crtc_state->has_lobf && intel_alpm_aux_less_wake_supported(intel_dp));
}
+bool intel_alpm_source_supported(struct intel_connector *connector)
+{
+ struct intel_display *display = to_intel_display(connector);
+
+ return (connector->base.connector_type == DRM_MODE_CONNECTOR_DisplayPort &&
+ DISPLAY_VER(display) >= 35) ||
+ connector->base.connector_type == DRM_MODE_CONNECTOR_eDP;
+}
+
bool intel_alpm_init_dpcd(struct intel_dp *intel_dp)
{
u8 dpcd;
diff --git a/drivers/gpu/drm/i915/display/intel_alpm.h b/drivers/gpu/drm/i915/display/intel_alpm.h
index 56c3e1482e37..9a02fa386ee3 100644
--- a/drivers/gpu/drm/i915/display/intel_alpm.h
+++ b/drivers/gpu/drm/i915/display/intel_alpm.h
@@ -15,6 +15,7 @@ struct intel_connector;
struct intel_atomic_state;
struct intel_crtc;
+bool intel_alpm_source_supported(struct intel_connector *connector);
bool intel_alpm_init_dpcd(struct intel_dp *intel_dp);
void intel_alpm_init(struct intel_dp *intel_dp);
bool intel_alpm_compute_params(struct intel_dp *intel_dp,
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index 650c8b39270b..b4742bd33cb4 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -6354,6 +6354,7 @@ intel_dp_detect(struct drm_connector *_connector,
connector->dp.panel_replay_caps.su_support = false;
connector->dp.panel_replay_caps.dsc_support =
INTEL_DP_PANEL_REPLAY_DSC_NOT_SUPPORTED;
+ intel_dp->alpm_dpcd = 0;
intel_dp_mst_disconnect(intel_dp);
@@ -6376,6 +6377,9 @@ intel_dp_detect(struct drm_connector *_connector,
if (ret == 1)
connector->base.epoch_counter++;
+ if (intel_alpm_source_supported(connector))
+ intel_alpm_init_dpcd(intel_dp);
+
if (!intel_dp_is_edp(intel_dp))
intel_psr_init_dpcd(intel_dp, connector);
@@ -7019,8 +7023,6 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp,
*/
intel_hpd_enable_detection(encoder);
- intel_alpm_init(intel_dp);
-
/* Cache DPCD and EDID for edp. */
has_dpcd = intel_edp_init_dpcd(intel_dp, connector);
@@ -7235,6 +7237,9 @@ intel_dp_init_connector(struct intel_digital_port *dig_port,
intel_psr_init(intel_dp);
+ if (intel_alpm_source_supported(connector))
+ intel_alpm_init(intel_dp);
+
return true;
fail:
--
2.29.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH v6 04/18] drm/i915/alpm: Enable debugfs for DP2.1
2026-09-15 18:04 [PATCH v6 00/18] Enable DP2.1 alpm Animesh Manna
` (2 preceding siblings ...)
2026-09-15 18:04 ` [PATCH v6 03/18] drm/i915/alpm: alpm_init() for DP2.1 Animesh Manna
@ 2026-09-15 18:04 ` Animesh Manna
2026-09-15 18:04 ` [PATCH v6 05/18] drm/i915/alpm: Refactor Auxless wake time calculation Animesh Manna
` (17 subsequent siblings)
21 siblings, 0 replies; 32+ messages in thread
From: Animesh Manna @ 2026-09-15 18:04 UTC (permalink / raw)
To: intel-gfx, intel-xe, dri-devel
Cc: jouni.hogander, jani.nikula, suraj.kandpal, Animesh Manna
Enable ALPM debug info through lobf debug info.
v2: cosmetic change. [Suraj]
v3: Use common api instead of DISPLAY_VER check in multiple places. [Jani]
v4: Add display-version check as it dropped for EDP.
Cc: Jouni Högander <jouni.hogander@intel.com>
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
Signed-off-by: Animesh Manna <animesh.manna@intel.com>
---
drivers/gpu/drm/i915/display/intel_alpm.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_alpm.c b/drivers/gpu/drm/i915/display/intel_alpm.c
index 4801fc6bade2..901493bb1448 100644
--- a/drivers/gpu/drm/i915/display/intel_alpm.c
+++ b/drivers/gpu/drm/i915/display/intel_alpm.c
@@ -739,8 +739,10 @@ void intel_alpm_lobf_debugfs_add(struct intel_connector *connector)
struct intel_display *display = to_intel_display(connector);
struct dentry *root = connector->base.debugfs_entry;
- if (DISPLAY_VER(display) < 20 ||
- connector->base.connector_type != DRM_MODE_CONNECTOR_eDP)
+ if (DISPLAY_VER(display) < 20)
+ return;
+
+ if (!intel_alpm_source_supported(connector))
return;
debugfs_create_file("i915_edp_lobf_debug", 0644, root,
--
2.29.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH v6 05/18] drm/i915/alpm: Refactor Auxless wake time calculation
2026-09-15 18:04 [PATCH v6 00/18] Enable DP2.1 alpm Animesh Manna
` (3 preceding siblings ...)
2026-09-15 18:04 ` [PATCH v6 04/18] drm/i915/alpm: Enable debugfs " Animesh Manna
@ 2026-09-15 18:04 ` Animesh Manna
2026-09-15 18:04 ` [PATCH v6 06/18] drm/i915/alpm: Auxless wake time calculation for Xe3p Animesh Manna
` (16 subsequent siblings)
21 siblings, 0 replies; 32+ messages in thread
From: Animesh Manna @ 2026-09-15 18:04 UTC (permalink / raw)
To: intel-gfx, intel-xe, dri-devel
Cc: jouni.hogander, jani.nikula, suraj.kandpal, Animesh Manna
Divide the auxless wake time calculation in parts which will
help later to add Xe3p related modification.
v2: Refactor first existing calculation. [Jani]
v3: Cosmetic changes. [Jani, Suraj]
Bspec: 71477
Cc: Jouni Högander <jouni.hogander@intel.com>
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
Signed-off-by: Animesh Manna <animesh.manna@intel.com>
---
drivers/gpu/drm/i915/display/intel_alpm.c | 31 ++++++++++++++++-------
1 file changed, 22 insertions(+), 9 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_alpm.c b/drivers/gpu/drm/i915/display/intel_alpm.c
index 901493bb1448..d5823174576a 100644
--- a/drivers/gpu/drm/i915/display/intel_alpm.c
+++ b/drivers/gpu/drm/i915/display/intel_alpm.c
@@ -102,6 +102,25 @@ static int get_lfps_half_cycle_clocks(const struct intel_crtc_state *crtc_state)
1000 / (2 * LFPS_CYCLE_COUNT);
}
+static int get_tphy2_p2_to_p0(const struct intel_crtc_state *crtc_state)
+{
+ return 12 * 1000;
+}
+
+static int get_establishment_period(const struct intel_crtc_state *crtc_state)
+{
+ int t1 = 50 * 1000;
+ int tps4 = 252;
+ /* port_clock is link rate in 10kbit/s units */
+ int tml_phy_lock = 1000 * 1000 * tps4 / crtc_state->port_clock;
+ int tcds, establishment_period;
+
+ tcds = (7 + DIV_ROUND_UP(6500, tml_phy_lock) + 1) * tml_phy_lock;
+ establishment_period = (SILENCE_PERIOD_TIME + t1 + tcds);
+
+ return establishment_period;
+}
+
/*
* AUX-Less Wake Time = CEILING( ((PHY P2 to P0) + tLFPS_Period, Max+
* tSilence, Max+ tPHY Establishment + tCDS) / tline)
@@ -123,17 +142,11 @@ static int get_lfps_half_cycle_clocks(const struct intel_crtc_state *crtc_state)
*/
static int _lnl_compute_aux_less_wake_time(const struct intel_crtc_state *crtc_state)
{
- int tphy2_p2_to_p0 = 12 * 1000;
- int t1 = 50 * 1000;
- int tps4 = 252;
- /* port_clock is link rate in 10kbit/s units */
- int tml_phy_lock = 1000 * 1000 * tps4 / crtc_state->port_clock;
- int num_ml_phy_lock = 7 + DIV_ROUND_UP(6500, tml_phy_lock) + 1;
- int t2 = num_ml_phy_lock * tml_phy_lock;
- int tcds = 1 * t2;
+ int tphy2_p2_to_p0 = get_tphy2_p2_to_p0(crtc_state);
+ int establishment_period = get_establishment_period(crtc_state);
return DIV_ROUND_UP(tphy2_p2_to_p0 + get_lfps_cycle_time(crtc_state) +
- SILENCE_PERIOD_TIME + t1 + tcds, 1000);
+ establishment_period, 1000);
}
static int
--
2.29.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH v6 06/18] drm/i915/alpm: Auxless wake time calculation for Xe3p
2026-09-15 18:04 [PATCH v6 00/18] Enable DP2.1 alpm Animesh Manna
` (4 preceding siblings ...)
2026-09-15 18:04 ` [PATCH v6 05/18] drm/i915/alpm: Refactor Auxless wake time calculation Animesh Manna
@ 2026-09-15 18:04 ` Animesh Manna
2026-09-15 18:04 ` [PATCH v6 07/18] drm/i915/alpm: Modify AUX_LESS_WAKE_TIME bitfield for xe3lpd Animesh Manna
` (15 subsequent siblings)
21 siblings, 0 replies; 32+ messages in thread
From: Animesh Manna @ 2026-09-15 18:04 UTC (permalink / raw)
To: intel-gfx, intel-xe, dri-devel
Cc: jouni.hogander, jani.nikula, suraj.kandpal, Animesh Manna
Add support for auxless waketime calculation for DP2.1 ALPM
as dependent parameter got changed.
v1: Initial version.
v2: Use intel_dp_is_uhbr(). [Jani]
v3:
- Separate out switch to active latency calculation.
- Use macro definition for ML_PHY_LOCK length. [Suraj]
v4:
- Fix 32-bit signed integer overflow. [sashiko]
- Fix negative return of drm_dp_lttpr_count(). [sashiko]
- Introduce get_ml_phy_lock_len() and get_dp_link_symbol_size(). [Jouni]
- Align variable naming with bpec formula of establishment_period. [Jouni]
Bspec: 71477
Cc: Jouni Högander <jouni.hogander@intel.com>
Signed-off-by: Animesh Manna <animesh.manna@intel.com>
---
drivers/gpu/drm/i915/display/intel_alpm.c | 69 +++++++++++++++++++----
1 file changed, 58 insertions(+), 11 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_alpm.c b/drivers/gpu/drm/i915/display/intel_alpm.c
index d5823174576a..924fa8dd4638 100644
--- a/drivers/gpu/drm/i915/display/intel_alpm.c
+++ b/drivers/gpu/drm/i915/display/intel_alpm.c
@@ -102,21 +102,64 @@ static int get_lfps_half_cycle_clocks(const struct intel_crtc_state *crtc_state)
1000 / (2 * LFPS_CYCLE_COUNT);
}
+#define ML_PHY_LOCK_LEN 252
+#define ML_PHY_LOCK_LEN_UHBR 396
+
static int get_tphy2_p2_to_p0(const struct intel_crtc_state *crtc_state)
{
- return 12 * 1000;
+ struct intel_display *display = to_intel_display(crtc_state);
+
+ return DISPLAY_VER(display) >= 35 ? (20 * 1000) : (12 * 1000);
+}
+
+static int get_ml_phy_lock_len(const struct intel_crtc_state *crtc_state)
+{
+ return intel_dp_is_uhbr(crtc_state) ? ML_PHY_LOCK_LEN_UHBR : ML_PHY_LOCK_LEN;
+}
+
+static int get_dp_link_symbol_size(const struct intel_crtc_state *crtc_state)
+{
+ return intel_dp_is_uhbr(crtc_state) ? 32 : 10;
}
-static int get_establishment_period(const struct intel_crtc_state *crtc_state)
+static int get_establishment_period(struct intel_dp *intel_dp,
+ const struct intel_crtc_state *crtc_state)
{
int t1 = 50 * 1000;
- int tps4 = 252;
- /* port_clock is link rate in 10kbit/s units */
- int tml_phy_lock = 1000 * 1000 * tps4 / crtc_state->port_clock;
+ int tps4 = get_ml_phy_lock_len(crtc_state) * get_dp_link_symbol_size(crtc_state);
+ /*
+ * port_clock is link rate in 10kbit/s units, so multiplying by
+ * (1000 * 1000)/10 = 100000
+ */
+ int tml_phy_lock = 100000 * tps4 / crtc_state->port_clock;
+ int lttpr_count = 0;
int tcds, establishment_period;
- tcds = (7 + DIV_ROUND_UP(6500, tml_phy_lock) + 1) * tml_phy_lock;
- establishment_period = (SILENCE_PERIOD_TIME + t1 + tcds);
+ if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_EDP)) {
+ tcds = (7 + DIV_ROUND_UP(6500, tml_phy_lock) + 1) * tml_phy_lock;
+ } else {
+ tcds = 7 * tml_phy_lock;
+ lttpr_count = drm_dp_lttpr_count(intel_dp->lttpr_common_caps);
+ }
+
+ if (lttpr_count > 0) {
+ /* tlw and tcs values are taken from DP2.1 spec */
+ int tlw = 13000;
+ int tcs = 10000;
+ int tlfps_period = get_lfps_cycle_time(crtc_state);
+ int tdcs = (SILENCE_PERIOD_TIME + t1 + tcs +
+ (lttpr_count - 1) * (tlw + tlfps_period));
+ int tacds = 70000;
+ int tds = 7 * tml_phy_lock;
+
+ /* tdrl is same as tcds*/
+ establishment_period = tlw + tlfps_period + tdcs + tacds +
+ (lttpr_count - 1) * tds + tcds;
+ } else {
+ /* TODO: Add a check for data realign by DPCD 0x116[3] */
+
+ establishment_period = (SILENCE_PERIOD_TIME + t1 + tcds);
+ }
return establishment_period;
}
@@ -138,12 +181,16 @@ static int get_establishment_period(const struct intel_crtc_state *crtc_state)
* within the CDS period complete within the CDS period regardless of
* entry into the period
* tML_PHY_LOCK = TPS4 Length * ( 10 / (Link Rate in MHz) )
- * TPS4 Length = 252 Symbols
+ * ML_PHY_LOCK Length (8b/10b): 252
+ * ML_PHY_LOCK Length (128b/132b): 396
+ * TPS4 Length = ML_PHY_LOCK * Rate Div
+ * Rate Div = 32 for 128b/132b and 10 for 8b/10b.
*/
-static int _lnl_compute_aux_less_wake_time(const struct intel_crtc_state *crtc_state)
+static int _lnl_compute_aux_less_wake_time(struct intel_dp *intel_dp,
+ const struct intel_crtc_state *crtc_state)
{
int tphy2_p2_to_p0 = get_tphy2_p2_to_p0(crtc_state);
- int establishment_period = get_establishment_period(crtc_state);
+ int establishment_period = get_establishment_period(intel_dp, crtc_state);
return DIV_ROUND_UP(tphy2_p2_to_p0 + get_lfps_cycle_time(crtc_state) +
establishment_period, 1000);
@@ -158,7 +205,7 @@ _lnl_compute_aux_less_alpm_params(struct intel_dp *intel_dp,
lfps_half_cycle;
aux_less_wake_time =
- _lnl_compute_aux_less_wake_time(crtc_state);
+ _lnl_compute_aux_less_wake_time(intel_dp, crtc_state);
aux_less_wake_lines = intel_usecs_to_scanlines(&crtc_state->hw.adjusted_mode,
aux_less_wake_time);
silence_period = get_silence_period_symbols(crtc_state);
--
2.29.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH v6 07/18] drm/i915/alpm: Modify AUX_LESS_WAKE_TIME bitfield for xe3lpd
2026-09-15 18:04 [PATCH v6 00/18] Enable DP2.1 alpm Animesh Manna
` (5 preceding siblings ...)
2026-09-15 18:04 ` [PATCH v6 06/18] drm/i915/alpm: Auxless wake time calculation for Xe3p Animesh Manna
@ 2026-09-15 18:04 ` Animesh Manna
2026-09-15 18:46 ` sashiko-bot
2026-09-15 18:04 ` [PATCH v6 08/18] drm/i915/alpm: table based establishment period Animesh Manna
` (14 subsequent siblings)
21 siblings, 1 reply; 32+ messages in thread
From: Animesh Manna @ 2026-09-15 18:04 UTC (permalink / raw)
To: intel-gfx, intel-xe, dri-devel
Cc: jouni.hogander, jani.nikula, suraj.kandpal, Animesh Manna
The AUX_LESS_WAKE_TIME bitfield in ALPM_CTL is widened from 6 bits to
8 bits starting from xe3lpd (display version 35). Add the register mask
and field macro for the wider bitfield and program the wake time using
the appropriate macro based on the display version.
v2: Modify AUX_LESS_WAKE_TIME bitfield for xe3lpd. [Suraj]
v3: Separate out AUX_LESS_WAKE_TIME bitfield change into its own
patch. [Jouni]
Bspec: 71477
Cc: Jouni Högander <jouni.hogander@intel.com>
Signed-off-by: Animesh Manna <animesh.manna@intel.com>
---
drivers/gpu/drm/i915/display/intel_alpm.c | 8 ++++++--
drivers/gpu/drm/i915/display/intel_psr_regs.h | 2 ++
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_alpm.c b/drivers/gpu/drm/i915/display/intel_alpm.c
index 924fa8dd4638..dc025058a626 100644
--- a/drivers/gpu/drm/i915/display/intel_alpm.c
+++ b/drivers/gpu/drm/i915/display/intel_alpm.c
@@ -610,8 +610,12 @@ static void lnl_alpm_configure(struct intel_dp *intel_dp,
if (intel_alpm_is_alpm_aux_less(intel_dp, crtc_state)) {
alpm_ctl = ALPM_CTL_ALPM_ENABLE |
ALPM_CTL_ALPM_AUX_LESS_ENABLE |
- ALPM_CTL_AUX_LESS_SLEEP_HOLD_TIME_50_SYMBOLS |
- ALPM_CTL_AUX_LESS_WAKE_TIME(crtc_state->alpm_state.aux_less_wake_lines);
+ ALPM_CTL_AUX_LESS_SLEEP_HOLD_TIME_50_SYMBOLS;
+
+ if (DISPLAY_VER(display) < 35)
+ alpm_ctl |= ALPM_CTL_AUX_LESS_WAKE_TIME(crtc_state->alpm_state.aux_less_wake_lines);
+ else
+ alpm_ctl |= ALPM_CTL_AUX_LESS_WAKE_TIME_XE3LPD(crtc_state->alpm_state.aux_less_wake_lines);
if (intel_dp->as_sdp_supported)
intel_alpm_configure_pr_as_sdp(intel_dp, crtc_state);
diff --git a/drivers/gpu/drm/i915/display/intel_psr_regs.h b/drivers/gpu/drm/i915/display/intel_psr_regs.h
index bb577e7e3bbd..016ce24944dc 100644
--- a/drivers/gpu/drm/i915/display/intel_psr_regs.h
+++ b/drivers/gpu/drm/i915/display/intel_psr_regs.h
@@ -301,7 +301,9 @@
#define ALPM_CTL_EXTENDED_FAST_WAKE_MIN_LINES 5
#define ALPM_CTL_EXTENDED_FAST_WAKE_TIME(lines) REG_FIELD_PREP(ALPM_CTL_EXTENDED_FAST_WAKE_TIME_MASK, (lines) - ALPM_CTL_EXTENDED_FAST_WAKE_MIN_LINES)
#define ALPM_CTL_AUX_LESS_WAKE_TIME_MASK REG_GENMASK(5, 0)
+#define ALPM_CTL_AUX_LESS_WAKE_TIME_MASK_XE3LPD REG_GENMASK(7, 0)
#define ALPM_CTL_AUX_LESS_WAKE_TIME(val) REG_FIELD_PREP(ALPM_CTL_AUX_LESS_WAKE_TIME_MASK, val)
+#define ALPM_CTL_AUX_LESS_WAKE_TIME_XE3LPD(val) REG_FIELD_PREP(ALPM_CTL_AUX_LESS_WAKE_TIME_MASK_XE3LPD, val)
#define _ALPM_CTL2_A 0x60954
#define ALPM_CTL2(dev_priv, tran) _MMIO_TRANS2(dev_priv, tran, _ALPM_CTL2_A)
--
2.29.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH v6 08/18] drm/i915/alpm: table based establishment period
2026-09-15 18:04 [PATCH v6 00/18] Enable DP2.1 alpm Animesh Manna
` (6 preceding siblings ...)
2026-09-15 18:04 ` [PATCH v6 07/18] drm/i915/alpm: Modify AUX_LESS_WAKE_TIME bitfield for xe3lpd Animesh Manna
@ 2026-09-15 18:04 ` Animesh Manna
2026-09-15 18:04 ` [PATCH v6 09/18] drm/i915/alpm: Half LFPS cycle calculation Animesh Manna
` (13 subsequent siblings)
21 siblings, 0 replies; 32+ messages in thread
From: Animesh Manna @ 2026-09-15 18:04 UTC (permalink / raw)
To: intel-gfx, intel-xe, dri-devel
Cc: jouni.hogander, jani.nikula, suraj.kandpal, Animesh Manna
Only use the table when the link rate is listed (idx valid)
and the LTTPR count is within the table bounds. A zero entry
means the rate has no tabulated value, so fall back to the
computed establishment period below.
Note: The table and its values are taken from DP2.1 vesa spec.
v2: Add check for negative error codes from drm_dp_lttpr_count(). [sashiko]
Cc: Jouni Högander <jouni.hogander@intel.com>
Signed-off-by: Animesh Manna <animesh.manna@intel.com>
---
drivers/gpu/drm/i915/display/intel_alpm.c | 95 +++++++++++++++++++++++
1 file changed, 95 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_alpm.c b/drivers/gpu/drm/i915/display/intel_alpm.c
index dc025058a626..cb24bba801a1 100644
--- a/drivers/gpu/drm/i915/display/intel_alpm.c
+++ b/drivers/gpu/drm/i915/display/intel_alpm.c
@@ -122,6 +122,92 @@ static int get_dp_link_symbol_size(const struct intel_crtc_state *crtc_state)
return intel_dp_is_uhbr(crtc_state) ? 32 : 10;
}
+#define DEFAULT_MAX_LTTPR_COUNT 7
+#define MAX_SUPPORTED_DP_LINK_RATES 12
+
+static const u32 establishment_periods[DEFAULT_MAX_LTTPR_COUNT][MAX_SUPPORTED_DP_LINK_RATES] = {
+ /* 1620, 2160, 2430, 2700, 3240, 4320, 5400, 6750, 8100, 10000, 13500, 20000 */
+ /* No Retimers */
+ { 61070, 0, 0, 56710, 0, 0, 53450, 0, 52360, 59050, 56750, 54620 },
+ /* 1 Retimer */
+ { 155670, 0, 0, 151310, 0, 0, 148050, 0, 146960, 153650, 151350, 149220 },
+ /* 2 Retimers */
+ { 181160, 0, 0, 172450, 0, 0, 165910, 0, 163740, 177120, 172520, 168220 },
+ /* 3 Retimers */
+ { 206650, 0, 0, 193580, 0, 0, 183780, 0, 180510, 200590, 193690, 187290 },
+ /* 4 Retimers */
+ { 232140, 0, 0, 214710, 0, 0, 201650, 0, 197290, 224060, 214860, 206320 },
+ /* 5 Retimers */
+ { 257620, 0, 0, 235850, 0, 0, 219510, 0, 214070, 247530, 236030, 225360 },
+ /* 6 Retimers */
+ { 283110, 0, 0, 256980, 0, 0, 237380, 0, 230850, 271000, 257200, 244390 },
+};
+
+enum link_rate_idx {
+ LINK_RATE_INVALID = -1,
+ LINK_RATE_1,
+ LINK_RATE_2,
+ LINK_RATE_3,
+ LINK_RATE_4,
+ LINK_RATE_5,
+ LINK_RATE_6,
+ LINK_RATE_7,
+ LINK_RATE_8,
+ LINK_RATE_9,
+ LINK_RATE_10,
+ LINK_RATE_11,
+ LINK_RATE_12
+};
+
+static int get_link_rate_index(int port_clock)
+{
+ int link_rate_index;
+
+ switch (port_clock) {
+ case 162000:
+ link_rate_index = LINK_RATE_1; // Rate_1 (RBR) - 1.62 Gbps/Lane
+ break;
+ case 216000:
+ link_rate_index = LINK_RATE_2; // Rate_2 - 2.16 Gbps/Lane
+ break;
+ case 243000:
+ link_rate_index = LINK_RATE_3; // Rate_3 - 2.43 Gbps/Lane
+ break;
+ case 270000:
+ link_rate_index = LINK_RATE_4; // Rate_4 (HBR) - 2.70 Gbps/Lane
+ break;
+ case 324000:
+ link_rate_index = LINK_RATE_5; // Rate_5 (RBR2)- 3.24 Gbps/Lane
+ break;
+ case 432000:
+ link_rate_index = LINK_RATE_6; // Rate_6 - 4.32 Gbps/Lane
+ break;
+ case 540000:
+ link_rate_index = LINK_RATE_7; // Rate_7 (HBR2)- 5.40 Gbps/Lane
+ break;
+ case 675000:
+ link_rate_index = LINK_RATE_8; // Rate_8 - 6.75 Gbps/Lane
+ break;
+ case 810000:
+ link_rate_index = LINK_RATE_9; // Rate_9 (HBR3)- 8.10 Gbps/Lane
+ break;
+ case 1000000:
+ link_rate_index = LINK_RATE_10; // Rate_10 (UHBR10) - 10.0 Gbps/Lane
+ break;
+ case 1350000:
+ link_rate_index = LINK_RATE_11; // Rate_11 (UHBR13.5) - 13.5 Gbps/Lane
+ break;
+ case 2000000:
+ link_rate_index = LINK_RATE_12; // Rate_12 (UHBR20) - 20.0 Gbps/Lane
+ break;
+ default:
+ link_rate_index = LINK_RATE_INVALID;
+ break;
+ }
+
+ return link_rate_index;
+}
+
static int get_establishment_period(struct intel_dp *intel_dp,
const struct intel_crtc_state *crtc_state)
{
@@ -138,8 +224,17 @@ static int get_establishment_period(struct intel_dp *intel_dp,
if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_EDP)) {
tcds = (7 + DIV_ROUND_UP(6500, tml_phy_lock) + 1) * tml_phy_lock;
} else {
+ int idx = get_link_rate_index(crtc_state->port_clock);
+
tcds = 7 * tml_phy_lock;
lttpr_count = drm_dp_lttpr_count(intel_dp->lttpr_common_caps);
+
+ if (idx != LINK_RATE_INVALID && lttpr_count >= 0 &&
+ lttpr_count < DEFAULT_MAX_LTTPR_COUNT &&
+ establishment_periods[lttpr_count][idx]) {
+ establishment_period = establishment_periods[lttpr_count][idx];
+ return establishment_period;
+ }
}
if (lttpr_count > 0) {
--
2.29.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH v6 09/18] drm/i915/alpm: Half LFPS cycle calculation
2026-09-15 18:04 [PATCH v6 00/18] Enable DP2.1 alpm Animesh Manna
` (7 preceding siblings ...)
2026-09-15 18:04 ` [PATCH v6 08/18] drm/i915/alpm: table based establishment period Animesh Manna
@ 2026-09-15 18:04 ` Animesh Manna
2026-09-15 18:53 ` sashiko-bot
2026-09-15 18:04 ` [PATCH v6 10/18] drm/i915/alpm: Modify LFPS cycle count for DP ALPM Animesh Manna
` (12 subsequent siblings)
21 siblings, 1 reply; 32+ messages in thread
From: Animesh Manna @ 2026-09-15 18:04 UTC (permalink / raw)
To: intel-gfx, intel-xe, dri-devel
Cc: jouni.hogander, jani.nikula, suraj.kandpal, Animesh Manna
Add support for half LFPS cycle calculation for DP2.1 ALPM as dependent
parameters got changed.
v1: Initial version.
v2: Avoid returning early. [Jani]
v3: Use intel_crtc_has_type(). [Suraj]
v4: Split in separate function based on HAS_LT_PHY() check. [Jouni]
Cc: Jouni Högander <jouni.hogander@intel.com>
Signed-off-by: Animesh Manna <animesh.manna@intel.com>
---
drivers/gpu/drm/i915/display/intel_alpm.c | 41 ++++++++++++++++++-----
1 file changed, 33 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_alpm.c b/drivers/gpu/drm/i915/display/intel_alpm.c
index cb24bba801a1..14ecb27095b2 100644
--- a/drivers/gpu/drm/i915/display/intel_alpm.c
+++ b/drivers/gpu/drm/i915/display/intel_alpm.c
@@ -74,24 +74,49 @@ static int get_silence_period_symbols(const struct intel_crtc_state *crtc_state)
1000 / 1000;
}
-static void get_lfps_cycle_min_max_time(const struct intel_crtc_state *crtc_state,
- int *min, int *max)
+static void lnl_get_lfps_period_min_max_time(const struct intel_crtc_state *crtc_state,
+ int *min, int *max)
{
- if (crtc_state->port_clock < 540000) {
- *min = 65 * LFPS_CYCLE_COUNT;
- *max = 75 * LFPS_CYCLE_COUNT;
- } else {
+ if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_EDP)) {
+ if (crtc_state->port_clock < 540000) {
+ *min = 65 * LFPS_CYCLE_COUNT;
+ *max = 75 * LFPS_CYCLE_COUNT;
+ } else {
+ *min = 140;
+ *max = 800;
+ }
+ }
+}
+
+static void xe3plpd_get_lfps_period_min_max_time(const struct intel_crtc_state *crtc_state,
+ int *min, int *max)
+{
+ if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_EDP)) {
*min = 140;
*max = 800;
+ } else {
+ *min = 320;
+ *max = 1600;
}
}
+static void get_lfps_period_min_max_time(const struct intel_crtc_state *crtc_state,
+ int *min, int *max)
+{
+ struct intel_display *display = to_intel_display(crtc_state);
+
+ if (HAS_LT_PHY(display))
+ xe3plpd_get_lfps_period_min_max_time(crtc_state, min, max);
+ else
+ lnl_get_lfps_period_min_max_time(crtc_state, min, max);
+}
+
static int get_lfps_cycle_time(const struct intel_crtc_state *crtc_state)
{
int tlfps_cycle_min, tlfps_cycle_max;
- get_lfps_cycle_min_max_time(crtc_state, &tlfps_cycle_min,
- &tlfps_cycle_max);
+ get_lfps_period_min_max_time(crtc_state, &tlfps_cycle_min,
+ &tlfps_cycle_max);
return tlfps_cycle_min + (tlfps_cycle_max - tlfps_cycle_min) / 2;
}
--
2.29.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH v6 10/18] drm/i915/alpm: Modify LFPS cycle count for DP ALPM
2026-09-15 18:04 [PATCH v6 00/18] Enable DP2.1 alpm Animesh Manna
` (8 preceding siblings ...)
2026-09-15 18:04 ` [PATCH v6 09/18] drm/i915/alpm: Half LFPS cycle calculation Animesh Manna
@ 2026-09-15 18:04 ` Animesh Manna
2026-09-15 18:04 ` [PATCH v6 11/18] drm/i915/alpm: Modify LFPS_CYCLE_COUNT bitfield for xe3lpd Animesh Manna
` (11 subsequent siblings)
21 siblings, 0 replies; 32+ messages in thread
From: Animesh Manna @ 2026-09-15 18:04 UTC (permalink / raw)
To: intel-gfx, intel-xe, dri-devel
Cc: jouni.hogander, jani.nikula, suraj.kandpal, Animesh Manna
For DP minimum LFPS count is set to minimum 16.
Cc: Jouni Högander <jouni.hogander@intel.com>
Signed-off-by: Animesh Manna <animesh.manna@intel.com>
---
drivers/gpu/drm/i915/display/intel_alpm.c | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_alpm.c b/drivers/gpu/drm/i915/display/intel_alpm.c
index 14ecb27095b2..22ed341763fa 100644
--- a/drivers/gpu/drm/i915/display/intel_alpm.c
+++ b/drivers/gpu/drm/i915/display/intel_alpm.c
@@ -24,7 +24,8 @@
(SILENCE_PERIOD_MAX_TIME - \
SILENCE_PERIOD_MIN_TIME) / 2)
-#define LFPS_CYCLE_COUNT 10
+#define LFPS_CYCLE_COUNT 10
+#define LFPS_CYCLE_COUNT_DP 16
bool intel_alpm_aux_wake_supported(struct intel_dp *intel_dp)
{
@@ -121,10 +122,19 @@ static int get_lfps_cycle_time(const struct intel_crtc_state *crtc_state)
return tlfps_cycle_min + (tlfps_cycle_max - tlfps_cycle_min) / 2;
}
+static int get_lfps_cycle_count(const struct intel_crtc_state *crtc_state)
+{
+ /* External DP uses a minimum of 16 LFPS cycles. */
+ if (!intel_crtc_has_type(crtc_state, INTEL_OUTPUT_EDP))
+ return LFPS_CYCLE_COUNT_DP;
+
+ return LFPS_CYCLE_COUNT;
+}
+
static int get_lfps_half_cycle_clocks(const struct intel_crtc_state *crtc_state)
{
return get_lfps_cycle_time(crtc_state) * crtc_state->port_clock / 1000 /
- 1000 / (2 * LFPS_CYCLE_COUNT);
+ 1000 / (2 * get_lfps_cycle_count(crtc_state));
}
#define ML_PHY_LOCK_LEN 252
@@ -779,7 +789,7 @@ void intel_alpm_port_configure(struct intel_dp *intel_dp,
PORT_ALPM_CTL_MAX_PHY_SWING_HOLD(0) |
PORT_ALPM_CTL_SILENCE_PERIOD(
crtc_state->alpm_state.silence_period_sym_clocks);
- lfps_ctl_val = PORT_ALPM_LFPS_CTL_LFPS_CYCLE_COUNT(LFPS_CYCLE_COUNT) |
+ lfps_ctl_val = PORT_ALPM_LFPS_CTL_LFPS_CYCLE_COUNT(get_lfps_cycle_count(crtc_state)) |
PORT_ALPM_LFPS_CTL_LFPS_HALF_CYCLE_DURATION(
crtc_state->alpm_state.lfps_half_cycle_num_of_syms) |
PORT_ALPM_LFPS_CTL_FIRST_LFPS_HALF_CYCLE_DURATION(
--
2.29.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH v6 11/18] drm/i915/alpm: Modify LFPS_CYCLE_COUNT bitfield for xe3lpd
2026-09-15 18:04 [PATCH v6 00/18] Enable DP2.1 alpm Animesh Manna
` (9 preceding siblings ...)
2026-09-15 18:04 ` [PATCH v6 10/18] drm/i915/alpm: Modify LFPS cycle count for DP ALPM Animesh Manna
@ 2026-09-15 18:04 ` Animesh Manna
2026-09-15 18:04 ` [PATCH v6 12/18] drm/i915/alpm: Program LTTPR count for DP 2.1 ALPM Animesh Manna
` (10 subsequent siblings)
21 siblings, 0 replies; 32+ messages in thread
From: Animesh Manna @ 2026-09-15 18:04 UTC (permalink / raw)
To: intel-gfx, intel-xe, dri-devel
Cc: jouni.hogander, jani.nikula, suraj.kandpal, Animesh Manna
The LFPS_CYCLE_COUNT bitfield in PORT_ALPM_LFPS_CTL is widened from
4 bits (27:24) to 7 bits (30:24) starting from xe3lpd. Add the wider
register mask and field macro, and program the cycle count using the
appropriate macro based on the display version.
v2: Split in a separate patch. [Jouni]
Cc: Jouni Högander <jouni.hogander@intel.com>
Signed-off-by: Animesh Manna <animesh.manna@intel.com>
---
drivers/gpu/drm/i915/display/intel_alpm.c | 11 ++++++++++-
drivers/gpu/drm/i915/display/intel_psr_regs.h | 2 ++
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/display/intel_alpm.c b/drivers/gpu/drm/i915/display/intel_alpm.c
index 22ed341763fa..da653a407e97 100644
--- a/drivers/gpu/drm/i915/display/intel_alpm.c
+++ b/drivers/gpu/drm/i915/display/intel_alpm.c
@@ -784,12 +784,21 @@ void intel_alpm_port_configure(struct intel_dp *intel_dp,
return;
if (intel_alpm_is_alpm_aux_less(intel_dp, crtc_state)) {
+ int lfps_cycle = get_lfps_cycle_count(crtc_state);
+ u32 lfps_cycle_val;
+
+ if (DISPLAY_VER(display) >= 35)
+ lfps_cycle_val = PORT_ALPM_LFPS_CTL_LFPS_CYCLE_COUNT_XE3LPD(lfps_cycle);
+ else
+ lfps_cycle_val = PORT_ALPM_LFPS_CTL_LFPS_CYCLE_COUNT(lfps_cycle);
+
alpm_ctl_val = PORT_ALPM_CTL_ALPM_AUX_LESS_ENABLE |
PORT_ALPM_CTL_MAX_PHY_SWING_SETUP(15) |
PORT_ALPM_CTL_MAX_PHY_SWING_HOLD(0) |
PORT_ALPM_CTL_SILENCE_PERIOD(
crtc_state->alpm_state.silence_period_sym_clocks);
- lfps_ctl_val = PORT_ALPM_LFPS_CTL_LFPS_CYCLE_COUNT(get_lfps_cycle_count(crtc_state)) |
+
+ lfps_ctl_val = lfps_cycle_val |
PORT_ALPM_LFPS_CTL_LFPS_HALF_CYCLE_DURATION(
crtc_state->alpm_state.lfps_half_cycle_num_of_syms) |
PORT_ALPM_LFPS_CTL_FIRST_LFPS_HALF_CYCLE_DURATION(
diff --git a/drivers/gpu/drm/i915/display/intel_psr_regs.h b/drivers/gpu/drm/i915/display/intel_psr_regs.h
index 016ce24944dc..8f60b671755a 100644
--- a/drivers/gpu/drm/i915/display/intel_psr_regs.h
+++ b/drivers/gpu/drm/i915/display/intel_psr_regs.h
@@ -335,8 +335,10 @@
#define PORT_ALPM_LFPS_CTL(port) _MMIO_PORT(port, _PORT_ALPM_LFPS_CTL_A, _PORT_ALPM_LFPS_CTL_B)
#define PORT_ALPM_LFPS_CTL_LFPS_START_POLARITY REG_BIT(31)
#define PORT_ALPM_LFPS_CTL_LFPS_CYCLE_COUNT_MASK REG_GENMASK(27, 24)
+#define PORT_ALPM_LFPS_CTL_LFPS_CYCLE_COUNT_MASK_XE3LPD REG_GENMASK(30, 24)
#define PORT_ALPM_LFPS_CTL_LFPS_CYCLE_COUNT_MIN 7
#define PORT_ALPM_LFPS_CTL_LFPS_CYCLE_COUNT(val) REG_FIELD_PREP(PORT_ALPM_LFPS_CTL_LFPS_CYCLE_COUNT_MASK, (val) - PORT_ALPM_LFPS_CTL_LFPS_CYCLE_COUNT_MIN)
+#define PORT_ALPM_LFPS_CTL_LFPS_CYCLE_COUNT_XE3LPD(val) REG_FIELD_PREP(PORT_ALPM_LFPS_CTL_LFPS_CYCLE_COUNT_MASK_XE3LPD, (val) - PORT_ALPM_LFPS_CTL_LFPS_CYCLE_COUNT_MIN)
#define PORT_ALPM_LFPS_CTL_LFPS_HALF_CYCLE_DURATION_MASK REG_GENMASK(20, 16)
#define PORT_ALPM_LFPS_CTL_LFPS_HALF_CYCLE_DURATION(val) REG_FIELD_PREP(PORT_ALPM_LFPS_CTL_LFPS_HALF_CYCLE_DURATION_MASK, val)
#define PORT_ALPM_LFPS_CTL_FIRST_LFPS_HALF_CYCLE_DURATION_MASK REG_GENMASK(12, 8)
--
2.29.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH v6 12/18] drm/i915/alpm: Program LTTPR count for DP 2.1 ALPM
2026-09-15 18:04 [PATCH v6 00/18] Enable DP2.1 alpm Animesh Manna
` (10 preceding siblings ...)
2026-09-15 18:04 ` [PATCH v6 11/18] drm/i915/alpm: Modify LFPS_CYCLE_COUNT bitfield for xe3lpd Animesh Manna
@ 2026-09-15 18:04 ` Animesh Manna
2026-09-15 18:56 ` sashiko-bot
2026-09-15 18:04 ` [PATCH v6 13/18] drm/i915/alpm: Enable MAC Transmitting LFPS for LT PHY Animesh Manna
` (9 subsequent siblings)
21 siblings, 1 reply; 32+ messages in thread
From: Animesh Manna @ 2026-09-15 18:04 UTC (permalink / raw)
To: intel-gfx, intel-xe, dri-devel
Cc: jouni.hogander, jani.nikula, suraj.kandpal, Animesh Manna
Issue a AUX write transaction to DPCD DP_TOTAL_LTTPR_CNT (0xf000a)
with total number of LTTPR before link training.
v2: Cosmetic changes. [Suraj]
v3:
- Use same encoding format for lttpr_count. [Jouni]
- Avoid reading alpm_ctl2 register. [Jouni]
Cc: Jouni Högander <jouni.hogander@intel.com>
Signed-off-by: Animesh Manna <animesh.manna@intel.com>
---
drivers/gpu/drm/i915/display/intel_alpm.c | 7 ++++++-
.../drm/i915/display/intel_dp_link_training.c | 21 +++++++++++++++++++
2 files changed, 27 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/display/intel_alpm.c b/drivers/gpu/drm/i915/display/intel_alpm.c
index da653a407e97..06c1a59aa2c5 100644
--- a/drivers/gpu/drm/i915/display/intel_alpm.c
+++ b/drivers/gpu/drm/i915/display/intel_alpm.c
@@ -726,7 +726,7 @@ static void lnl_alpm_configure(struct intel_dp *intel_dp,
{
struct intel_display *display = to_intel_display(intel_dp);
enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
- u32 alpm_ctl;
+ u32 alpm_ctl, alpm_ctl2, lttpr_count;
if (DISPLAY_VER(display) < 20 || (!intel_psr_needs_alpm(intel_dp, crtc_state) &&
!crtc_state->has_lobf))
@@ -762,6 +762,11 @@ static void lnl_alpm_configure(struct intel_dp *intel_dp,
alpm_ctl |= ALPM_CTL_ALPM_ENTRY_CHECK(crtc_state->alpm_state.check_entry_lines);
+ lttpr_count = drm_dp_lttpr_count(intel_dp->lttpr_common_caps);
+
+ alpm_ctl2 = ALPM_CTL2_NUMBER_OF_LTTPR(lttpr_count);
+
+ intel_de_write(display, ALPM_CTL2(display, cpu_transcoder), alpm_ctl2);
intel_de_write(display, ALPM_CTL(display, cpu_transcoder), alpm_ctl);
mutex_unlock(&intel_dp->alpm.lock);
}
diff --git a/drivers/gpu/drm/i915/display/intel_dp_link_training.c b/drivers/gpu/drm/i915/display/intel_dp_link_training.c
index cb92cff90614..37c8306a1fa0 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_link_training.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_link_training.c
@@ -2265,6 +2265,25 @@ intel_dp_128b132b_link_train(struct intel_dp *intel_dp,
return passed;
}
+static void intel_dp_update_lttpr_count(struct intel_dp *intel_dp,
+ int lttpr_count)
+{
+ u8 val;
+
+ /*
+ * Program only for DP2.1 and return if LTTPR revison is less than 0x20
+ * where 0:3 represents minor rev and 4:7 represent major rev
+ */
+ if (!intel_dp_is_edp(intel_dp) ||
+ lttpr_count < 0 ||
+ intel_dp->lttpr_common_caps[0] <= 0x20)
+ return;
+
+ val = intel_dp->lttpr_common_caps[DP_PHY_REPEATER_CNT -
+ DP_LT_TUNABLE_PHY_REPEATER_FIELD_DATA_STRUCTURE_REV];
+ drm_dp_dpcd_writeb(&intel_dp->aux, DP_TOTAL_LTTPR_CNT, val);
+}
+
/**
* intel_dp_start_link_train - start link training
* @state: Atomic state
@@ -2304,6 +2323,8 @@ void intel_dp_start_link_train(struct intel_atomic_state *state,
intel_dp_prepare_link_train(intel_dp, crtc_state);
+ intel_dp_update_lttpr_count(intel_dp, lttpr_count);
+
if (intel_dp_is_uhbr(crtc_state))
passed = intel_dp_128b132b_link_train(intel_dp, crtc_state, lttpr_count);
else
--
2.29.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH v6 13/18] drm/i915/alpm: Enable MAC Transmitting LFPS for LT PHY
2026-09-15 18:04 [PATCH v6 00/18] Enable DP2.1 alpm Animesh Manna
` (11 preceding siblings ...)
2026-09-15 18:04 ` [PATCH v6 12/18] drm/i915/alpm: Program LTTPR count for DP 2.1 ALPM Animesh Manna
@ 2026-09-15 18:04 ` Animesh Manna
2026-09-15 18:04 ` [PATCH v6 14/18] drm/i915/alpm: Replace is_edp() with alpm_is_possible() Animesh Manna
` (8 subsequent siblings)
21 siblings, 0 replies; 32+ messages in thread
From: Animesh Manna @ 2026-09-15 18:04 UTC (permalink / raw)
To: intel-gfx, intel-xe, dri-devel
Cc: jouni.hogander, jani.nikula, suraj.kandpal, Animesh Manna
Enable MAC to transmit LFPS via LT PHY during aux-less alpm.
v2:
- Correct commit description. [Suraj]
- Remove loop as no dependency on the transmitter LT_PHY_CMN_CTL0. [Suraj]
v3: Cosmetic changes. [Suraj]
Cc: Jouni Högander <jouni.hogander@intel.com>
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
Signed-off-by: Animesh Manna <animesh.manna@intel.com>
---
drivers/gpu/drm/i915/display/intel_ddi.c | 5 +++-
drivers/gpu/drm/i915/display/intel_lt_phy.c | 27 +++++++++++++++++++
drivers/gpu/drm/i915/display/intel_lt_phy.h | 2 ++
.../gpu/drm/i915/display/intel_lt_phy_regs.h | 3 +++
4 files changed, 36 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
index 9b3b526e5e55..5244218132aa 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -3796,7 +3796,10 @@ static void mtl_ddi_prepare_link_retrain(struct intel_dp *intel_dp,
* ii. Enable MAC Transmits LFPS in the "PHY Common Control 0" PIPE
* register
*/
- intel_lnl_mac_transmit_lfps(encoder, crtc_state);
+ if (HAS_LT_PHY(display))
+ intel_xe3plpd_mac_transmit_lfps(encoder, crtc_state);
+ else
+ intel_lnl_mac_transmit_lfps(encoder, crtc_state);
}
static void intel_ddi_prepare_link_retrain(struct intel_dp *intel_dp,
diff --git a/drivers/gpu/drm/i915/display/intel_lt_phy.c b/drivers/gpu/drm/i915/display/intel_lt_phy.c
index 86492651b01d..4fe010df20be 100644
--- a/drivers/gpu/drm/i915/display/intel_lt_phy.c
+++ b/drivers/gpu/drm/i915/display/intel_lt_phy.c
@@ -5,6 +5,7 @@
#include <drm/drm_print.h>
+#include "intel_alpm.h"
#include "intel_cx0_phy.h"
#include "intel_cx0_phy_regs.h"
#include "intel_ddi.h"
@@ -2357,3 +2358,29 @@ void intel_lt_phy_verify_plls(struct intel_display *display)
intel_lt_phy_pll_verify_tables(display, xe3plpd_lt_edp_tables);
intel_lt_phy_pll_verify_tables(display, xe3plpd_lt_hdmi_tables);
}
+
+/*
+ * According to HAS we need to enable MAC Transmitting LFPS in the "PHY Common
+ * Control 0" PIPE register in case of AUX Less ALPM is going to be used. This
+ * function is doing that and is called by link retrain sequence.
+ */
+void intel_xe3plpd_mac_transmit_lfps(struct intel_encoder *encoder,
+ const struct intel_crtc_state *crtc_state)
+{
+ struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
+ struct ref_tracker *wakeref;
+ u8 owned_lane_mask;
+
+ if (!intel_alpm_is_alpm_aux_less(intel_dp, crtc_state))
+ return;
+
+ wakeref = intel_lt_phy_transaction_begin(encoder);
+
+ owned_lane_mask = intel_lt_phy_get_owned_lane_mask(encoder);
+
+ intel_lt_phy_rmw(encoder, owned_lane_mask, LT_PHY_CMN_CTL_0,
+ LT_PHY_CMN_LFPS_ENABLE,
+ LT_PHY_CMN_LFPS_ENABLE, MB_WRITE_COMMITTED);
+
+ intel_lt_phy_transaction_end(encoder, wakeref);
+}
diff --git a/drivers/gpu/drm/i915/display/intel_lt_phy.h b/drivers/gpu/drm/i915/display/intel_lt_phy.h
index 16de39484779..c76c97b90946 100644
--- a/drivers/gpu/drm/i915/display/intel_lt_phy.h
+++ b/drivers/gpu/drm/i915/display/intel_lt_phy.h
@@ -49,5 +49,7 @@ void intel_xe3plpd_pll_enable(struct intel_encoder *encoder,
const struct intel_dpll_hw_state *dpll_hw_state);
void intel_xe3plpd_pll_disable(struct intel_encoder *encoder);
void intel_lt_phy_verify_plls(struct intel_display *display);
+void intel_xe3plpd_mac_transmit_lfps(struct intel_encoder *encoder,
+ const struct intel_crtc_state *crtc_state);
#endif /* __INTEL_LT_PHY_H__ */
diff --git a/drivers/gpu/drm/i915/display/intel_lt_phy_regs.h b/drivers/gpu/drm/i915/display/intel_lt_phy_regs.h
index ff6d7829dbb9..b64ff57e0c09 100644
--- a/drivers/gpu/drm/i915/display/intel_lt_phy_regs.h
+++ b/drivers/gpu/drm/i915/display/intel_lt_phy_regs.h
@@ -35,6 +35,9 @@
#define LT_PHY_TXY_CTL10_MAC(idx) _MMIO(LT_PHY_TXY_CTL10(idx))
#define LT_PHY_TX_LANE_ENABLE REG_BIT8(0)
+#define LT_PHY_CMN_CTL_0 (0x800)
+#define LT_PHY_CMN_LFPS_ENABLE REG_BIT8(1)
+
/* LT Phy Vendor Register */
#define LT_PHY_VDR_0_CONFIG 0xC02
#define LT_PHY_VDR_DP_PLL_ENABLE REG_BIT(7)
--
2.29.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH v6 14/18] drm/i915/alpm: Replace is_edp() with alpm_is_possible()
2026-09-15 18:04 [PATCH v6 00/18] Enable DP2.1 alpm Animesh Manna
` (12 preceding siblings ...)
2026-09-15 18:04 ` [PATCH v6 13/18] drm/i915/alpm: Enable MAC Transmitting LFPS for LT PHY Animesh Manna
@ 2026-09-15 18:04 ` Animesh Manna
2026-09-15 18:57 ` sashiko-bot
2026-09-15 18:04 ` [PATCH v6 15/18] drm/i915/alpm: Introduce has_alpm to decouple from pr/psr2/lobf Animesh Manna
` (7 subsequent siblings)
21 siblings, 1 reply; 32+ messages in thread
From: Animesh Manna @ 2026-09-15 18:04 UTC (permalink / raw)
To: intel-gfx, intel-xe, dri-devel
Cc: jouni.hogander, jani.nikula, suraj.kandpal, Animesh Manna
Add a separate alpm_is_possible() which will check for alpm
capability from dpcd info.
v2: Drop DISPLAY_VER() check as intel_alpm_source_supported
already checking and populating dpcd info. [Jouni]
Cc: Jouni Högander <jouni.hogander@intel.com>
Signed-off-by: Animesh Manna <animesh.manna@intel.com>
---
drivers/gpu/drm/i915/display/intel_alpm.c | 13 ++++++++++---
drivers/gpu/drm/i915/display/intel_alpm.h | 1 +
2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_alpm.c b/drivers/gpu/drm/i915/display/intel_alpm.c
index 06c1a59aa2c5..29a93a252fe9 100644
--- a/drivers/gpu/drm/i915/display/intel_alpm.c
+++ b/drivers/gpu/drm/i915/display/intel_alpm.c
@@ -69,6 +69,13 @@ void intel_alpm_init(struct intel_dp *intel_dp)
mutex_init(&intel_dp->alpm.lock);
}
+bool intel_alpm_is_possible(struct intel_dp *intel_dp)
+{
+ return (intel_dp->alpm_dpcd ||
+ intel_dp->lttpr_common_caps[DP_LTTPR_ALPM_CAPABILITIES -
+ DP_LT_TUNABLE_PHY_REPEATER_FIELD_DATA_STRUCTURE_REV]);
+}
+
static int get_silence_period_symbols(const struct intel_crtc_state *crtc_state)
{
return SILENCE_PERIOD_TIME * intel_dp_link_symbol_clock(crtc_state->port_clock) /
@@ -546,7 +553,7 @@ void intel_alpm_lobf_compute_config(struct intel_dp *intel_dp,
if (intel_dp->alpm.sink_alpm_error)
return;
- if (!intel_dp_is_edp(intel_dp))
+ if (!intel_alpm_is_possible(intel_dp))
return;
if (DISPLAY_VER(display) < 20)
@@ -832,7 +839,7 @@ void intel_alpm_lobf_disable(const struct intel_crtc_state *new_crtc_state)
intel_dp = enc_to_intel_dp(encoder);
- if (!intel_dp_is_edp(intel_dp))
+ if (!intel_alpm_is_possible(intel_dp))
continue;
mutex_lock(&intel_dp->alpm.lock);
@@ -873,7 +880,7 @@ void intel_alpm_lobf_enable(const struct intel_crtc_state *new_crtc_state)
intel_dp = enc_to_intel_dp(encoder);
- if (intel_dp_is_edp(intel_dp)) {
+ if (intel_alpm_is_possible(intel_dp)) {
intel_alpm_enable_sink(intel_dp, new_crtc_state);
intel_alpm_configure(intel_dp, new_crtc_state);
}
diff --git a/drivers/gpu/drm/i915/display/intel_alpm.h b/drivers/gpu/drm/i915/display/intel_alpm.h
index 9a02fa386ee3..ea90eba76ca7 100644
--- a/drivers/gpu/drm/i915/display/intel_alpm.h
+++ b/drivers/gpu/drm/i915/display/intel_alpm.h
@@ -18,6 +18,7 @@ struct intel_crtc;
bool intel_alpm_source_supported(struct intel_connector *connector);
bool intel_alpm_init_dpcd(struct intel_dp *intel_dp);
void intel_alpm_init(struct intel_dp *intel_dp);
+bool intel_alpm_is_possible(struct intel_dp *intel_dp);
bool intel_alpm_compute_params(struct intel_dp *intel_dp,
struct intel_crtc_state *crtc_state);
void intel_alpm_lobf_compute_config(struct intel_dp *intel_dp,
--
2.29.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH v6 15/18] drm/i915/alpm: Introduce has_alpm to decouple from pr/psr2/lobf
2026-09-15 18:04 [PATCH v6 00/18] Enable DP2.1 alpm Animesh Manna
` (13 preceding siblings ...)
2026-09-15 18:04 ` [PATCH v6 14/18] drm/i915/alpm: Replace is_edp() with alpm_is_possible() Animesh Manna
@ 2026-09-15 18:04 ` Animesh Manna
2026-09-15 19:01 ` sashiko-bot
2026-09-15 18:04 ` [PATCH v6 16/18] drm/i915/alpm: Compute and program switch to active latency Animesh Manna
` (6 subsequent siblings)
21 siblings, 1 reply; 32+ messages in thread
From: Animesh Manna @ 2026-09-15 18:04 UTC (permalink / raw)
To: intel-gfx, intel-xe, dri-devel
Cc: jouni.hogander, jani.nikula, suraj.kandpal, Animesh Manna
For DP2.1, ALPM (Advanced Link Power Management) is optional: Panel
Replay can be supported without ALPM. Until now ALPM enablement was
derived implicitly from other features - eDP Panel Replay and PSR2
always implied ALPM (intel_psr_needs_alpm()), while LOBF was tracked
separately via has_lobf - so this scattered, feature-coupled logic
cannot express "Panel Replay without ALPM".
Introduce a single crtc_state->has_alpm flag as the source of truth for
whether ALPM is enabled for a pipe configuration, computed during config
validation:
- Panel Replay: from alpm_config_valid() when ALPM is possible; eDP
Panel Replay additionally requires has_alpm.
- PSR2 / Selective Update: from intel_alpm_is_possible().
- LOBF: from has_lobf.
The Panel Replay path sets has_alpm speculatively, so clear it when
Panel Replay is not the finally selected feature, ensuring a PSR1
fallback never enables ALPM.
Use has_alpm in place of the feature-specific checks in the ALPM
configure, port configure, sink enable and MAC-transmit-LFPS paths, and
key the late wake-line selection off has_alpm / has_panel_replay.
Also rename intel_alpm_is_alpm_aux_less() to intel_alpm_is_aux_less()
and base the aux-less decision on has_panel_replay, keeping the source
programming consistent with the sink's DP_ALPM_MODE_AUX_LESS. The now
unused intel_psr_needs_alpm() is removed.
Cc: Jouni Högander <jouni.hogander@intel.com>
Signed-off-by: Animesh Manna <animesh.manna@intel.com>
---
drivers/gpu/drm/i915/display/intel_alpm.c | 25 +++++-----
drivers/gpu/drm/i915/display/intel_alpm.h | 4 +-
drivers/gpu/drm/i915/display/intel_cx0_phy.c | 6 ++-
.../drm/i915/display/intel_display_types.h | 1 +
drivers/gpu/drm/i915/display/intel_lt_phy.c | 2 +-
drivers/gpu/drm/i915/display/intel_psr.c | 48 +++++++++++--------
drivers/gpu/drm/i915/display/intel_psr.h | 1 -
7 files changed, 47 insertions(+), 40 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_alpm.c b/drivers/gpu/drm/i915/display/intel_alpm.c
index 29a93a252fe9..236341aa3c8d 100644
--- a/drivers/gpu/drm/i915/display/intel_alpm.c
+++ b/drivers/gpu/drm/i915/display/intel_alpm.c
@@ -37,11 +37,11 @@ bool intel_alpm_aux_less_wake_supported(struct intel_dp *intel_dp)
return intel_dp->alpm_dpcd & DP_ALPM_AUX_LESS_CAP;
}
-bool intel_alpm_is_alpm_aux_less(struct intel_dp *intel_dp,
- const struct intel_crtc_state *crtc_state)
+bool intel_alpm_is_aux_less(struct intel_dp *intel_dp,
+ const struct intel_crtc_state *crtc_state)
{
- return intel_psr_needs_alpm_aux_less(intel_dp, crtc_state) ||
- (crtc_state->has_lobf && intel_alpm_aux_less_wake_supported(intel_dp));
+ return crtc_state->has_panel_replay ||
+ (crtc_state->has_lobf && intel_alpm_aux_less_wake_supported(intel_dp));
}
bool intel_alpm_source_supported(struct intel_connector *connector)
@@ -537,6 +537,7 @@ void intel_alpm_lobf_compute_config_late(struct intel_dp *intel_dp,
crtc_state->has_lobf = (crtc_state->set_context_latency + crtc_state->vrr.guardband) >
(first_sdp_position + waketime_in_lines);
+ crtc_state->has_alpm = crtc_state->has_lobf;
}
void intel_alpm_lobf_compute_config(struct intel_dp *intel_dp,
@@ -719,7 +720,7 @@ void intel_alpm_pr_as_sdp_update(const struct intel_crtc_state *crtc_state)
intel_dp = enc_to_intel_dp(encoder);
if (!intel_dp->as_sdp_supported ||
- !intel_alpm_is_alpm_aux_less(intel_dp, crtc_state))
+ !intel_alpm_is_aux_less(intel_dp, crtc_state))
continue;
mutex_lock(&intel_dp->alpm.lock);
@@ -735,8 +736,7 @@ static void lnl_alpm_configure(struct intel_dp *intel_dp,
enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
u32 alpm_ctl, alpm_ctl2, lttpr_count;
- if (DISPLAY_VER(display) < 20 || (!intel_psr_needs_alpm(intel_dp, crtc_state) &&
- !crtc_state->has_lobf))
+ if (DISPLAY_VER(display) < 20 || !crtc_state->has_alpm)
return;
mutex_lock(&intel_dp->alpm.lock);
@@ -744,7 +744,7 @@ static void lnl_alpm_configure(struct intel_dp *intel_dp,
* Panel Replay on eDP is always using ALPM aux less. I.e. no need to
* check panel support at this point.
*/
- if (intel_alpm_is_alpm_aux_less(intel_dp, crtc_state)) {
+ if (intel_alpm_is_aux_less(intel_dp, crtc_state)) {
alpm_ctl = ALPM_CTL_ALPM_ENABLE |
ALPM_CTL_ALPM_AUX_LESS_ENABLE |
ALPM_CTL_AUX_LESS_SLEEP_HOLD_TIME_50_SYMBOLS;
@@ -792,10 +792,10 @@ void intel_alpm_port_configure(struct intel_dp *intel_dp,
enum port port = dp_to_dig_port(intel_dp)->base.port;
u32 alpm_ctl_val = 0, lfps_ctl_val = 0;
- if (DISPLAY_VER(display) < 20)
+ if (DISPLAY_VER(display) < 20 || !crtc_state->has_alpm)
return;
- if (intel_alpm_is_alpm_aux_less(intel_dp, crtc_state)) {
+ if (intel_alpm_is_aux_less(intel_dp, crtc_state)) {
int lfps_cycle = get_lfps_cycle_count(crtc_state);
u32 lfps_cycle_val;
@@ -854,13 +854,12 @@ void intel_alpm_enable_sink(struct intel_dp *intel_dp,
{
u8 val;
- if (!intel_psr_needs_alpm(intel_dp, crtc_state) && !crtc_state->has_lobf)
+ if (!crtc_state->has_alpm)
return;
val = DP_ALPM_ENABLE | DP_ALPM_LOCK_ERROR_IRQ_HPD_ENABLE;
- if (crtc_state->has_panel_replay || (crtc_state->has_lobf &&
- intel_alpm_aux_less_wake_supported(intel_dp)))
+ if (intel_alpm_is_aux_less(intel_dp, crtc_state))
val |= DP_ALPM_MODE_AUX_LESS;
drm_dp_dpcd_writeb(&intel_dp->aux, DP_RECEIVER_ALPM_CONFIG, val);
diff --git a/drivers/gpu/drm/i915/display/intel_alpm.h b/drivers/gpu/drm/i915/display/intel_alpm.h
index ea90eba76ca7..5d404e7b07de 100644
--- a/drivers/gpu/drm/i915/display/intel_alpm.h
+++ b/drivers/gpu/drm/i915/display/intel_alpm.h
@@ -35,8 +35,8 @@ void intel_alpm_lobf_enable(const struct intel_crtc_state *new_crtc_state);
void intel_alpm_lobf_debugfs_add(struct intel_connector *connector);
bool intel_alpm_aux_wake_supported(struct intel_dp *intel_dp);
bool intel_alpm_aux_less_wake_supported(struct intel_dp *intel_dp);
-bool intel_alpm_is_alpm_aux_less(struct intel_dp *intel_dp,
- const struct intel_crtc_state *crtc_state);
+bool intel_alpm_is_aux_less(struct intel_dp *intel_dp,
+ const struct intel_crtc_state *crtc_state);
bool intel_alpm_pr_as_sdp_skip_frames_enabled(struct intel_dp *intel_dp,
const struct intel_crtc_state *crtc_state);
void intel_alpm_pr_as_sdp_update(const struct intel_crtc_state *crtc_state);
diff --git a/drivers/gpu/drm/i915/display/intel_cx0_phy.c b/drivers/gpu/drm/i915/display/intel_cx0_phy.c
index dbebd7210848..26a5d40289ac 100644
--- a/drivers/gpu/drm/i915/display/intel_cx0_phy.c
+++ b/drivers/gpu/drm/i915/display/intel_cx0_phy.c
@@ -3449,8 +3449,10 @@ void intel_lnl_mac_transmit_lfps(struct intel_encoder *encoder,
int i;
u8 owned_lane_mask;
- if (DISPLAY_VER(display) < 20 ||
- !intel_alpm_is_alpm_aux_less(enc_to_intel_dp(encoder), crtc_state))
+ if (DISPLAY_VER(display) < 20 || !crtc_state->has_alpm)
+ return;
+
+ if (!intel_alpm_is_aux_less(enc_to_intel_dp(encoder), crtc_state))
return;
owned_lane_mask = intel_cx0_get_owned_lane_mask(encoder);
diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
index a5f18ac8a7d0..e2cc73c98479 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -1448,6 +1448,7 @@ struct intel_crtc_state {
u8 silence_period_sym_clocks;
u8 lfps_half_cycle_num_of_syms;
} alpm_state;
+ bool has_alpm;
/* to track changes in plane color blocks */
bool plane_color_changed;
diff --git a/drivers/gpu/drm/i915/display/intel_lt_phy.c b/drivers/gpu/drm/i915/display/intel_lt_phy.c
index 4fe010df20be..8ebbdc3c0184 100644
--- a/drivers/gpu/drm/i915/display/intel_lt_phy.c
+++ b/drivers/gpu/drm/i915/display/intel_lt_phy.c
@@ -2371,7 +2371,7 @@ void intel_xe3plpd_mac_transmit_lfps(struct intel_encoder *encoder,
struct ref_tracker *wakeref;
u8 owned_lane_mask;
- if (!intel_alpm_is_alpm_aux_less(intel_dp, crtc_state))
+ if (!crtc_state->has_alpm || !intel_alpm_is_aux_less(intel_dp, crtc_state))
return;
wakeref = intel_lt_phy_transaction_begin(encoder);
diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
index 872e253db178..1f14dbe57512 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
@@ -1648,6 +1648,8 @@ static bool intel_sel_update_config_valid(struct intel_crtc_state *crtc_state,
crtc_state->enable_psr2_su_region_et = psr2_su_region_et_valid(connector,
crtc_state->has_panel_replay);
+ crtc_state->has_alpm = intel_alpm_is_possible(intel_dp);
+
return true;
unsupported:
@@ -1735,11 +1737,17 @@ static bool _panel_replay_compute_config(struct intel_crtc_state *crtc_state,
crtc_state->link_off_after_as_sdp_when_pr_active = compute_link_off_after_as_sdp_when_pr_active(connector);
crtc_state->disable_as_sdp_when_pr_active = compute_disable_as_sdp_when_pr_active(connector);
+ if (intel_alpm_is_possible(intel_dp))
+ crtc_state->has_alpm = alpm_config_valid(intel_dp, crtc_state, true, true, false);
+
if (!intel_dp_is_edp(intel_dp))
return true;
/* Remaining checks are for eDP only */
+ if (!crtc_state->has_alpm)
+ return false;
+
if (to_intel_crtc(crtc_state->uapi.crtc)->pipe != PIPE_A &&
to_intel_crtc(crtc_state->uapi.crtc)->pipe != PIPE_B)
return false;
@@ -1762,9 +1770,6 @@ static bool _panel_replay_compute_config(struct intel_crtc_state *crtc_state,
return false;
}
- if (!alpm_config_valid(intel_dp, crtc_state, true, true, false))
- return false;
-
return true;
}
@@ -1888,6 +1893,15 @@ void intel_psr_compute_config(struct intel_dp *intel_dp,
crtc_state->panel_replay_dsc_support = connector->dp.panel_replay_caps.dsc_support;
crtc_state->has_panel_replay = _panel_replay_compute_config(crtc_state, conn_state);
+ /*
+ * has_alpm may have been set speculatively while evaluating Panel
+ * Replay. It is only valid if Panel Replay was actually selected;
+ * otherwise the finally chosen feature (PSR2/SU or LOBF) decides it and
+ * a PSR1 fallback must not enable ALPM.
+ */
+ if (!crtc_state->has_panel_replay)
+ crtc_state->has_alpm = false;
+
crtc_state->has_psr = crtc_state->has_panel_replay ? true :
_psr_compute_config(intel_dp, crtc_state, conn_state);
@@ -4555,16 +4569,6 @@ void intel_psr_connector_debugfs_add(struct intel_connector *connector)
connector, &i915_psr_status_fops);
}
-bool intel_psr_needs_alpm(struct intel_dp *intel_dp, const struct intel_crtc_state *crtc_state)
-{
- /*
- * eDP Panel Replay uses always ALPM
- * PSR2 uses ALPM but PSR1 doesn't
- */
- return intel_dp_is_edp(intel_dp) && (crtc_state->has_sel_update ||
- crtc_state->has_panel_replay);
-}
-
bool intel_psr_needs_alpm_aux_less(struct intel_dp *intel_dp,
const struct intel_crtc_state *crtc_state)
{
@@ -4578,15 +4582,17 @@ void intel_psr_compute_config_late(struct intel_dp *intel_dp,
int vblank = intel_crtc_vblank_length(crtc_state);
int wake_lines;
- if (intel_psr_needs_alpm_aux_less(intel_dp, crtc_state))
- wake_lines = crtc_state->alpm_state.aux_less_wake_lines;
- else if (intel_psr_needs_alpm(intel_dp, crtc_state))
- wake_lines = DISPLAY_VER(display) < 20 ?
- psr2_block_count_lines(crtc_state->alpm_state.io_wake_lines,
- crtc_state->alpm_state.fast_wake_lines) :
- crtc_state->alpm_state.io_wake_lines;
- else
+ if (crtc_state->has_alpm) {
+ if (crtc_state->has_panel_replay)
+ wake_lines = crtc_state->alpm_state.aux_less_wake_lines;
+ else
+ wake_lines = DISPLAY_VER(display) < 20 ?
+ psr2_block_count_lines(crtc_state->alpm_state.io_wake_lines,
+ crtc_state->alpm_state.fast_wake_lines) :
+ crtc_state->alpm_state.io_wake_lines;
+ } else {
wake_lines = 0;
+ }
/*
* Disable the PSR features if wake lines exceed the available vblank.
diff --git a/drivers/gpu/drm/i915/display/intel_psr.h b/drivers/gpu/drm/i915/display/intel_psr.h
index d545fdaa0de7..4905ba4da4b8 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.h
+++ b/drivers/gpu/drm/i915/display/intel_psr.h
@@ -79,7 +79,6 @@ void intel_psr_trigger_frame_change_event(struct intel_dsb *dsb,
int intel_psr_min_set_context_latency(const struct intel_crtc_state *crtc_state);
void intel_psr_connector_debugfs_add(struct intel_connector *connector);
void intel_psr_debugfs_register(struct intel_display *display);
-bool intel_psr_needs_alpm(struct intel_dp *intel_dp, const struct intel_crtc_state *crtc_state);
bool intel_psr_needs_alpm_aux_less(struct intel_dp *intel_dp,
const struct intel_crtc_state *crtc_state);
void intel_psr_compute_config_late(struct intel_dp *intel_dp,
--
2.29.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH v6 16/18] drm/i915/alpm: Compute and program switch to active latency
2026-09-15 18:04 [PATCH v6 00/18] Enable DP2.1 alpm Animesh Manna
` (14 preceding siblings ...)
2026-09-15 18:04 ` [PATCH v6 15/18] drm/i915/alpm: Introduce has_alpm to decouple from pr/psr2/lobf Animesh Manna
@ 2026-09-15 18:04 ` Animesh Manna
2026-09-15 18:55 ` sashiko-bot
2026-09-15 18:04 ` [PATCH v6 17/18] drm/i915/alpm: Program zero-based LFPS half cycle duration Animesh Manna
` (5 subsequent siblings)
21 siblings, 1 reply; 32+ messages in thread
From: Animesh Manna @ 2026-09-15 18:04 UTC (permalink / raw)
To: intel-gfx, intel-xe, dri-devel
Cc: jouni.hogander, jani.nikula, suraj.kandpal, Animesh Manna
Program the ALPM switch to active latency into ALPM_CTL2. For UHBR link
rates the latency is derived from the link symbol clock and converted to
scanlines, for non-UHBR rates it is zero.
v2: Use macro instead of magic number wherever possible. [Jouni]
Cc: Jouni Högander <jouni.hogander@intel.com>
Signed-off-by: Animesh Manna <animesh.manna@intel.com>
---
drivers/gpu/drm/i915/display/intel_alpm.c | 29 ++++++++++++++++++-
.../drm/i915/display/intel_display_types.h | 1 +
2 files changed, 29 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/display/intel_alpm.c b/drivers/gpu/drm/i915/display/intel_alpm.c
index 236341aa3c8d..84777c8d31bb 100644
--- a/drivers/gpu/drm/i915/display/intel_alpm.c
+++ b/drivers/gpu/drm/i915/display/intel_alpm.c
@@ -301,6 +301,31 @@ static int get_establishment_period(struct intel_dp *intel_dp,
return establishment_period;
}
+static int get_switch_to_active(const struct intel_crtc_state *crtc_state)
+{
+ int port_clock = crtc_state->port_clock;
+ int switch_to_active;
+
+ if (intel_dp_is_uhbr(crtc_state)) {
+ /* symbol_clock (fLink) in MHz */
+ int symbol_clock = port_clock / intel_dp_link_symbol_size(port_clock) / 100;
+
+ /*
+ * tSwitch to Active = 32 * (ML_PHY_LOCK Length + 3 + 64) / fLink
+ *
+ * The "+ 3" term is the trailing zero padding after the
+ * POST_LT_SCRAMBLER_RESET, the "+ 64" term represents the MTP
+ * time slots. The result is in microseconds.
+ */
+ switch_to_active = get_dp_link_symbol_size(crtc_state) *
+ (ML_PHY_LOCK_LEN_UHBR + 3 + 64) / symbol_clock;
+ } else {
+ switch_to_active = 0;
+ }
+
+ return switch_to_active;
+}
+
/*
* AUX-Less Wake Time = CEILING( ((PHY P2 to P0) + tLFPS_Period, Max+
* tSilence, Max+ tPHY Establishment + tCDS) / tline)
@@ -360,7 +385,8 @@ _lnl_compute_aux_less_alpm_params(struct intel_dp *intel_dp,
crtc_state->alpm_state.aux_less_wake_lines = aux_less_wake_lines;
crtc_state->alpm_state.silence_period_sym_clocks = silence_period;
crtc_state->alpm_state.lfps_half_cycle_num_of_syms = lfps_half_cycle;
-
+ crtc_state->alpm_state.switch_to_active = intel_usecs_to_scanlines(&crtc_state->hw.adjusted_mode,
+ get_switch_to_active(crtc_state));
return true;
}
@@ -772,6 +798,7 @@ static void lnl_alpm_configure(struct intel_dp *intel_dp,
lttpr_count = drm_dp_lttpr_count(intel_dp->lttpr_common_caps);
alpm_ctl2 = ALPM_CTL2_NUMBER_OF_LTTPR(lttpr_count);
+ alpm_ctl2 |= ALPM_CTL2_SWITCH_TO_ACTIVE_LATENCY(crtc_state->alpm_state.switch_to_active);
intel_de_write(display, ALPM_CTL2(display, cpu_transcoder), alpm_ctl2);
intel_de_write(display, ALPM_CTL(display, cpu_transcoder), alpm_ctl);
diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
index e2cc73c98479..6387258cd633 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -1447,6 +1447,7 @@ struct intel_crtc_state {
u8 aux_less_wake_lines;
u8 silence_period_sym_clocks;
u8 lfps_half_cycle_num_of_syms;
+ int switch_to_active;
} alpm_state;
bool has_alpm;
--
2.29.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH v6 17/18] drm/i915/alpm: Program zero-based LFPS half cycle duration
2026-09-15 18:04 [PATCH v6 00/18] Enable DP2.1 alpm Animesh Manna
` (15 preceding siblings ...)
2026-09-15 18:04 ` [PATCH v6 16/18] drm/i915/alpm: Compute and program switch to active latency Animesh Manna
@ 2026-09-15 18:04 ` Animesh Manna
2026-09-15 19:02 ` sashiko-bot
2026-09-15 18:04 ` [PATCH v6 18/18] drm/i915/alpm: Disallow ALPM for UHBR link rate Animesh Manna
` (4 subsequent siblings)
21 siblings, 1 reply; 32+ messages in thread
From: Animesh Manna @ 2026-09-15 18:04 UTC (permalink / raw)
To: intel-gfx, intel-xe, dri-devel
Cc: jouni.hogander, jani.nikula, suraj.kandpal, Animesh Manna
The LFPS Half Cycle Duration field, as well as the First and Last LFPS
Half Cycle Duration fields, in PORT_ALPM_LFPS_CTL are zero-based: per
Bspec the value programmed must be N_Symbol - 1. The number of symbols
was programmed directly, making each half cycle one symbol clock too
long.
Subtract one in the PORT_ALPM_LFPS_CTL_LFPS_HALF_CYCLE_DURATION,
PORT_ALPM_LFPS_CTL_FIRST_LFPS_HALF_CYCLE_DURATION and
PORT_ALPM_LFPS_CTL_LAST_LFPS_HALF_CYCLE_DURATION field macros so the
programmed value matches the zero-based field encoding.
Bspec: 71632
Cc: Jouni Högander <jouni.hogander@intel.com>
Assisted-by: Claude:claude-opus-4-8
Signed-off-by: Animesh Manna <animesh.manna@intel.com>
---
drivers/gpu/drm/i915/display/intel_psr_regs.h | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_psr_regs.h b/drivers/gpu/drm/i915/display/intel_psr_regs.h
index 8f60b671755a..387edf8df6e9 100644
--- a/drivers/gpu/drm/i915/display/intel_psr_regs.h
+++ b/drivers/gpu/drm/i915/display/intel_psr_regs.h
@@ -339,11 +339,17 @@
#define PORT_ALPM_LFPS_CTL_LFPS_CYCLE_COUNT_MIN 7
#define PORT_ALPM_LFPS_CTL_LFPS_CYCLE_COUNT(val) REG_FIELD_PREP(PORT_ALPM_LFPS_CTL_LFPS_CYCLE_COUNT_MASK, (val) - PORT_ALPM_LFPS_CTL_LFPS_CYCLE_COUNT_MIN)
#define PORT_ALPM_LFPS_CTL_LFPS_CYCLE_COUNT_XE3LPD(val) REG_FIELD_PREP(PORT_ALPM_LFPS_CTL_LFPS_CYCLE_COUNT_MASK_XE3LPD, (val) - PORT_ALPM_LFPS_CTL_LFPS_CYCLE_COUNT_MIN)
+/*
+ * The LFPS half cycle duration fields (including the first and last half
+ * cycle) are zero-based, i.e. the value programmed is N_Symbol - 1.
+ *
+ * Bspec: 71632
+ */
#define PORT_ALPM_LFPS_CTL_LFPS_HALF_CYCLE_DURATION_MASK REG_GENMASK(20, 16)
-#define PORT_ALPM_LFPS_CTL_LFPS_HALF_CYCLE_DURATION(val) REG_FIELD_PREP(PORT_ALPM_LFPS_CTL_LFPS_HALF_CYCLE_DURATION_MASK, val)
+#define PORT_ALPM_LFPS_CTL_LFPS_HALF_CYCLE_DURATION(val) REG_FIELD_PREP(PORT_ALPM_LFPS_CTL_LFPS_HALF_CYCLE_DURATION_MASK, (val) - 1)
#define PORT_ALPM_LFPS_CTL_FIRST_LFPS_HALF_CYCLE_DURATION_MASK REG_GENMASK(12, 8)
-#define PORT_ALPM_LFPS_CTL_FIRST_LFPS_HALF_CYCLE_DURATION(val) REG_FIELD_PREP(PORT_ALPM_LFPS_CTL_FIRST_LFPS_HALF_CYCLE_DURATION_MASK, val)
+#define PORT_ALPM_LFPS_CTL_FIRST_LFPS_HALF_CYCLE_DURATION(val) REG_FIELD_PREP(PORT_ALPM_LFPS_CTL_FIRST_LFPS_HALF_CYCLE_DURATION_MASK, (val) - 1)
#define PORT_ALPM_LFPS_CTL_LAST_LFPS_HALF_CYCLE_DURATION_MASK REG_GENMASK(4, 0)
-#define PORT_ALPM_LFPS_CTL_LAST_LFPS_HALF_CYCLE_DURATION(val) REG_FIELD_PREP(PORT_ALPM_LFPS_CTL_LAST_LFPS_HALF_CYCLE_DURATION_MASK, val)
+#define PORT_ALPM_LFPS_CTL_LAST_LFPS_HALF_CYCLE_DURATION(val) REG_FIELD_PREP(PORT_ALPM_LFPS_CTL_LAST_LFPS_HALF_CYCLE_DURATION_MASK, (val) - 1)
#endif /* __INTEL_PSR_REGS_H__ */
--
2.29.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH v6 18/18] drm/i915/alpm: Disallow ALPM for UHBR link rate
2026-09-15 18:04 [PATCH v6 00/18] Enable DP2.1 alpm Animesh Manna
` (16 preceding siblings ...)
2026-09-15 18:04 ` [PATCH v6 17/18] drm/i915/alpm: Program zero-based LFPS half cycle duration Animesh Manna
@ 2026-09-15 18:04 ` Animesh Manna
2026-09-15 19:01 ` sashiko-bot
2026-09-15 18:50 ` ✗ CI.checkpatch: warning for Enable DP2.1 alpm (rev6) Patchwork
` (3 subsequent siblings)
21 siblings, 1 reply; 32+ messages in thread
From: Animesh Manna @ 2026-09-15 18:04 UTC (permalink / raw)
To: intel-gfx, intel-xe, dri-devel
Cc: jouni.hogander, jani.nikula, suraj.kandpal, Animesh Manna
DP2.1 ALPM is not supported on UHBR (128b/132b) link rates on the NVL
platform. Reject the ALPM parameter computation for external DP running
at a UHBR rate on display version 35, so that ALPM (and the Panel Replay
and LOBF features that rely on it) is not enabled in that case. eDP is
excluded so eDP ALPM keeps working at any link rate.
Cc: Jouni Högander <jouni.hogander@intel.com>
Signed-off-by: Animesh Manna <animesh.manna@intel.com>
---
drivers/gpu/drm/i915/display/intel_alpm.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_alpm.c b/drivers/gpu/drm/i915/display/intel_alpm.c
index 84777c8d31bb..51805a6bca86 100644
--- a/drivers/gpu/drm/i915/display/intel_alpm.c
+++ b/drivers/gpu/drm/i915/display/intel_alpm.c
@@ -453,6 +453,12 @@ bool intel_alpm_compute_params(struct intel_dp *intel_dp,
int precharge = intel_dp_aux_fw_sync_len(intel_dp) - preamble;
u8 max_wake_lines;
+ /* DP2.1 ALPM is not supported on UHBR (128b/132b) link rates on NVL. */
+ if (DISPLAY_VER(display) == 35 &&
+ !intel_crtc_has_type(crtc_state, INTEL_OUTPUT_EDP) &&
+ intel_dp_is_uhbr(crtc_state))
+ return false;
+
io_wake_time = max(precharge, io_buffer_wake_time(crtc_state)) +
preamble + phy_wake + tfw_exit_latency;
fast_wake_time = precharge + preamble + phy_wake +
--
2.29.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* Re: [PATCH v6 07/18] drm/i915/alpm: Modify AUX_LESS_WAKE_TIME bitfield for xe3lpd
2026-09-15 18:04 ` [PATCH v6 07/18] drm/i915/alpm: Modify AUX_LESS_WAKE_TIME bitfield for xe3lpd Animesh Manna
@ 2026-09-15 18:46 ` sashiko-bot
0 siblings, 0 replies; 32+ messages in thread
From: sashiko-bot @ 2026-09-15 18:46 UTC (permalink / raw)
To: Animesh Manna; +Cc: intel-gfx, intel-xe, dri-devel
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] drm/i915/alpm: ALPM AUX-less wake time incorrectly restricted to legacy 6-bit maximum on xe3lpd
--
commit fefc7fdf839fcf4154d50e19eac0f82242cca5ad
Author: Animesh Manna <animesh.manna@intel.com>
Subject: drm/i915/alpm: Modify AUX_LESS_WAKE_TIME bitfield for xe3lpd
This commit widens the ALPM_CTL_AUX_LESS_WAKE_TIME bitfield from 6 bits
to 8 bits for xe3lpd (display version 35) and later. It introduces new
register macros and updates lnl_alpm_configure() to program the wake time
using the appropriate macro based on the display version.
> diff --git a/drivers/gpu/drm/i915/display/intel_alpm.c b/drivers/gpu/drm/i915/display/intel_alpm.c
> index 924fa8dd4638f..dc025058a6266 100644
> --- a/drivers/gpu/drm/i915/display/intel_alpm.c
> +++ b/drivers/gpu/drm/i915/display/intel_alpm.c
> @@ -610,8 +610,12 @@ static void lnl_alpm_configure(struct intel_dp *intel_dp,
> if (intel_alpm_is_alpm_aux_less(intel_dp, crtc_state)) {
> alpm_ctl = ALPM_CTL_ALPM_ENABLE |
> ALPM_CTL_ALPM_AUX_LESS_ENABLE |
> - ALPM_CTL_AUX_LESS_SLEEP_HOLD_TIME_50_SYMBOLS |
> - ALPM_CTL_AUX_LESS_WAKE_TIME(crtc_state->alpm_state.aux_less_wake_lines);
> + ALPM_CTL_AUX_LESS_SLEEP_HOLD_TIME_50_SYMBOLS;
> +
> + if (DISPLAY_VER(display) < 35)
> + alpm_ctl |= ALPM_CTL_AUX_LESS_WAKE_TIME(crtc_state->alpm_state.aux_less_wake_lines);
> + else
> + alpm_ctl |= ALPM_CTL_AUX_LESS_WAKE_TIME_XE3LPD(crtc_state->alpm_state.aux_less_wake_lines);
[Severity: Medium]
While this successfully programs the wider 8-bit wake time on xe3lpd hardware,
does _lnl_compute_aux_less_alpm_params() in the same file also need to be
updated to use this new mask?
Looking at _lnl_compute_aux_less_alpm_params(), the bounds check is still
hardcoded to the 6-bit legacy mask ALPM_CTL_AUX_LESS_WAKE_TIME_MASK on all
platforms:
if (aux_less_wake_lines > ALPM_CTL_AUX_LESS_WAKE_TIME_MASK ||
silence_period > PORT_ALPM_CTL_SILENCE_PERIOD_MASK ||
lfps_half_cycle > PORT_ALPM_LFPS_CTL_LAST_LFPS_HALF_CYCLE_DURATION_MASK)
return false;
Will this restrict aux_less_wake_lines to a maximum of 63, causing validation
to fail and aborting ALPM if the computed wake time is larger on xe3lpd?
Additionally, the safest params fallback is also restricted to the legacy mask:
if (display->params.psr_safest_params)
aux_less_wake_lines = ALPM_CTL_AUX_LESS_WAKE_TIME_MASK;
Will this cap the safest params to 63 instead of 255 on xe3lpd?
>
> if (intel_dp->as_sdp_supported)
> intel_alpm_configure_pr_as_sdp(intel_dp, crtc_state);
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260915180449.277933-1-animesh.manna@intel.com?part=7
^ permalink raw reply [flat|nested] 32+ messages in thread
* ✗ CI.checkpatch: warning for Enable DP2.1 alpm (rev6)
2026-09-15 18:04 [PATCH v6 00/18] Enable DP2.1 alpm Animesh Manna
` (17 preceding siblings ...)
2026-09-15 18:04 ` [PATCH v6 18/18] drm/i915/alpm: Disallow ALPM for UHBR link rate Animesh Manna
@ 2026-09-15 18:50 ` Patchwork
2026-09-15 18:52 ` ✓ CI.KUnit: success " Patchwork
` (2 subsequent siblings)
21 siblings, 0 replies; 32+ messages in thread
From: Patchwork @ 2026-09-15 18:50 UTC (permalink / raw)
To: Animesh Manna; +Cc: intel-xe
== Series Details ==
Series: Enable DP2.1 alpm (rev6)
URL : https://patchwork.freedesktop.org/series/156416/
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
d875049d2b299159a272bd5151994970cdcd1e31
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit e44aefa187485f329a8fd97334120e02cd0700ec
Author: Animesh Manna <animesh.manna@intel.com>
Date: Tue Sep 15 23:34:49 2026 +0530
drm/i915/alpm: Disallow ALPM for UHBR link rate
DP2.1 ALPM is not supported on UHBR (128b/132b) link rates on the NVL
platform. Reject the ALPM parameter computation for external DP running
at a UHBR rate on display version 35, so that ALPM (and the Panel Replay
and LOBF features that rely on it) is not enabled in that case. eDP is
excluded so eDP ALPM keeps working at any link rate.
Cc: Jouni Högander <jouni.hogander@intel.com>
Signed-off-by: Animesh Manna <animesh.manna@intel.com>
+ /mt/dim checkpatch 0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8 drm-intel
2461ca19859d drm/i915/alpm: Add DPCD definition for DP2.1 ALPM capability
c5f13e46e7e5 drm/i915/alpm: Move alpm sink capability readout into a separate function
4d07ad36aec5 drm/i915/alpm: alpm_init() for DP2.1
-:36: ERROR:CODE_INDENT: code indent should use tabs where possible
#36: FILE: drivers/gpu/drm/i915/display/intel_alpm.c:52:
+^I connector->base.connector_type == DRM_MODE_CONNECTOR_eDP;$
total: 1 errors, 0 warnings, 0 checks, 55 lines checked
82eaee8b1b82 drm/i915/alpm: Enable debugfs for DP2.1
8ab97aeaf921 drm/i915/alpm: Refactor Auxless wake time calculation
217676043eb0 drm/i915/alpm: Auxless wake time calculation for Xe3p
c4508b8f6726 drm/i915/alpm: Modify AUX_LESS_WAKE_TIME bitfield for xe3lpd
-:35: WARNING:LONG_LINE: line length of 108 exceeds 100 columns
#35: FILE: drivers/gpu/drm/i915/display/intel_alpm.c:616:
+ alpm_ctl |= ALPM_CTL_AUX_LESS_WAKE_TIME(crtc_state->alpm_state.aux_less_wake_lines);
-:37: WARNING:LONG_LINE: line length of 115 exceeds 100 columns
#37: FILE: drivers/gpu/drm/i915/display/intel_alpm.c:618:
+ alpm_ctl |= ALPM_CTL_AUX_LESS_WAKE_TIME_XE3LPD(crtc_state->alpm_state.aux_less_wake_lines);
-:51: WARNING:LONG_LINE: line length of 116 exceeds 100 columns
#51: FILE: drivers/gpu/drm/i915/display/intel_psr_regs.h:306:
+#define ALPM_CTL_AUX_LESS_WAKE_TIME_XE3LPD(val) REG_FIELD_PREP(ALPM_CTL_AUX_LESS_WAKE_TIME_MASK_XE3LPD, val)
total: 0 errors, 3 warnings, 0 checks, 23 lines checked
6ce6326e92d2 drm/i915/alpm: table based establishment period
75717c7b72db drm/i915/alpm: Half LFPS cycle calculation
-:61: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#61: FILE: drivers/gpu/drm/i915/display/intel_alpm.c:104:
+static void get_lfps_period_min_max_time(const struct intel_crtc_state *crtc_state,
+ int *min, int *max)
total: 0 errors, 0 warnings, 1 checks, 57 lines checked
4725d687823f drm/i915/alpm: Modify LFPS cycle count for DP ALPM
-:54: WARNING:LONG_LINE: line length of 102 exceeds 100 columns
#54: FILE: drivers/gpu/drm/i915/display/intel_alpm.c:792:
+ lfps_ctl_val = PORT_ALPM_LFPS_CTL_LFPS_CYCLE_COUNT(get_lfps_cycle_count(crtc_state)) |
total: 0 errors, 1 warnings, 0 checks, 37 lines checked
139c6e7be765 drm/i915/alpm: Modify LFPS_CYCLE_COUNT bitfield for xe3lpd
-:57: WARNING:LONG_LINE: line length of 176 exceeds 100 columns
#57: FILE: drivers/gpu/drm/i915/display/intel_psr_regs.h:341:
+#define PORT_ALPM_LFPS_CTL_LFPS_CYCLE_COUNT_XE3LPD(val) REG_FIELD_PREP(PORT_ALPM_LFPS_CTL_LFPS_CYCLE_COUNT_MASK_XE3LPD, (val) - PORT_ALPM_LFPS_CTL_LFPS_CYCLE_COUNT_MIN)
total: 0 errors, 1 warnings, 0 checks, 32 lines checked
497b0f084edc drm/i915/alpm: Program LTTPR count for DP 2.1 ALPM
da05aac74844 drm/i915/alpm: Enable MAC Transmitting LFPS for LT PHY
98d744665248 drm/i915/alpm: Replace is_edp() with alpm_is_possible()
2bfd7ca45952 drm/i915/alpm: Introduce has_alpm to decouple from pr/psr2/lobf
-:276: WARNING:LONG_LINE: line length of 101 exceeds 100 columns
#276: FILE: drivers/gpu/drm/i915/display/intel_psr.c:4591:
+ crtc_state->alpm_state.fast_wake_lines) :
total: 0 errors, 1 warnings, 0 checks, 208 lines checked
18f1bbb9f066 drm/i915/alpm: Compute and program switch to active latency
-:59: WARNING:LONG_LINE: line length of 105 exceeds 100 columns
#59: FILE: drivers/gpu/drm/i915/display/intel_alpm.c:388:
+ crtc_state->alpm_state.switch_to_active = intel_usecs_to_scanlines(&crtc_state->hw.adjusted_mode,
-:60: WARNING:LONG_LINE: line length of 109 exceeds 100 columns
#60: FILE: drivers/gpu/drm/i915/display/intel_alpm.c:389:
+ get_switch_to_active(crtc_state));
total: 0 errors, 2 warnings, 0 checks, 54 lines checked
bc59e89159dc drm/i915/alpm: Program zero-based LFPS half cycle duration
-:41: WARNING:LONG_LINE: line length of 139 exceeds 100 columns
#41: FILE: drivers/gpu/drm/i915/display/intel_psr_regs.h:349:
+#define PORT_ALPM_LFPS_CTL_LFPS_HALF_CYCLE_DURATION(val) REG_FIELD_PREP(PORT_ALPM_LFPS_CTL_LFPS_HALF_CYCLE_DURATION_MASK, (val) - 1)
-:44: WARNING:LONG_LINE: line length of 145 exceeds 100 columns
#44: FILE: drivers/gpu/drm/i915/display/intel_psr_regs.h:351:
+#define PORT_ALPM_LFPS_CTL_FIRST_LFPS_HALF_CYCLE_DURATION(val) REG_FIELD_PREP(PORT_ALPM_LFPS_CTL_FIRST_LFPS_HALF_CYCLE_DURATION_MASK, (val) - 1)
-:47: WARNING:LONG_LINE: line length of 144 exceeds 100 columns
#47: FILE: drivers/gpu/drm/i915/display/intel_psr_regs.h:353:
+#define PORT_ALPM_LFPS_CTL_LAST_LFPS_HALF_CYCLE_DURATION(val) REG_FIELD_PREP(PORT_ALPM_LFPS_CTL_LAST_LFPS_HALF_CYCLE_DURATION_MASK, (val) - 1)
total: 0 errors, 3 warnings, 0 checks, 20 lines checked
e44aefa18748 drm/i915/alpm: Disallow ALPM for UHBR link rate
^ permalink raw reply [flat|nested] 32+ messages in thread
* ✓ CI.KUnit: success for Enable DP2.1 alpm (rev6)
2026-09-15 18:04 [PATCH v6 00/18] Enable DP2.1 alpm Animesh Manna
` (18 preceding siblings ...)
2026-09-15 18:50 ` ✗ CI.checkpatch: warning for Enable DP2.1 alpm (rev6) Patchwork
@ 2026-09-15 18:52 ` Patchwork
2026-09-15 19:29 ` ✓ Xe.CI.BAT: " Patchwork
2026-09-16 1:55 ` ✓ Xe.CI.FULL: " Patchwork
21 siblings, 0 replies; 32+ messages in thread
From: Patchwork @ 2026-09-15 18:52 UTC (permalink / raw)
To: Animesh Manna; +Cc: intel-xe
== Series Details ==
Series: Enable DP2.1 alpm (rev6)
URL : https://patchwork.freedesktop.org/series/156416/
State : success
== Summary ==
+ trap cleanup EXIT
+ kunitconfigs=('/kernel/drivers/gpu/tests/.kunitconfig' '/kernel/drivers/gpu/drm/xe/.kunitconfig' '/kernel/drivers/gpu/drm/tests/.kunitconfig' '/kernel/drivers/gpu/drm/ttm/tests/.kunitconfig' '/kernel/drivers/dma-buf/.kunitconfig')
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/tests/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/tests/.kunitconfig
[18:50:30] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[18:50:34] 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
[18:50:54] Starting KUnit Kernel (1/1)...
[18:50:54] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[18:50:54] ============= refcount_interrupt (4 subtests) ==============
[18:50:54] [PASSED] test_single_irq_change
[18:50:54] [PASSED] test_nested_irq_change
[18:50:54] [PASSED] test_multiple_irq_change
[18:50:54] [PASSED] test_irq_save
[18:50:54] =============== [PASSED] refcount_interrupt ================
[18:50:54] ================= gpu_buddy (14 subtests) ==================
[18:50:54] [PASSED] gpu_test_buddy_alloc_limit
[18:50:54] [PASSED] gpu_test_buddy_alloc_optimistic
[18:50:54] [PASSED] gpu_test_buddy_alloc_pessimistic
[18:50:54] [PASSED] gpu_test_buddy_alloc_pathological
[18:50:54] [PASSED] gpu_test_buddy_alloc_contiguous
[18:50:54] [PASSED] gpu_test_buddy_alloc_clear
[18:50:54] [PASSED] gpu_test_buddy_alloc_range
[18:50:55] [PASSED] gpu_test_buddy_alloc_range_bias
[18:50:56] [PASSED] gpu_test_buddy_fragmentation_performance
[18:50:56] [PASSED] gpu_test_buddy_dirty_tracker_performance
[18:50:56] [PASSED] gpu_test_buddy_alloc_exceeds_max_order
[18:50:56] [PASSED] gpu_test_buddy_offset_aligned_allocation
[18:50:56] [PASSED] gpu_test_buddy_subtree_offset_alignment_stress
[18:50:56] [PASSED] gpu_test_buddy_addr_to_block
[18:50:56] ==================== [PASSED] gpu_buddy ====================
[18:50:56] ============================================================
[18:50:56] Testing complete. Ran 18 tests: passed: 18
[18:50:56] Elapsed time: 26.782s total, 4.442s configuring, 20.422s building, 1.862s running
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/drm/xe/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[18:50:56] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[18:50:58] 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
[18:51:32] Starting KUnit Kernel (1/1)...
[18:51:32] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[18:51:32] ============= refcount_interrupt (4 subtests) ==============
[18:51:32] [PASSED] test_single_irq_change
[18:51:32] [PASSED] test_nested_irq_change
[18:51:32] [PASSED] test_multiple_irq_change
[18:51:32] [PASSED] test_irq_save
[18:51:32] =============== [PASSED] refcount_interrupt ================
[18:51:32] ================== guc_buf (11 subtests) ===================
[18:51:32] [PASSED] test_smallest
[18:51:32] [PASSED] test_largest
[18:51:32] [PASSED] test_granular
[18:51:32] [PASSED] test_unique
[18:51:32] [PASSED] test_overlap
[18:51:32] [PASSED] test_reusable
[18:51:32] [PASSED] test_too_big
[18:51:32] [PASSED] test_flush
[18:51:32] [PASSED] test_lookup
[18:51:32] [PASSED] test_data
[18:51:32] [PASSED] test_class
[18:51:32] ===================== [PASSED] guc_buf =====================
[18:51:32] =================== guc_dbm (7 subtests) ===================
[18:51:32] [PASSED] test_empty
[18:51:32] [PASSED] test_default
[18:51:32] ======================== test_size ========================
[18:51:32] [PASSED] 4
[18:51:32] [PASSED] 8
[18:51:32] [PASSED] 32
[18:51:32] [PASSED] 256
[18:51:32] ==================== [PASSED] test_size ====================
[18:51:32] ======================= test_reuse ========================
[18:51:32] [PASSED] 4
[18:51:32] [PASSED] 8
[18:51:32] [PASSED] 32
[18:51:32] [PASSED] 256
[18:51:32] =================== [PASSED] test_reuse ====================
[18:51:32] =================== test_range_overlap ====================
[18:51:32] [PASSED] 4
[18:51:32] [PASSED] 8
[18:51:32] [PASSED] 32
[18:51:32] [PASSED] 256
[18:51:32] =============== [PASSED] test_range_overlap ================
[18:51:32] =================== test_range_compact ====================
[18:51:32] [PASSED] 4
[18:51:32] [PASSED] 8
[18:51:32] [PASSED] 32
[18:51:32] [PASSED] 256
[18:51:32] =============== [PASSED] test_range_compact ================
[18:51:32] ==================== test_range_spare =====================
[18:51:32] [PASSED] 4
[18:51:32] [PASSED] 8
[18:51:32] [PASSED] 32
[18:51:32] [PASSED] 256
[18:51:32] ================ [PASSED] test_range_spare =================
[18:51:32] ===================== [PASSED] guc_dbm =====================
[18:51:32] =================== guc_idm (6 subtests) ===================
[18:51:32] [PASSED] bad_init
[18:51:32] [PASSED] no_init
[18:51:32] [PASSED] init_fini
[18:51:32] [PASSED] check_used
[18:51:32] [PASSED] check_quota
[18:51:32] [PASSED] check_all
[18:51:32] ===================== [PASSED] guc_idm =====================
[18:51:32] =============== guc_klv_helpers (9 subtests) ===============
[18:51:32] [PASSED] test_count
[18:51:32] [PASSED] test_encode_u32
[18:51:32] [PASSED] test_encode_u64
[18:51:32] [PASSED] test_encode_string
[18:51:32] [PASSED] test_encode_object_raw
[18:51:32] [PASSED] test_encode_object_klv
[18:51:32] [PASSED] test_encode_object_nested
[18:51:32] [PASSED] test_encode_object_basic
[18:51:32] [PASSED] test_print
[18:51:32] ================= [PASSED] guc_klv_helpers =================
[18:51:32] =================== xe_log (4 subtests) ====================
[18:51:32] [PASSED] demo_cper
[18:51:32] [PASSED] demo_dmesg
[18:51:32] ======================= test_dmesg ========================
[18:51:32] [PASSED] test_fatal
[18:51:32] [PASSED] test_fatal_tile
[18:51:32] [PASSED] test_fatal_gt
[18:51:32] [PASSED] test_fatal_comp
[18:51:32] [PASSED] test_fatal_comp_tile
[18:51:32] [PASSED] test_fatal_comp_gt
[18:51:32] [PASSED] test_fatal_all
[18:51:32] [PASSED] test_recoverable
[18:51:32] [PASSED] test_recoverable_tile
[18:51:32] [PASSED] test_recoverable_gt
[18:51:32] [PASSED] test_recoverable_comp
[18:51:32] [PASSED] test_recoverable_comp_tile
[18:51:32] [PASSED] test_recoverable_comp_gt
[18:51:32] [PASSED] test_recoverable_all
[18:51:32] [PASSED] test_info
[18:51:32] [PASSED] test_info_tile
[18:51:32] [PASSED] test_info_gt
[18:51:32] [PASSED] test_info_err
[18:51:32] [PASSED] test_info_comp
[18:51:32] [PASSED] test_info_comp_tile
[18:51:32] [PASSED] test_info_comp_gt
[18:51:32] [PASSED] test_info_all
[18:51:32] [PASSED] test_hw_fatal
[18:51:32] [PASSED] test_hw_recoverable
[18:51:32] [PASSED] test_hw_corrected
[18:51:32] [PASSED] test_hw_informational
[18:51:32] =================== [PASSED] test_dmesg ====================
[18:51:32] ====================== test_invalid =======================
[18:51:32] [SKIPPED] no-component no-location no-warn (requires CONFIG_DRM_XE_DEBUG)
[18:51:32] [SKIPPED] reserved location (requires CONFIG_DRM_XE_DEBUG)
[18:51:32] [SKIPPED] unknown location (requires CONFIG_DRM_XE_DEBUG)
[18:51:32] [SKIPPED] nonzero-device-id location (requires CONFIG_DRM_XE_DEBUG)
[18:51:32] [SKIPPED] invalid-tile-id location (requires CONFIG_DRM_XE_DEBUG)
[18:51:32] [SKIPPED] invalid-gt-id location (requires CONFIG_DRM_XE_DEBUG)
[18:51:32] [SKIPPED] unknown component class (requires CONFIG_DRM_XE_DEBUG)
[18:51:32] [SKIPPED] unknown system component (requires CONFIG_DRM_XE_DEBUG)
[18:51:32] [SKIPPED] unknown hardware component (requires CONFIG_DRM_XE_DEBUG)
[18:51:32] [SKIPPED] unknown component and location (requires CONFIG_DRM_XE_DEBUG)
[18:51:32] ================== [SKIPPED] test_invalid ==================
[18:51:32] ===================== [PASSED] xe_log ======================
[18:51:32] ================== no_relay (3 subtests) ===================
[18:51:32] [PASSED] xe_drops_guc2pf_if_not_ready
[18:51:32] [PASSED] xe_drops_guc2vf_if_not_ready
[18:51:32] [PASSED] xe_rejects_send_if_not_ready
[18:51:32] ==================== [PASSED] no_relay =====================
[18:51:32] ================== pf_relay (14 subtests) ==================
[18:51:32] [PASSED] pf_rejects_guc2pf_too_short
[18:51:32] [PASSED] pf_rejects_guc2pf_too_long
[18:51:32] [PASSED] pf_rejects_guc2pf_no_payload
[18:51:32] [PASSED] pf_fails_no_payload
[18:51:32] [PASSED] pf_fails_bad_origin
[18:51:32] [PASSED] pf_fails_bad_type
[18:51:32] [PASSED] pf_txn_reports_error
[18:51:32] [PASSED] pf_txn_sends_pf2guc
[18:51:32] [PASSED] pf_sends_pf2guc
[18:51:32] [SKIPPED] pf_loopback_nop (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[18:51:32] [SKIPPED] pf_loopback_echo (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[18:51:32] [SKIPPED] pf_loopback_fail (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[18:51:32] [SKIPPED] pf_loopback_busy (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[18:51:32] [SKIPPED] pf_loopback_retry (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[18:51:32] ==================== [PASSED] pf_relay =====================
[18:51:32] ================== vf_relay (3 subtests) ===================
[18:51:32] [PASSED] vf_rejects_guc2vf_too_short
[18:51:32] [PASSED] vf_rejects_guc2vf_too_long
[18:51:32] [PASSED] vf_rejects_guc2vf_no_payload
[18:51:32] ==================== [PASSED] vf_relay =====================
[18:51:32] ================ pf_gt_config (9 subtests) =================
[18:51:32] [PASSED] fair_contexts_1vf
[18:51:32] [PASSED] fair_doorbells_1vf
[18:51:32] [PASSED] fair_ggtt_1vf
[18:51:32] ====================== fair_vram_1vf ======================
[18:51:32] [PASSED] 3.50 GiB
[18:51:32] [PASSED] 11.5 GiB
[18:51:32] [PASSED] 15.5 GiB
[18:51:32] [PASSED] 31.5 GiB
[18:51:32] [PASSED] 63.5 GiB
[18:51:32] [PASSED] 1.91 GiB
[18:51:32] ================== [PASSED] fair_vram_1vf ==================
[18:51:32] ================ fair_vram_1vf_admin_only =================
[18:51:32] [PASSED] 3.50 GiB
[18:51:32] [PASSED] 11.5 GiB
[18:51:32] [PASSED] 15.5 GiB
[18:51:32] [PASSED] 31.5 GiB
[18:51:32] [PASSED] 63.5 GiB
[18:51:32] [PASSED] 1.91 GiB
[18:51:32] ============ [PASSED] fair_vram_1vf_admin_only =============
[18:51:32] ====================== fair_contexts ======================
[18:51:32] [PASSED] 1 VF
[18:51:32] [PASSED] 2 VFs
[18:51:32] [PASSED] 3 VFs
[18:51:32] [PASSED] 4 VFs
[18:51:32] [PASSED] 5 VFs
[18:51:32] [PASSED] 6 VFs
[18:51:32] [PASSED] 7 VFs
[18:51:32] [PASSED] 8 VFs
[18:51:32] [PASSED] 9 VFs
[18:51:32] [PASSED] 10 VFs
[18:51:32] [PASSED] 11 VFs
[18:51:32] [PASSED] 12 VFs
[18:51:32] [PASSED] 13 VFs
[18:51:32] [PASSED] 14 VFs
[18:51:32] [PASSED] 15 VFs
[18:51:32] [PASSED] 16 VFs
[18:51:32] [PASSED] 17 VFs
[18:51:32] [PASSED] 18 VFs
[18:51:32] [PASSED] 19 VFs
[18:51:32] [PASSED] 20 VFs
[18:51:32] [PASSED] 21 VFs
[18:51:32] [PASSED] 22 VFs
[18:51:32] [PASSED] 23 VFs
[18:51:32] [PASSED] 24 VFs
[18:51:32] [PASSED] 25 VFs
[18:51:32] [PASSED] 26 VFs
[18:51:32] [PASSED] 27 VFs
[18:51:32] [PASSED] 28 VFs
[18:51:32] [PASSED] 29 VFs
[18:51:32] [PASSED] 30 VFs
[18:51:32] [PASSED] 31 VFs
[18:51:32] [PASSED] 32 VFs
[18:51:32] [PASSED] 33 VFs
[18:51:32] [PASSED] 34 VFs
[18:51:32] [PASSED] 35 VFs
[18:51:32] [PASSED] 36 VFs
[18:51:32] [PASSED] 37 VFs
[18:51:32] [PASSED] 38 VFs
[18:51:32] [PASSED] 39 VFs
[18:51:32] [PASSED] 40 VFs
[18:51:32] [PASSED] 41 VFs
[18:51:32] [PASSED] 42 VFs
[18:51:32] [PASSED] 43 VFs
[18:51:32] [PASSED] 44 VFs
[18:51:32] [PASSED] 45 VFs
[18:51:32] [PASSED] 46 VFs
[18:51:32] [PASSED] 47 VFs
[18:51:32] [PASSED] 48 VFs
[18:51:32] [PASSED] 49 VFs
[18:51:32] [PASSED] 50 VFs
[18:51:32] [PASSED] 51 VFs
[18:51:32] [PASSED] 52 VFs
[18:51:32] [PASSED] 53 VFs
[18:51:32] [PASSED] 54 VFs
[18:51:32] [PASSED] 55 VFs
[18:51:32] [PASSED] 56 VFs
[18:51:32] [PASSED] 57 VFs
[18:51:32] [PASSED] 58 VFs
[18:51:32] [PASSED] 59 VFs
[18:51:32] [PASSED] 60 VFs
[18:51:32] [PASSED] 61 VFs
[18:51:32] [PASSED] 62 VFs
[18:51:32] [PASSED] 63 VFs
[18:51:32] ================== [PASSED] fair_contexts ==================
[18:51:32] ===================== fair_doorbells ======================
[18:51:32] [PASSED] 1 VF
[18:51:32] [PASSED] 2 VFs
[18:51:32] [PASSED] 3 VFs
[18:51:32] [PASSED] 4 VFs
[18:51:32] [PASSED] 5 VFs
[18:51:32] [PASSED] 6 VFs
[18:51:32] [PASSED] 7 VFs
[18:51:32] [PASSED] 8 VFs
[18:51:32] [PASSED] 9 VFs
[18:51:32] [PASSED] 10 VFs
[18:51:32] [PASSED] 11 VFs
[18:51:32] [PASSED] 12 VFs
[18:51:32] [PASSED] 13 VFs
[18:51:32] [PASSED] 14 VFs
[18:51:32] [PASSED] 15 VFs
[18:51:32] [PASSED] 16 VFs
[18:51:32] [PASSED] 17 VFs
[18:51:32] [PASSED] 18 VFs
[18:51:32] [PASSED] 19 VFs
[18:51:32] [PASSED] 20 VFs
[18:51:32] [PASSED] 21 VFs
[18:51:32] [PASSED] 22 VFs
[18:51:32] [PASSED] 23 VFs
[18:51:32] [PASSED] 24 VFs
[18:51:32] [PASSED] 25 VFs
[18:51:32] [PASSED] 26 VFs
[18:51:32] [PASSED] 27 VFs
[18:51:32] [PASSED] 28 VFs
[18:51:32] [PASSED] 29 VFs
[18:51:32] [PASSED] 30 VFs
[18:51:32] [PASSED] 31 VFs
[18:51:32] [PASSED] 32 VFs
[18:51:32] [PASSED] 33 VFs
[18:51:32] [PASSED] 34 VFs
[18:51:32] [PASSED] 35 VFs
[18:51:32] [PASSED] 36 VFs
[18:51:32] [PASSED] 37 VFs
[18:51:32] [PASSED] 38 VFs
[18:51:32] [PASSED] 39 VFs
[18:51:32] [PASSED] 40 VFs
[18:51:32] [PASSED] 41 VFs
[18:51:32] [PASSED] 42 VFs
[18:51:32] [PASSED] 43 VFs
[18:51:32] [PASSED] 44 VFs
[18:51:32] [PASSED] 45 VFs
[18:51:32] [PASSED] 46 VFs
[18:51:32] [PASSED] 47 VFs
[18:51:32] [PASSED] 48 VFs
[18:51:32] [PASSED] 49 VFs
[18:51:32] [PASSED] 50 VFs
[18:51:32] [PASSED] 51 VFs
[18:51:32] [PASSED] 52 VFs
[18:51:32] [PASSED] 53 VFs
[18:51:32] [PASSED] 54 VFs
[18:51:32] [PASSED] 55 VFs
[18:51:32] [PASSED] 56 VFs
[18:51:32] [PASSED] 57 VFs
[18:51:32] [PASSED] 58 VFs
[18:51:32] [PASSED] 59 VFs
[18:51:32] [PASSED] 60 VFs
[18:51:32] [PASSED] 61 VFs
[18:51:32] [PASSED] 62 VFs
[18:51:32] [PASSED] 63 VFs
[18:51:32] ================= [PASSED] fair_doorbells ==================
[18:51:32] ======================== fair_ggtt ========================
[18:51:32] [PASSED] 1 VF
[18:51:32] [PASSED] 2 VFs
[18:51:32] [PASSED] 3 VFs
[18:51:32] [PASSED] 4 VFs
[18:51:32] [PASSED] 5 VFs
[18:51:32] [PASSED] 6 VFs
[18:51:32] [PASSED] 7 VFs
[18:51:32] [PASSED] 8 VFs
[18:51:32] [PASSED] 9 VFs
[18:51:32] [PASSED] 10 VFs
[18:51:32] [PASSED] 11 VFs
[18:51:32] [PASSED] 12 VFs
[18:51:32] [PASSED] 13 VFs
[18:51:32] [PASSED] 14 VFs
[18:51:32] [PASSED] 15 VFs
[18:51:32] [PASSED] 16 VFs
[18:51:32] [PASSED] 17 VFs
[18:51:32] [PASSED] 18 VFs
[18:51:32] [PASSED] 19 VFs
[18:51:32] [PASSED] 20 VFs
[18:51:32] [PASSED] 21 VFs
[18:51:32] [PASSED] 22 VFs
[18:51:32] [PASSED] 23 VFs
[18:51:32] [PASSED] 24 VFs
[18:51:32] [PASSED] 25 VFs
[18:51:32] [PASSED] 26 VFs
[18:51:32] [PASSED] 27 VFs
[18:51:32] [PASSED] 28 VFs
[18:51:32] [PASSED] 29 VFs
[18:51:32] [PASSED] 30 VFs
[18:51:32] [PASSED] 31 VFs
[18:51:32] [PASSED] 32 VFs
[18:51:32] [PASSED] 33 VFs
[18:51:32] [PASSED] 34 VFs
[18:51:32] [PASSED] 35 VFs
[18:51:32] [PASSED] 36 VFs
[18:51:32] [PASSED] 37 VFs
[18:51:32] [PASSED] 38 VFs
[18:51:32] [PASSED] 39 VFs
[18:51:32] [PASSED] 40 VFs
[18:51:32] [PASSED] 41 VFs
[18:51:32] [PASSED] 42 VFs
[18:51:32] [PASSED] 43 VFs
[18:51:32] [PASSED] 44 VFs
[18:51:32] [PASSED] 45 VFs
[18:51:32] [PASSED] 46 VFs
[18:51:32] [PASSED] 47 VFs
[18:51:32] [PASSED] 48 VFs
[18:51:32] [PASSED] 49 VFs
[18:51:32] [PASSED] 50 VFs
[18:51:32] [PASSED] 51 VFs
[18:51:32] [PASSED] 52 VFs
[18:51:32] [PASSED] 53 VFs
[18:51:32] [PASSED] 54 VFs
[18:51:32] [PASSED] 55 VFs
[18:51:32] [PASSED] 56 VFs
[18:51:32] [PASSED] 57 VFs
[18:51:32] [PASSED] 58 VFs
[18:51:32] [PASSED] 59 VFs
[18:51:32] [PASSED] 60 VFs
[18:51:32] [PASSED] 61 VFs
[18:51:32] [PASSED] 62 VFs
[18:51:32] [PASSED] 63 VFs
[18:51:32] ==================== [PASSED] fair_ggtt ====================
[18:51:32] ======================== fair_vram ========================
[18:51:32] [PASSED] 1 VF
[18:51:32] [PASSED] 2 VFs
[18:51:32] [PASSED] 3 VFs
[18:51:32] [PASSED] 4 VFs
[18:51:32] [PASSED] 5 VFs
[18:51:32] [PASSED] 6 VFs
[18:51:32] [PASSED] 7 VFs
[18:51:32] [PASSED] 8 VFs
[18:51:32] [PASSED] 9 VFs
[18:51:32] [PASSED] 10 VFs
[18:51:32] [PASSED] 11 VFs
[18:51:32] [PASSED] 12 VFs
[18:51:32] [PASSED] 13 VFs
[18:51:32] [PASSED] 14 VFs
[18:51:32] [PASSED] 15 VFs
[18:51:32] [PASSED] 16 VFs
[18:51:32] [PASSED] 17 VFs
[18:51:32] [PASSED] 18 VFs
[18:51:32] [PASSED] 19 VFs
[18:51:32] [PASSED] 20 VFs
[18:51:32] [PASSED] 21 VFs
[18:51:32] [PASSED] 22 VFs
[18:51:32] [PASSED] 23 VFs
[18:51:32] [PASSED] 24 VFs
[18:51:32] [PASSED] 25 VFs
[18:51:32] [PASSED] 26 VFs
[18:51:32] [PASSED] 27 VFs
[18:51:32] [PASSED] 28 VFs
[18:51:32] [PASSED] 29 VFs
[18:51:32] [PASSED] 30 VFs
[18:51:32] [PASSED] 31 VFs
[18:51:32] [PASSED] 32 VFs
[18:51:32] [PASSED] 33 VFs
[18:51:32] [PASSED] 34 VFs
[18:51:32] [PASSED] 35 VFs
[18:51:32] [PASSED] 36 VFs
[18:51:32] [PASSED] 37 VFs
[18:51:32] [PASSED] 38 VFs
[18:51:32] [PASSED] 39 VFs
[18:51:32] [PASSED] 40 VFs
[18:51:32] [PASSED] 41 VFs
[18:51:32] [PASSED] 42 VFs
[18:51:32] [PASSED] 43 VFs
[18:51:32] [PASSED] 44 VFs
[18:51:32] [PASSED] 45 VFs
[18:51:32] [PASSED] 46 VFs
[18:51:32] [PASSED] 47 VFs
[18:51:32] [PASSED] 48 VFs
[18:51:32] [PASSED] 49 VFs
[18:51:32] [PASSED] 50 VFs
[18:51:32] [PASSED] 51 VFs
[18:51:32] [PASSED] 52 VFs
[18:51:32] [PASSED] 53 VFs
[18:51:32] [PASSED] 54 VFs
[18:51:32] [PASSED] 55 VFs
[18:51:32] [PASSED] 56 VFs
[18:51:32] [PASSED] 57 VFs
[18:51:32] [PASSED] 58 VFs
[18:51:32] [PASSED] 59 VFs
[18:51:32] [PASSED] 60 VFs
[18:51:32] [PASSED] 61 VFs
[18:51:32] [PASSED] 62 VFs
[18:51:32] [PASSED] 63 VFs
[18:51:32] ==================== [PASSED] fair_vram ====================
[18:51:32] ================== [PASSED] pf_gt_config ===================
[18:51:32] ===================== lmtt (1 subtest) =====================
[18:51:32] ======================== test_ops =========================
[18:51:32] [PASSED] 2-level
[18:51:32] [PASSED] multi-level
[18:51:32] ==================== [PASSED] test_ops =====================
[18:51:32] ====================== [PASSED] lmtt =======================
[18:51:32] ================= sriov_packet (1 subtest) =================
[18:51:32] [PASSED] test_descriptor_init
[18:51:32] ================== [PASSED] sriov_packet ===================
[18:51:32] ================= pf_service (11 subtests) =================
[18:51:32] [PASSED] pf_negotiate_any
[18:51:32] [PASSED] pf_negotiate_base_match
[18:51:32] [PASSED] pf_negotiate_base_newer
[18:51:32] [PASSED] pf_negotiate_base_next
[18:51:32] [SKIPPED] pf_negotiate_base_older (no older minor)
[18:51:32] [PASSED] pf_negotiate_base_prev
[18:51:32] [PASSED] pf_negotiate_latest_match
[18:51:32] [PASSED] pf_negotiate_latest_newer
[18:51:32] [PASSED] pf_negotiate_latest_next
[18:51:32] [SKIPPED] pf_negotiate_latest_older (no older minor)
[18:51:32] [SKIPPED] pf_negotiate_latest_prev (no prev major)
[18:51:32] =================== [PASSED] pf_service ====================
[18:51:32] ================= xe_guc_g2g (2 subtests) ==================
[18:51:32] ============== xe_live_guc_g2g_kunit_default ==============
[18:51:32] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[18:51:32] ============== xe_live_guc_g2g_kunit_allmem ===============
[18:51:32] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[18:51:32] =================== [SKIPPED] xe_guc_g2g ===================
[18:51:32] =================== xe_mocs (2 subtests) ===================
[18:51:32] ================ xe_live_mocs_kernel_kunit ================
[18:51:32] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[18:51:32] ================ xe_live_mocs_reset_kunit =================
[18:51:32] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[18:51:32] ==================== [SKIPPED] xe_mocs =====================
[18:51:32] ================= xe_migrate (2 subtests) ==================
[18:51:32] ================= xe_migrate_sanity_kunit =================
[18:51:32] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[18:51:32] ================== xe_validate_ccs_kunit ==================
[18:51:32] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[18:51:32] =================== [SKIPPED] xe_migrate ===================
[18:51:32] ================== xe_dma_buf (1 subtest) ==================
[18:51:32] ==================== xe_dma_buf_kunit =====================
[18:51:32] ================ [SKIPPED] xe_dma_buf_kunit ================
[18:51:32] =================== [SKIPPED] xe_dma_buf ===================
[18:51:32] ================= xe_bo_shrink (1 subtest) =================
[18:51:32] =================== xe_bo_shrink_kunit ====================
[18:51:32] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[18:51:32] ================== [SKIPPED] xe_bo_shrink ==================
[18:51:32] ==================== xe_bo (2 subtests) ====================
[18:51:32] ================== xe_ccs_migrate_kunit ===================
[18:51:32] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[18:51:32] ==================== xe_bo_evict_kunit ====================
[18:51:32] =============== [SKIPPED] xe_bo_evict_kunit ================
[18:51:32] ===================== [SKIPPED] xe_bo ======================
[18:51:32] =================== xe_any (9 subtests) ====================
[18:51:32] [PASSED] test_to_xe
[18:51:32] [PASSED] test_to_dev
[18:51:32] [PASSED] test_to_pdev
[18:51:32] [PASSED] test_to_drm
[18:51:32] [PASSED] test_if_pdev
[18:51:32] [PASSED] test_if_xe
[18:51:32] [PASSED] test_if_tile
[18:51:32] [PASSED] test_if_gt
[18:51:32] [PASSED] test_to_id
[18:51:32] ===================== [PASSED] xe_any ======================
[18:51:32] ==================== args (13 subtests) ====================
[18:51:32] [PASSED] count_args_test
[18:51:32] [PASSED] call_args_example
[18:51:32] [PASSED] call_args_test
[18:51:32] [PASSED] drop_first_arg_example
[18:51:32] [PASSED] drop_first_arg_test
[18:51:32] [PASSED] first_arg_example
[18:51:32] [PASSED] first_arg_test
[18:51:32] [PASSED] last_arg_example
[18:51:32] [PASSED] last_arg_test
[18:51:32] [PASSED] pick_arg_example
[18:51:32] [PASSED] if_args_example
[18:51:32] [PASSED] if_args_test
[18:51:32] [PASSED] sep_comma_example
[18:51:32] ====================== [PASSED] args =======================
[18:51:32] =================== xe_pci (3 subtests) ====================
[18:51:32] ==================== check_graphics_ip ====================
[18:51:32] [PASSED] 12.00 Xe_LP
[18:51:32] [PASSED] 12.10 Xe_LP+
[18:51:32] [PASSED] 12.55 Xe_HPG
[18:51:32] [PASSED] 12.60 Xe_HPC
[18:51:32] [PASSED] 12.70 Xe_LPG
[18:51:32] [PASSED] 12.71 Xe_LPG
[18:51:32] [PASSED] 12.74 Xe_LPG+
[18:51:32] [PASSED] 20.01 Xe2_HPG
[18:51:32] [PASSED] 20.02 Xe2_HPG
[18:51:32] [PASSED] 20.04 Xe2_LPG
[18:51:32] [PASSED] 30.00 Xe3_LPG
[18:51:32] [PASSED] 30.01 Xe3_LPG
[18:51:32] [PASSED] 30.03 Xe3_LPG
[18:51:32] [PASSED] 30.04 Xe3_LPG
[18:51:32] [PASSED] 30.05 Xe3_LPG
[18:51:32] [PASSED] 35.10 Xe3p_LPG
[18:51:32] [PASSED] 35.11 Xe3p_XPC
[18:51:32] ================ [PASSED] check_graphics_ip ================
[18:51:32] ===================== check_media_ip ======================
[18:51:32] [PASSED] 12.00 Xe_M
[18:51:32] [PASSED] 12.55 Xe_HPM
[18:51:32] [PASSED] 13.00 Xe_LPM+
[18:51:32] [PASSED] 13.01 Xe2_HPM
[18:51:32] [PASSED] 20.00 Xe2_LPM
[18:51:32] [PASSED] 30.00 Xe3_LPM
[18:51:32] [PASSED] 30.02 Xe3_LPM
[18:51:32] [PASSED] 35.00 Xe3p_LPM
[18:51:32] [PASSED] 35.03 Xe3p_HPM
[18:51:32] ================= [PASSED] check_media_ip ==================
[18:51:32] =================== check_platform_desc ===================
[18:51:32] [PASSED] 0x9A60 (TIGERLAKE)
[18:51:32] [PASSED] 0x9A68 (TIGERLAKE)
[18:51:32] [PASSED] 0x9A70 (TIGERLAKE)
[18:51:32] [PASSED] 0x9A40 (TIGERLAKE)
[18:51:32] [PASSED] 0x9A49 (TIGERLAKE)
[18:51:32] [PASSED] 0x9A59 (TIGERLAKE)
[18:51:32] [PASSED] 0x9A78 (TIGERLAKE)
[18:51:32] [PASSED] 0x9AC0 (TIGERLAKE)
[18:51:32] [PASSED] 0x9AC9 (TIGERLAKE)
[18:51:32] [PASSED] 0x9AD9 (TIGERLAKE)
[18:51:32] [PASSED] 0x9AF8 (TIGERLAKE)
[18:51:32] [PASSED] 0x4C80 (ROCKETLAKE)
[18:51:32] [PASSED] 0x4C8A (ROCKETLAKE)
[18:51:32] [PASSED] 0x4C8B (ROCKETLAKE)
[18:51:32] [PASSED] 0x4C8C (ROCKETLAKE)
[18:51:32] [PASSED] 0x4C90 (ROCKETLAKE)
[18:51:32] [PASSED] 0x4C9A (ROCKETLAKE)
[18:51:32] [PASSED] 0x4680 (ALDERLAKE_S)
[18:51:32] [PASSED] 0x4682 (ALDERLAKE_S)
[18:51:32] [PASSED] 0x4688 (ALDERLAKE_S)
[18:51:32] [PASSED] 0x468A (ALDERLAKE_S)
[18:51:32] [PASSED] 0x468B (ALDERLAKE_S)
[18:51:32] [PASSED] 0x4690 (ALDERLAKE_S)
[18:51:32] [PASSED] 0x4692 (ALDERLAKE_S)
[18:51:32] [PASSED] 0x4693 (ALDERLAKE_S)
[18:51:32] [PASSED] 0x46A0 (ALDERLAKE_P)
[18:51:32] [PASSED] 0x46A1 (ALDERLAKE_P)
[18:51:32] [PASSED] 0x46A2 (ALDERLAKE_P)
[18:51:32] [PASSED] 0x46A3 (ALDERLAKE_P)
[18:51:32] [PASSED] 0x46A6 (ALDERLAKE_P)
[18:51:32] [PASSED] 0x46A8 (ALDERLAKE_P)
[18:51:32] [PASSED] 0x46AA (ALDERLAKE_P)
[18:51:32] [PASSED] 0x462A (ALDERLAKE_P)
[18:51:32] [PASSED] 0x4626 (ALDERLAKE_P)
[18:51:32] [PASSED] 0x4628 (ALDERLAKE_P)
[18:51:32] [PASSED] 0x46B0 (ALDERLAKE_P)
[18:51:32] [PASSED] 0x46B1 (ALDERLAKE_P)
[18:51:32] [PASSED] 0x46B2 (ALDERLAKE_P)
[18:51:32] [PASSED] 0x46B3 (ALDERLAKE_P)
[18:51:32] [PASSED] 0x46C0 (ALDERLAKE_P)
[18:51:32] [PASSED] 0x46C1 (ALDERLAKE_P)
[18:51:32] [PASSED] 0x46C2 (ALDERLAKE_P)
[18:51:32] [PASSED] 0x46C3 (ALDERLAKE_P)
[18:51:32] [PASSED] 0x46D0 (ALDERLAKE_N)
[18:51:32] [PASSED] 0x46D1 (ALDERLAKE_N)
[18:51:32] [PASSED] 0x46D2 (ALDERLAKE_N)
[18:51:32] [PASSED] 0x46D3 (ALDERLAKE_N)
[18:51:32] [PASSED] 0x46D4 (ALDERLAKE_N)
[18:51:32] [PASSED] 0xA721 (ALDERLAKE_P)
[18:51:32] [PASSED] 0xA7A1 (ALDERLAKE_P)
[18:51:32] [PASSED] 0xA7A9 (ALDERLAKE_P)
[18:51:32] [PASSED] 0xA7AC (ALDERLAKE_P)
[18:51:32] [PASSED] 0xA7AD (ALDERLAKE_P)
[18:51:32] [PASSED] 0xA720 (ALDERLAKE_P)
[18:51:32] [PASSED] 0xA7A0 (ALDERLAKE_P)
[18:51:32] [PASSED] 0xA7A8 (ALDERLAKE_P)
[18:51:32] [PASSED] 0xA7AA (ALDERLAKE_P)
[18:51:32] [PASSED] 0xA7AB (ALDERLAKE_P)
[18:51:32] [PASSED] 0xA780 (ALDERLAKE_S)
[18:51:32] [PASSED] 0xA781 (ALDERLAKE_S)
[18:51:32] [PASSED] 0xA782 (ALDERLAKE_S)
[18:51:32] [PASSED] 0xA783 (ALDERLAKE_S)
[18:51:32] [PASSED] 0xA788 (ALDERLAKE_S)
[18:51:32] [PASSED] 0xA789 (ALDERLAKE_S)
[18:51:32] [PASSED] 0xA78A (ALDERLAKE_S)
[18:51:32] [PASSED] 0xA78B (ALDERLAKE_S)
[18:51:32] [PASSED] 0x4905 (DG1)
[18:51:32] [PASSED] 0x4906 (DG1)
[18:51:32] [PASSED] 0x4907 (DG1)
[18:51:32] [PASSED] 0x4908 (DG1)
[18:51:32] [PASSED] 0x4909 (DG1)
[18:51:32] [PASSED] 0x56C0 (DG2)
[18:51:32] [PASSED] 0x56C2 (DG2)
[18:51:32] [PASSED] 0x56C1 (DG2)
[18:51:32] [PASSED] 0x7D51 (METEORLAKE)
[18:51:32] [PASSED] 0x7DD1 (METEORLAKE)
[18:51:32] [PASSED] 0x7D41 (METEORLAKE)
[18:51:32] [PASSED] 0x7D67 (METEORLAKE)
[18:51:32] [PASSED] 0xB640 (METEORLAKE)
[18:51:32] [PASSED] 0x56A0 (DG2)
[18:51:32] [PASSED] 0x56A1 (DG2)
[18:51:32] [PASSED] 0x56A2 (DG2)
[18:51:32] [PASSED] 0x56BE (DG2)
[18:51:32] [PASSED] 0x56BF (DG2)
[18:51:32] [PASSED] 0x5690 (DG2)
[18:51:32] [PASSED] 0x5691 (DG2)
[18:51:32] [PASSED] 0x5692 (DG2)
[18:51:32] [PASSED] 0x56A5 (DG2)
[18:51:32] [PASSED] 0x56A6 (DG2)
[18:51:32] [PASSED] 0x56B0 (DG2)
[18:51:32] [PASSED] 0x56B1 (DG2)
[18:51:32] [PASSED] 0x56BA (DG2)
[18:51:32] [PASSED] 0x56BB (DG2)
[18:51:32] [PASSED] 0x56BC (DG2)
[18:51:32] [PASSED] 0x56BD (DG2)
[18:51:32] [PASSED] 0x5693 (DG2)
[18:51:32] [PASSED] 0x5694 (DG2)
[18:51:32] [PASSED] 0x5695 (DG2)
[18:51:32] [PASSED] 0x56A3 (DG2)
[18:51:32] [PASSED] 0x56A4 (DG2)
[18:51:32] [PASSED] 0x56B2 (DG2)
[18:51:32] [PASSED] 0x56B3 (DG2)
[18:51:32] [PASSED] 0x5696 (DG2)
[18:51:32] [PASSED] 0x5697 (DG2)
[18:51:32] [PASSED] 0xB69 (PVC)
[18:51:32] [PASSED] 0xB6E (PVC)
[18:51:32] [PASSED] 0xBD4 (PVC)
[18:51:32] [PASSED] 0xBD5 (PVC)
[18:51:32] [PASSED] 0xBD6 (PVC)
[18:51:32] [PASSED] 0xBD7 (PVC)
[18:51:32] [PASSED] 0xBD8 (PVC)
[18:51:32] [PASSED] 0xBD9 (PVC)
[18:51:32] [PASSED] 0xBDA (PVC)
[18:51:32] [PASSED] 0xBDB (PVC)
[18:51:32] [PASSED] 0xBE0 (PVC)
[18:51:32] [PASSED] 0xBE1 (PVC)
[18:51:32] [PASSED] 0xBE5 (PVC)
[18:51:32] [PASSED] 0x7D40 (METEORLAKE)
[18:51:32] [PASSED] 0x7D45 (METEORLAKE)
[18:51:32] [PASSED] 0x7D55 (METEORLAKE)
[18:51:32] [PASSED] 0x7D60 (METEORLAKE)
[18:51:32] [PASSED] 0x7DD5 (METEORLAKE)
[18:51:32] [PASSED] 0x6420 (LUNARLAKE)
[18:51:32] [PASSED] 0x64A0 (LUNARLAKE)
[18:51:32] [PASSED] 0x64B0 (LUNARLAKE)
[18:51:32] [PASSED] 0xE202 (BATTLEMAGE)
[18:51:32] [PASSED] 0xE209 (BATTLEMAGE)
[18:51:32] [PASSED] 0xE20B (BATTLEMAGE)
[18:51:32] [PASSED] 0xE20C (BATTLEMAGE)
[18:51:32] [PASSED] 0xE20D (BATTLEMAGE)
[18:51:32] [PASSED] 0xE210 (BATTLEMAGE)
[18:51:32] [PASSED] 0xE211 (BATTLEMAGE)
[18:51:32] [PASSED] 0xE212 (BATTLEMAGE)
[18:51:32] [PASSED] 0xE216 (BATTLEMAGE)
[18:51:32] [PASSED] 0xE220 (BATTLEMAGE)
[18:51:32] [PASSED] 0xE221 (BATTLEMAGE)
[18:51:32] [PASSED] 0xE222 (BATTLEMAGE)
[18:51:32] [PASSED] 0xE223 (BATTLEMAGE)
[18:51:32] [PASSED] 0xB080 (PANTHERLAKE)
[18:51:32] [PASSED] 0xB081 (PANTHERLAKE)
[18:51:32] [PASSED] 0xB082 (PANTHERLAKE)
[18:51:32] [PASSED] 0xB083 (PANTHERLAKE)
[18:51:32] [PASSED] 0xB084 (PANTHERLAKE)
[18:51:32] [PASSED] 0xB085 (PANTHERLAKE)
[18:51:32] [PASSED] 0xB086 (PANTHERLAKE)
[18:51:32] [PASSED] 0xB087 (PANTHERLAKE)
[18:51:32] [PASSED] 0xB08F (PANTHERLAKE)
[18:51:32] [PASSED] 0xB090 (PANTHERLAKE)
[18:51:32] [PASSED] 0xB0A0 (PANTHERLAKE)
[18:51:32] [PASSED] 0xB0B0 (PANTHERLAKE)
[18:51:32] [PASSED] 0xFD80 (PANTHERLAKE)
[18:51:32] [PASSED] 0xFD81 (PANTHERLAKE)
[18:51:32] [PASSED] 0xD740 (NOVALAKE_S)
[18:51:32] [PASSED] 0xD741 (NOVALAKE_S)
[18:51:32] [PASSED] 0xD742 (NOVALAKE_S)
[18:51:32] [PASSED] 0xD743 (NOVALAKE_S)
[18:51:32] [PASSED] 0xD745 (NOVALAKE_S)
[18:51:32] [PASSED] 0xD74A (NOVALAKE_S)
[18:51:32] [PASSED] 0xD74B (NOVALAKE_S)
[18:51:32] [PASSED] 0x674C (CRESCENTISLAND)
[18:51:32] [PASSED] 0x674D (CRESCENTISLAND)
[18:51:32] [PASSED] 0x674E (CRESCENTISLAND)
[18:51:32] [PASSED] 0x674F (CRESCENTISLAND)
[18:51:32] [PASSED] 0x6750 (CRESCENTISLAND)
[18:51:32] [PASSED] 0xD750 (NOVALAKE_P)
[18:51:32] [PASSED] 0xD751 (NOVALAKE_P)
[18:51:32] [PASSED] 0xD752 (NOVALAKE_P)
[18:51:32] [PASSED] 0xD753 (NOVALAKE_P)
[18:51:32] [PASSED] 0xD754 (NOVALAKE_P)
[18:51:32] [PASSED] 0xD755 (NOVALAKE_P)
[18:51:32] [PASSED] 0xD756 (NOVALAKE_P)
[18:51:32] [PASSED] 0xD757 (NOVALAKE_P)
[18:51:32] [PASSED] 0xD75F (NOVALAKE_P)
[18:51:32] =============== [PASSED] check_platform_desc ===============
[18:51:32] ===================== [PASSED] xe_pci ======================
[18:51:32] ============= xe_rtp_tables_test (5 subtests) ==============
[18:51:32] ================== xe_rtp_table_gt_test ===================
[18:51:32] [PASSED] gt_was/14011060649
[18:51:32] [PASSED] gt_was/14011059788
[18:51:32] [PASSED] gt_was/14015795083
[18:51:32] [PASSED] gt_was/16021867713
[18:51:32] [PASSED] gt_was/14019449301
[18:51:32] [PASSED] gt_was/16028005424
[18:51:32] [PASSED] gt_was/14026578760
[18:51:32] [PASSED] gt_was/1409420604
[18:51:32] [PASSED] gt_was/1408615072
[18:51:32] [PASSED] gt_was/22010523718
[18:51:32] [PASSED] gt_was/14011006942
[18:51:32] [PASSED] gt_was/14014830051
[18:51:32] [PASSED] gt_was/18018781329
[18:51:32] [PASSED] gt_was/1509235366
[18:51:32] [PASSED] gt_was/18018781329
[18:51:32] [PASSED] gt_was/16016694945
[18:51:32] [PASSED] gt_was/14018575942
[18:51:32] [PASSED] gt_was/22016670082
[18:51:32] [PASSED] gt_was/22016670082
[18:51:32] [PASSED] gt_was/14017421178
[18:51:32] [PASSED] gt_was/16025250150
[18:51:32] [PASSED] gt_was/14021871409
[18:51:32] [PASSED] gt_was/16021865536
[18:51:32] [PASSED] gt_was/14021486841
[18:51:32] [PASSED] gt_was/14025160223
[18:51:32] [PASSED] gt_was/14026144927, 16029437861, 14026127056
[18:51:32] [PASSED] gt_was/14025635424
[18:51:32] [PASSED] gt_was/16028005424
[18:51:32] ============== [PASSED] xe_rtp_table_gt_test ===============
[18:51:32] ================== xe_rtp_table_gt_test ===================
[18:51:32] [PASSED] gt_tunings/Tuning: Blend Fill Caching Optimization Disable
[18:51:32] [PASSED] gt_tunings/Tuning: 32B Access Enable
[18:51:32] [PASSED] gt_tunings/Tuning: L3 cache
[18:51:32] [PASSED] gt_tunings/Tuning: L3 cache - media
[18:51:32] [PASSED] gt_tunings/Tuning: Compression Overfetch
[18:51:32] [PASSED] gt_tunings/Tuning: Compression Overfetch - media
[18:51:32] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3
[18:51:32] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3 - media
[18:51:32] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only
[18:51:32] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only - media
[18:51:32] [PASSED] gt_tunings/Tuning: Stateless compression control
[18:51:32] [PASSED] gt_tunings/Tuning: Stateless compression control - media
[18:51:32] [PASSED] gt_tunings/Tuning: L3 RW flush all Cache
[18:51:32] [PASSED] gt_tunings/Tuning: L3 RW flush all cache - media
[18:51:32] [PASSED] gt_tunings/Tuning: Set STLB Bank Hash Mode to 4KB
[18:51:32] ============== [PASSED] xe_rtp_table_gt_test ===============
[18:51:32] ================== xe_rtp_table_oob_test ==================
[18:51:32] [PASSED] oob_was/1607983814
[18:51:32] [PASSED] oob_was/16010904313
[18:51:32] [PASSED] oob_was/18022495364
[18:51:32] [PASSED] oob_was/22012773006
[18:51:32] [PASSED] oob_was/14014475959
[18:51:32] [PASSED] oob_was/22011391025
[18:51:32] [PASSED] oob_was/22012727170
[18:51:32] [PASSED] oob_was/22012727685
[18:51:32] [PASSED] oob_was/22016596838
[18:51:32] [PASSED] oob_was/18020744125
[18:51:32] [PASSED] oob_was/1409600907
[18:51:32] [PASSED] oob_was/22014953428
[18:51:32] [PASSED] oob_was/16017236439
[18:51:32] [PASSED] oob_was/14019821291
[18:51:32] [PASSED] oob_was/14015076503
[18:51:32] [PASSED] oob_was/14018913170
[18:51:32] [PASSED] oob_was/14018094691
[18:51:32] [PASSED] oob_was/18024947630
[18:51:32] [PASSED] oob_was/16022287689
[18:51:32] [PASSED] oob_was/13011645652
[18:51:32] [PASSED] oob_was/14022293748
[18:51:32] [PASSED] oob_was/22019794406
[18:51:32] [PASSED] oob_was/22019338487
[18:51:32] [PASSED] oob_was/16023588340
[18:51:32] [PASSED] oob_was/14019789679
[18:51:32] [PASSED] oob_was/14022866841
[18:51:32] [PASSED] oob_was/16021333562
[18:51:32] [PASSED] oob_was/14016712196
[18:51:32] [PASSED] oob_was/14015568240
[18:51:32] [PASSED] oob_was/18013179988
[18:51:32] [PASSED] oob_was/1508761755
[18:51:32] [PASSED] oob_was/16023105232
[18:51:32] [PASSED] oob_was/16026508708
[18:51:32] [PASSED] oob_was/14020001231
[18:51:32] [PASSED] oob_was/16023683509
[18:51:32] [PASSED] oob_was/14025515070
[18:51:32] [PASSED] oob_was/15015404425_disable
[18:51:32] [PASSED] oob_was/16026007364
[18:51:32] [PASSED] oob_was/14020316580
[18:51:32] [PASSED] oob_was/14025883347
[18:51:32] [PASSED] oob_was/16029380221
[18:51:32] [PASSED] oob_was/22022079272
[18:51:32] [PASSED] oob_was/16029897822
[18:51:32] [PASSED] oob_was/14027054324
[18:51:32] ============== [PASSED] xe_rtp_table_oob_test ==============
[18:51:32] ================ xe_rtp_table_dev_oob_test ================
[18:51:32] [PASSED] device_oob_was/22010954014
[18:51:32] [PASSED] device_oob_was/15015404425
[18:51:32] [PASSED] device_oob_was/22019338487_display
[18:51:32] [PASSED] device_oob_was/14022085890
[18:51:32] [PASSED] device_oob_was/14026539277
[18:51:32] [PASSED] device_oob_was/14026633728
[18:51:32] [PASSED] device_oob_was/14026746987
[18:51:32] [PASSED] device_oob_was/14026779378
[18:51:32] ============ [PASSED] xe_rtp_table_dev_oob_test ============
[18:51:32] ========== xe_rtp_table_missing_upper_bound_test ==========
[18:51:32] [PASSED] register_whitelist/WaAllowPMDepthAndInvocationCountAccessFromUMD, 1408556865
[18:51:32] [PASSED] register_whitelist/1508744258, 14012131227, 1808121037
[18:51:32] [PASSED] register_whitelist/1806527549
[18:51:32] [PASSED] register_whitelist/allow_read_ctx_timestamp
[18:51:32] [PASSED] register_whitelist/allow_read_queue_timestamp
[18:51:32] [PASSED] register_whitelist/16014440446
[18:51:32] [PASSED] register_whitelist/16017236439
[18:51:32] [PASSED] register_whitelist/16020183090
[18:51:32] [PASSED] register_whitelist/14024997852
[18:51:32] [PASSED] register_whitelist/14024997852
[18:51:32] ====== [PASSED] xe_rtp_table_missing_upper_bound_test ======
[18:51:32] =============== [PASSED] xe_rtp_tables_test ================
[18:51:32] =================== xe_rtp (3 subtests) ====================
[18:51:32] =================== xe_rtp_rules_tests ====================
[18:51:32] [PASSED] no
[18:51:32] [PASSED] yes
[18:51:32] [PASSED] no-and-no
[18:51:32] [PASSED] no-and-yes
[18:51:32] [PASSED] yes-and-no
[18:51:32] [PASSED] yes-and-yes
[18:51:32] [PASSED] no-or-no
[18:51:32] [PASSED] no-or-yes
[18:51:32] [PASSED] yes-or-no
[18:51:32] [PASSED] yes-or-yes
[18:51:32] [PASSED] no-yes-or-yes-no
[18:51:32] [PASSED] no-yes-or-yes-yes
[18:51:32] [PASSED] yes-yes-or-no-yes
[18:51:32] [PASSED] yes-yes-or-yes-yes
[18:51:32] [PASSED] no-no-or-yes-or-no
[18:51:32] [PASSED] or
[18:51:32] [PASSED] or-yes
[18:51:32] [PASSED] or-no
[18:51:32] [PASSED] yes-or
[18:51:32] [PASSED] no-or
[18:51:32] [PASSED] no-or-or-yes
[18:51:32] [PASSED] yes-or-or-no
[18:51:32] [PASSED] no-or-or-no
[18:51:32] [PASSED] missing-context-engine-class
[18:51:32] [PASSED] missing-context-engine-class-or-yes
[18:51:32] [PASSED] missing-context-engine-class-or-or-yes
[18:51:32] =============== [PASSED] xe_rtp_rules_tests ================
[18:51:32] =============== xe_rtp_process_to_sr_tests ================
[18:51:32] [PASSED] coalesce-same-reg
[18:51:32] [PASSED] coalesce-same-reg-literal-and-func
[18:51:32] [PASSED] no-match-no-add
[18:51:32] [PASSED] two-regs-two-entries
[18:51:32] [PASSED] clr-one-set-other
[18:51:32] [PASSED] set-field
[18:51:32] [PASSED] conflict-duplicate
[18:51:32] [PASSED] conflict-not-disjoint
[18:51:32] [PASSED] conflict-not-disjoint-literal-and-func
[18:51:32] [PASSED] conflict-reg-type
[18:51:32] [PASSED] bad-mcr-reg-forced-to-regular
[18:51:32] [PASSED] bad-regular-reg-forced-to-mcr
[18:51:32] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[18:51:32] ================== xe_rtp_process_tests ===================
[18:51:32] [PASSED] active1
[18:51:32] [PASSED] active2
[18:51:32] [PASSED] active-inactive
[18:51:32] [PASSED] inactive-active
[18:51:32] [PASSED] inactive-active-inactive
[18:51:32] [PASSED] inactive-inactive-inactive
[18:51:32] ============== [PASSED] xe_rtp_process_tests ===============
[18:51:32] ===================== [PASSED] xe_rtp ======================
[18:51:32] ==================== xe_wa (1 subtest) =====================
[18:51:32] ======================== xe_wa_gt =========================
[18:51:32] [PASSED] TIGERLAKE B0
[18:51:32] [PASSED] DG1 A0
[18:51:32] [PASSED] DG1 B0
[18:51:32] [PASSED] ALDERLAKE_S A0
[18:51:32] [PASSED] ALDERLAKE_S B0
[18:51:32] [PASSED] ALDERLAKE_S C0
[18:51:32] [PASSED] ALDERLAKE_S D0
[18:51:32] [PASSED] ALDERLAKE_P A0
[18:51:32] [PASSED] ALDERLAKE_P B0
[18:51:32] [PASSED] ALDERLAKE_P C0
[18:51:32] [PASSED] ALDERLAKE_S RPLS D0
[18:51:32] [PASSED] ALDERLAKE_P RPLU E0
[18:51:32] [PASSED] DG2 G10 C0
[18:51:32] [PASSED] DG2 G11 B1
[18:51:32] [PASSED] DG2 G12 A1
[18:51:32] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[18:51:33] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[18:51:33] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[18:51:33] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[18:51:33] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[18:51:33] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[18:51:33] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[18:51:33] ==================== [PASSED] xe_wa_gt =====================
[18:51:33] ====================== [PASSED] xe_wa ======================
[18:51:33] ============================================================
[18:51:33] Testing complete. Ran 793 tests: passed: 765, skipped: 28
[18:51:33] Elapsed time: 36.089s total, 1.859s configuring, 33.464s building, 0.713s running
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/drm/tests/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[18:51:33] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[18:51:34] 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
[18:51:59] Starting KUnit Kernel (1/1)...
[18:51:59] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[18:51:59] ============= refcount_interrupt (4 subtests) ==============
[18:51:59] [PASSED] test_single_irq_change
[18:51:59] [PASSED] test_nested_irq_change
[18:51:59] [PASSED] test_multiple_irq_change
[18:51:59] [PASSED] test_irq_save
[18:51:59] =============== [PASSED] refcount_interrupt ================
[18:51:59] ============ drm_test_pick_cmdline (2 subtests) ============
[18:51:59] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[18:51:59] =============== drm_test_pick_cmdline_named ===============
[18:51:59] [PASSED] NTSC
[18:51:59] [PASSED] NTSC-J
[18:51:59] [PASSED] PAL
[18:51:59] [PASSED] PAL-M
[18:51:59] =========== [PASSED] drm_test_pick_cmdline_named ===========
[18:51:59] ============== [PASSED] drm_test_pick_cmdline ==============
[18:51:59] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[18:51:59] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[18:51:59] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[18:51:59] =========== drm_validate_clone_mode (2 subtests) ===========
[18:51:59] ============== drm_test_check_in_clone_mode ===============
[18:51:59] [PASSED] in_clone_mode
[18:51:59] [PASSED] not_in_clone_mode
[18:51:59] ========== [PASSED] drm_test_check_in_clone_mode ===========
[18:51:59] =============== drm_test_check_valid_clones ===============
[18:51:59] [PASSED] not_in_clone_mode
[18:51:59] [PASSED] valid_clone
[18:51:59] [PASSED] invalid_clone
[18:51:59] =========== [PASSED] drm_test_check_valid_clones ===========
[18:51:59] ============= [PASSED] drm_validate_clone_mode =============
[18:51:59] ============= drm_validate_modeset (1 subtest) =============
[18:51:59] [PASSED] drm_test_check_connector_changed_modeset
[18:51:59] ============== [PASSED] drm_validate_modeset ===============
[18:51:59] ====== drm_test_bridge_get_current_state (1 subtest) =======
[18:51:59] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[18:51:59] ======== [PASSED] drm_test_bridge_get_current_state ========
[18:51:59] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[18:51:59] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[18:51:59] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[18:51:59] [PASSED] drm_test_drm_bridge_helper_hdmi_output_bus_fmts
[18:51:59] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[18:51:59] ============== drm_bridge_alloc (2 subtests) ===============
[18:51:59] [PASSED] drm_test_drm_bridge_alloc_basic
[18:51:59] [PASSED] drm_test_drm_bridge_alloc_get_put
[18:51:59] ================ [PASSED] drm_bridge_alloc =================
[18:51:59] ============= drm_bridge_bus_fmt (5 subtests) ==============
[18:51:59] [PASSED] drm_test_bridge_rgb_yuv_rgb
[18:51:59] [PASSED] drm_test_bridge_must_convert_to_yuv444
[18:51:59] [PASSED] drm_test_bridge_hdmi_auto_rgb
[18:51:59] [PASSED] drm_test_bridge_auto_first
[18:51:59] [PASSED] drm_test_bridge_rgb_yuv_no_path
[18:51:59] =============== [PASSED] drm_bridge_bus_fmt ================
[18:51:59] ============= drm_cmdline_parser (40 subtests) =============
[18:51:59] [PASSED] drm_test_cmdline_force_d_only
[18:51:59] [PASSED] drm_test_cmdline_force_D_only_dvi
[18:51:59] [PASSED] drm_test_cmdline_force_D_only_hdmi
[18:51:59] [PASSED] drm_test_cmdline_force_D_only_not_digital
[18:51:59] [PASSED] drm_test_cmdline_force_e_only
[18:51:59] [PASSED] drm_test_cmdline_res
[18:51:59] [PASSED] drm_test_cmdline_res_vesa
[18:51:59] [PASSED] drm_test_cmdline_res_vesa_rblank
[18:51:59] [PASSED] drm_test_cmdline_res_rblank
[18:51:59] [PASSED] drm_test_cmdline_res_bpp
[18:51:59] [PASSED] drm_test_cmdline_res_refresh
[18:51:59] [PASSED] drm_test_cmdline_res_bpp_refresh
[18:51:59] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[18:51:59] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[18:51:59] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[18:51:59] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[18:51:59] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[18:51:59] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[18:51:59] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[18:51:59] [PASSED] drm_test_cmdline_res_margins_force_on
[18:51:59] [PASSED] drm_test_cmdline_res_vesa_margins
[18:51:59] [PASSED] drm_test_cmdline_name
[18:51:59] [PASSED] drm_test_cmdline_name_bpp
[18:51:59] [PASSED] drm_test_cmdline_name_option
[18:51:59] [PASSED] drm_test_cmdline_name_bpp_option
[18:51:59] [PASSED] drm_test_cmdline_rotate_0
[18:51:59] [PASSED] drm_test_cmdline_rotate_90
[18:51:59] [PASSED] drm_test_cmdline_rotate_180
[18:51:59] [PASSED] drm_test_cmdline_rotate_270
[18:51:59] [PASSED] drm_test_cmdline_hmirror
[18:51:59] [PASSED] drm_test_cmdline_vmirror
[18:51:59] [PASSED] drm_test_cmdline_margin_options
[18:51:59] [PASSED] drm_test_cmdline_multiple_options
[18:51:59] [PASSED] drm_test_cmdline_bpp_extra_and_option
[18:51:59] [PASSED] drm_test_cmdline_extra_and_option
[18:51:59] [PASSED] drm_test_cmdline_freestanding_options
[18:51:59] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[18:51:59] [PASSED] drm_test_cmdline_panel_orientation
[18:51:59] ================ drm_test_cmdline_invalid =================
[18:51:59] [PASSED] margin_only
[18:51:59] [PASSED] interlace_only
[18:51:59] [PASSED] res_missing_x
[18:51:59] [PASSED] res_missing_y
[18:51:59] [PASSED] res_bad_y
[18:51:59] [PASSED] res_missing_y_bpp
[18:51:59] [PASSED] res_bad_bpp
[18:51:59] [PASSED] res_bad_refresh
[18:51:59] [PASSED] res_bpp_refresh_force_on_off
[18:51:59] [PASSED] res_invalid_mode
[18:51:59] [PASSED] res_bpp_wrong_place_mode
[18:51:59] [PASSED] name_bpp_refresh
[18:51:59] [PASSED] name_refresh
[18:51:59] [PASSED] name_refresh_wrong_mode
[18:51:59] [PASSED] name_refresh_invalid_mode
[18:51:59] [PASSED] rotate_multiple
[18:51:59] [PASSED] rotate_invalid_val
[18:51:59] [PASSED] rotate_truncated
[18:51:59] [PASSED] invalid_option
[18:51:59] [PASSED] invalid_tv_option
[18:51:59] [PASSED] truncated_tv_option
[18:51:59] ============ [PASSED] drm_test_cmdline_invalid =============
[18:51:59] =============== drm_test_cmdline_tv_options ===============
[18:51:59] [PASSED] NTSC
[18:51:59] [PASSED] NTSC_443
[18:51:59] [PASSED] NTSC_J
[18:51:59] [PASSED] PAL
[18:51:59] [PASSED] PAL_M
[18:51:59] [PASSED] PAL_N
[18:51:59] [PASSED] SECAM
[18:51:59] [PASSED] MONO_525
[18:51:59] [PASSED] MONO_625
[18:51:59] =========== [PASSED] drm_test_cmdline_tv_options ===========
[18:51:59] =============== [PASSED] drm_cmdline_parser ================
[18:51:59] ========== drmm_connector_hdmi_init (20 subtests) ==========
[18:51:59] [PASSED] drm_test_connector_hdmi_init_valid
[18:51:59] [PASSED] drm_test_connector_hdmi_init_bpc_8
[18:51:59] [PASSED] drm_test_connector_hdmi_init_bpc_10
[18:51:59] [PASSED] drm_test_connector_hdmi_init_bpc_12
[18:51:59] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[18:51:59] [PASSED] drm_test_connector_hdmi_init_bpc_null
[18:51:59] [PASSED] drm_test_connector_hdmi_init_formats_empty
[18:51:59] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[18:51:59] === drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[18:51:59] [PASSED] supported_formats=0x9 yuv420_allowed=1
[18:51:59] [PASSED] supported_formats=0x9 yuv420_allowed=0
[18:51:59] [PASSED] supported_formats=0x5 yuv420_allowed=1
[18:51:59] [PASSED] supported_formats=0x5 yuv420_allowed=0
[18:51:59] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[18:51:59] [PASSED] drm_test_connector_hdmi_init_null_ddc
[18:51:59] [PASSED] drm_test_connector_hdmi_init_null_product
[18:51:59] [PASSED] drm_test_connector_hdmi_init_null_vendor
[18:51:59] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[18:51:59] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[18:51:59] [PASSED] drm_test_connector_hdmi_init_product_valid
[18:51:59] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[18:51:59] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[18:51:59] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[18:51:59] ========= drm_test_connector_hdmi_init_type_valid =========
[18:51:59] [PASSED] HDMI-A
[18:51:59] [PASSED] HDMI-B
[18:51:59] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[18:51:59] ======== drm_test_connector_hdmi_init_type_invalid ========
[18:51:59] [PASSED] Unknown
[18:51:59] [PASSED] VGA
[18:51:59] [PASSED] DVI-I
[18:51:59] [PASSED] DVI-D
[18:51:59] [PASSED] DVI-A
[18:51:59] [PASSED] Composite
[18:51:59] [PASSED] SVIDEO
[18:51:59] [PASSED] LVDS
[18:51:59] [PASSED] Component
[18:51:59] [PASSED] DIN
[18:51:59] [PASSED] DP
[18:51:59] [PASSED] TV
[18:51:59] [PASSED] eDP
[18:51:59] [PASSED] Virtual
[18:51:59] [PASSED] DSI
[18:51:59] [PASSED] DPI
[18:51:59] [PASSED] Writeback
[18:51:59] [PASSED] SPI
[18:51:59] [PASSED] USB
[18:51:59] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[18:51:59] ============ [PASSED] drmm_connector_hdmi_init =============
[18:51:59] ============= drmm_connector_init (3 subtests) =============
[18:51:59] [PASSED] drm_test_drmm_connector_init
[18:51:59] [PASSED] drm_test_drmm_connector_init_null_ddc
[18:51:59] ========= drm_test_drmm_connector_init_type_valid =========
[18:51:59] [PASSED] Unknown
[18:51:59] [PASSED] VGA
[18:51:59] [PASSED] DVI-I
[18:51:59] [PASSED] DVI-D
[18:51:59] [PASSED] DVI-A
[18:51:59] [PASSED] Composite
[18:51:59] [PASSED] SVIDEO
[18:51:59] [PASSED] LVDS
[18:51:59] [PASSED] Component
[18:51:59] [PASSED] DIN
[18:51:59] [PASSED] DP
[18:51:59] [PASSED] HDMI-A
[18:51:59] [PASSED] HDMI-B
[18:51:59] [PASSED] TV
[18:51:59] [PASSED] eDP
[18:51:59] [PASSED] Virtual
[18:51:59] [PASSED] DSI
[18:51:59] [PASSED] DPI
[18:51:59] [PASSED] Writeback
[18:51:59] [PASSED] SPI
[18:51:59] [PASSED] USB
[18:51:59] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[18:51:59] =============== [PASSED] drmm_connector_init ===============
[18:51:59] ========= drm_connector_dynamic_init (6 subtests) ==========
[18:51:59] [PASSED] drm_test_drm_connector_dynamic_init
[18:51:59] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[18:51:59] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[18:51:59] [PASSED] drm_test_drm_connector_dynamic_init_properties
[18:51:59] ===== drm_test_drm_connector_dynamic_init_type_valid ======
[18:51:59] [PASSED] Unknown
[18:51:59] [PASSED] VGA
[18:51:59] [PASSED] DVI-I
[18:51:59] [PASSED] DVI-D
[18:51:59] [PASSED] DVI-A
[18:51:59] [PASSED] Composite
[18:51:59] [PASSED] SVIDEO
[18:51:59] [PASSED] LVDS
[18:51:59] [PASSED] Component
[18:51:59] [PASSED] DIN
[18:51:59] [PASSED] DP
[18:51:59] [PASSED] HDMI-A
[18:51:59] [PASSED] HDMI-B
[18:51:59] [PASSED] TV
[18:51:59] [PASSED] eDP
[18:51:59] [PASSED] Virtual
[18:51:59] [PASSED] DSI
[18:51:59] [PASSED] DPI
[18:51:59] [PASSED] Writeback
[18:51:59] [PASSED] SPI
[18:51:59] [PASSED] USB
[18:51:59] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[18:51:59] ======== drm_test_drm_connector_dynamic_init_name =========
[18:51:59] [PASSED] Unknown
[18:51:59] [PASSED] VGA
[18:51:59] [PASSED] DVI-I
[18:51:59] [PASSED] DVI-D
[18:51:59] [PASSED] DVI-A
[18:51:59] [PASSED] Composite
[18:51:59] [PASSED] SVIDEO
[18:51:59] [PASSED] LVDS
[18:51:59] [PASSED] Component
[18:51:59] [PASSED] DIN
[18:51:59] [PASSED] DP
[18:51:59] [PASSED] HDMI-A
[18:51:59] [PASSED] HDMI-B
[18:51:59] [PASSED] TV
[18:51:59] [PASSED] eDP
[18:51:59] [PASSED] Virtual
[18:51:59] [PASSED] DSI
[18:51:59] [PASSED] DPI
[18:51:59] [PASSED] Writeback
[18:51:59] [PASSED] SPI
[18:51:59] [PASSED] USB
[18:51:59] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[18:51:59] =========== [PASSED] drm_connector_dynamic_init ============
[18:51:59] ==== drm_connector_dynamic_register_early (4 subtests) =====
[18:51:59] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[18:51:59] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[18:51:59] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[18:51:59] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[18:51:59] ====== [PASSED] drm_connector_dynamic_register_early =======
[18:51:59] ======= drm_connector_dynamic_register (7 subtests) ========
[18:51:59] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[18:51:59] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[18:51:59] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[18:51:59] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[18:51:59] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[18:51:59] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[18:51:59] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[18:51:59] ========= [PASSED] drm_connector_dynamic_register ==========
[18:51:59] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[18:51:59] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[18:51:59] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[18:51:59] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[18:51:59] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[18:51:59] ========== drm_test_get_tv_mode_from_name_valid ===========
[18:51:59] [PASSED] NTSC
[18:51:59] [PASSED] NTSC-443
[18:51:59] [PASSED] NTSC-J
[18:51:59] [PASSED] PAL
[18:51:59] [PASSED] PAL-M
[18:51:59] [PASSED] PAL-N
[18:51:59] [PASSED] SECAM
[18:51:59] [PASSED] Mono
[18:51:59] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[18:51:59] [PASSED] drm_test_get_tv_mode_from_name_truncated
[18:51:59] ============ [PASSED] drm_get_tv_mode_from_name ============
[18:51:59] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[18:51:59] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[18:51:59] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[18:51:59] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[18:51:59] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[18:51:59] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[18:51:59] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[18:51:59] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid =
[18:51:59] [PASSED] VIC 96
[18:51:59] [PASSED] VIC 97
[18:51:59] [PASSED] VIC 101
[18:51:59] [PASSED] VIC 102
[18:51:59] [PASSED] VIC 106
[18:51:59] [PASSED] VIC 107
[18:51:59] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[18:51:59] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[18:51:59] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[18:51:59] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[18:51:59] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[18:51:59] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[18:51:59] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[18:51:59] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[18:51:59] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ====
[18:51:59] [PASSED] Automatic
[18:51:59] [PASSED] Full
[18:51:59] [PASSED] Limited 16:235
[18:51:59] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[18:51:59] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[18:51:59] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[18:51:59] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[18:51:59] === drm_test_drm_hdmi_connector_get_output_format_name ====
[18:51:59] [PASSED] RGB
[18:51:59] [PASSED] YUV 4:2:0
[18:51:59] [PASSED] YUV 4:2:2
[18:51:59] [PASSED] YUV 4:4:4
[18:51:59] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[18:51:59] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[18:51:59] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[18:51:59] ============= drm_damage_helper (21 subtests) ==============
[18:51:59] [PASSED] drm_test_damage_iter_no_damage
[18:51:59] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[18:51:59] [PASSED] drm_test_damage_iter_no_damage_src_moved
[18:51:59] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[18:51:59] [PASSED] drm_test_damage_iter_no_damage_not_visible
[18:51:59] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[18:51:59] [PASSED] drm_test_damage_iter_no_damage_no_fb
[18:51:59] [PASSED] drm_test_damage_iter_simple_damage
[18:51:59] [PASSED] drm_test_damage_iter_single_damage
[18:51:59] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[18:51:59] [PASSED] drm_test_damage_iter_single_damage_outside_src
[18:51:59] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[18:51:59] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[18:51:59] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[18:51:59] [PASSED] drm_test_damage_iter_single_damage_src_moved
[18:51:59] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[18:51:59] [PASSED] drm_test_damage_iter_damage
[18:51:59] [PASSED] drm_test_damage_iter_damage_one_intersect
[18:51:59] [PASSED] drm_test_damage_iter_damage_one_outside
[18:51:59] [PASSED] drm_test_damage_iter_damage_src_moved
[18:51:59] [PASSED] drm_test_damage_iter_damage_not_visible
[18:51:59] ================ [PASSED] drm_damage_helper ================
[18:51:59] ============== drm_dp_mst_helper (3 subtests) ==============
[18:51:59] ============== drm_test_dp_mst_calc_pbn_mode ==============
[18:51:59] [PASSED] Clock 154000 BPP 30 DSC disabled
[18:51:59] [PASSED] Clock 234000 BPP 30 DSC disabled
[18:51:59] [PASSED] Clock 297000 BPP 24 DSC disabled
[18:51:59] [PASSED] Clock 332880 BPP 24 DSC enabled
[18:51:59] [PASSED] Clock 324540 BPP 24 DSC enabled
[18:51:59] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[18:51:59] ============== drm_test_dp_mst_calc_pbn_div ===============
[18:51:59] [PASSED] Link rate 2000000 lane count 4
[18:51:59] [PASSED] Link rate 2000000 lane count 2
[18:51:59] [PASSED] Link rate 2000000 lane count 1
[18:51:59] [PASSED] Link rate 1350000 lane count 4
[18:51:59] [PASSED] Link rate 1350000 lane count 2
[18:51:59] [PASSED] Link rate 1350000 lane count 1
[18:51:59] [PASSED] Link rate 1000000 lane count 4
[18:51:59] [PASSED] Link rate 1000000 lane count 2
[18:51:59] [PASSED] Link rate 1000000 lane count 1
[18:51:59] [PASSED] Link rate 810000 lane count 4
[18:51:59] [PASSED] Link rate 810000 lane count 2
[18:51:59] [PASSED] Link rate 810000 lane count 1
[18:51:59] [PASSED] Link rate 540000 lane count 4
[18:51:59] [PASSED] Link rate 540000 lane count 2
[18:51:59] [PASSED] Link rate 540000 lane count 1
[18:51:59] [PASSED] Link rate 270000 lane count 4
[18:51:59] [PASSED] Link rate 270000 lane count 2
[18:51:59] [PASSED] Link rate 270000 lane count 1
[18:51:59] [PASSED] Link rate 162000 lane count 4
[18:51:59] [PASSED] Link rate 162000 lane count 2
[18:51:59] [PASSED] Link rate 162000 lane count 1
[18:51:59] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[18:51:59] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[18:51:59] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[18:51:59] [PASSED] DP_POWER_UP_PHY with port number
[18:51:59] [PASSED] DP_POWER_DOWN_PHY with port number
[18:51:59] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[18:51:59] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[18:51:59] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[18:51:59] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[18:51:59] [PASSED] DP_QUERY_PAYLOAD with port number
[18:51:59] [PASSED] DP_QUERY_PAYLOAD with VCPI
[18:51:59] [PASSED] DP_REMOTE_DPCD_READ with port number
[18:51:59] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[18:51:59] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[18:51:59] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[18:51:59] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[18:51:59] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[18:51:59] [PASSED] DP_REMOTE_I2C_READ with port number
[18:51:59] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[18:51:59] [PASSED] DP_REMOTE_I2C_READ with transactions array
[18:51:59] [PASSED] DP_REMOTE_I2C_WRITE with port number
[18:51:59] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[18:51:59] [PASSED] DP_REMOTE_I2C_WRITE with data array
[18:51:59] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[18:51:59] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[18:51:59] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[18:51:59] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[18:51:59] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[18:51:59] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[18:51:59] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[18:51:59] ================ [PASSED] drm_dp_mst_helper ================
[18:51:59] ================== drm_exec (7 subtests) ===================
[18:51:59] [PASSED] sanitycheck
[18:51:59] [PASSED] test_lock
[18:51:59] [PASSED] test_lock_unlock
[18:51:59] [PASSED] test_duplicates
[18:51:59] [PASSED] test_prepare
[18:51:59] [PASSED] test_prepare_array
[18:51:59] [PASSED] test_multiple_loops
[18:51:59] ==================== [PASSED] drm_exec =====================
[18:51:59] =========== drm_format_helper_test (17 subtests) ===========
[18:51:59] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[18:51:59] [PASSED] single_pixel_source_buffer
[18:51:59] [PASSED] single_pixel_clip_rectangle
[18:51:59] [PASSED] well_known_colors
[18:51:59] [PASSED] destination_pitch
[18:51:59] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[18:51:59] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[18:51:59] [PASSED] single_pixel_source_buffer
[18:51:59] [PASSED] single_pixel_clip_rectangle
[18:51:59] [PASSED] well_known_colors
[18:51:59] [PASSED] destination_pitch
[18:51:59] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[18:51:59] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[18:51:59] [PASSED] single_pixel_source_buffer
[18:51:59] [PASSED] single_pixel_clip_rectangle
[18:51:59] [PASSED] well_known_colors
[18:51:59] [PASSED] destination_pitch
[18:51:59] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[18:51:59] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[18:51:59] [PASSED] single_pixel_source_buffer
[18:51:59] [PASSED] single_pixel_clip_rectangle
[18:51:59] [PASSED] well_known_colors
[18:51:59] [PASSED] destination_pitch
[18:51:59] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[18:51:59] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[18:51:59] [PASSED] single_pixel_source_buffer
[18:51:59] [PASSED] single_pixel_clip_rectangle
[18:51:59] [PASSED] well_known_colors
[18:51:59] [PASSED] destination_pitch
[18:51:59] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[18:51:59] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[18:51:59] [PASSED] single_pixel_source_buffer
[18:51:59] [PASSED] single_pixel_clip_rectangle
[18:51:59] [PASSED] well_known_colors
[18:51:59] [PASSED] destination_pitch
[18:51:59] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[18:51:59] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[18:51:59] [PASSED] single_pixel_source_buffer
[18:51:59] [PASSED] single_pixel_clip_rectangle
[18:51:59] [PASSED] well_known_colors
[18:51:59] [PASSED] destination_pitch
[18:51:59] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[18:51:59] ============= drm_test_fb_xrgb8888_to_bgr888 ==============
[18:51:59] [PASSED] single_pixel_source_buffer
[18:51:59] [PASSED] single_pixel_clip_rectangle
[18:51:59] [PASSED] well_known_colors
[18:51:59] [PASSED] destination_pitch
[18:51:59] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[18:51:59] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[18:51:59] [PASSED] single_pixel_source_buffer
[18:51:59] [PASSED] single_pixel_clip_rectangle
[18:51:59] [PASSED] well_known_colors
[18:51:59] [PASSED] destination_pitch
[18:51:59] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[18:51:59] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[18:51:59] [PASSED] single_pixel_source_buffer
[18:51:59] [PASSED] single_pixel_clip_rectangle
[18:51:59] [PASSED] well_known_colors
[18:51:59] [PASSED] destination_pitch
[18:51:59] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[18:51:59] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[18:51:59] [PASSED] single_pixel_source_buffer
[18:51:59] [PASSED] single_pixel_clip_rectangle
[18:51:59] [PASSED] well_known_colors
[18:51:59] [PASSED] destination_pitch
[18:51:59] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[18:51:59] ============== drm_test_fb_xrgb8888_to_mono ===============
[18:51:59] [PASSED] single_pixel_source_buffer
[18:51:59] [PASSED] single_pixel_clip_rectangle
[18:51:59] [PASSED] well_known_colors
[18:51:59] [PASSED] destination_pitch
[18:51:59] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[18:51:59] ==================== drm_test_fb_swab =====================
[18:51:59] [PASSED] single_pixel_source_buffer
[18:51:59] [PASSED] single_pixel_clip_rectangle
[18:51:59] [PASSED] well_known_colors
[18:51:59] [PASSED] destination_pitch
[18:51:59] ================ [PASSED] drm_test_fb_swab =================
[18:51:59] ============ drm_test_fb_xrgb8888_to_xbgr8888 =============
[18:51:59] [PASSED] single_pixel_source_buffer
[18:51:59] [PASSED] single_pixel_clip_rectangle
[18:51:59] [PASSED] well_known_colors
[18:51:59] [PASSED] destination_pitch
[18:51:59] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[18:51:59] ============ drm_test_fb_xrgb8888_to_abgr8888 =============
[18:51:59] [PASSED] single_pixel_source_buffer
[18:51:59] [PASSED] single_pixel_clip_rectangle
[18:51:59] [PASSED] well_known_colors
[18:51:59] [PASSED] destination_pitch
[18:51:59] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[18:51:59] ================= drm_test_fb_clip_offset =================
[18:51:59] [PASSED] pass through
[18:51:59] [PASSED] horizontal offset
[18:51:59] [PASSED] vertical offset
[18:51:59] [PASSED] horizontal and vertical offset
[18:51:59] [PASSED] horizontal offset (custom pitch)
[18:51:59] [PASSED] vertical offset (custom pitch)
[18:51:59] [PASSED] horizontal and vertical offset (custom pitch)
[18:51:59] ============= [PASSED] drm_test_fb_clip_offset =============
[18:51:59] =================== drm_test_fb_memcpy ====================
[18:51:59] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[18:51:59] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[18:51:59] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[18:51:59] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[18:51:59] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[18:51:59] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[18:51:59] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[18:51:59] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[18:51:59] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[18:51:59] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[18:51:59] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[18:51:59] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[18:51:59] =============== [PASSED] drm_test_fb_memcpy ================
[18:51:59] ============= [PASSED] drm_format_helper_test ==============
[18:51:59] ================= drm_format (18 subtests) =================
[18:51:59] [PASSED] drm_test_format_block_width_invalid
[18:51:59] [PASSED] drm_test_format_block_width_one_plane
[18:51:59] [PASSED] drm_test_format_block_width_two_plane
[18:51:59] [PASSED] drm_test_format_block_width_three_plane
[18:51:59] [PASSED] drm_test_format_block_width_tiled
[18:51:59] [PASSED] drm_test_format_block_height_invalid
[18:51:59] [PASSED] drm_test_format_block_height_one_plane
[18:51:59] [PASSED] drm_test_format_block_height_two_plane
[18:51:59] [PASSED] drm_test_format_block_height_three_plane
[18:51:59] [PASSED] drm_test_format_block_height_tiled
[18:51:59] [PASSED] drm_test_format_min_pitch_invalid
[18:51:59] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[18:51:59] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[18:51:59] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[18:51:59] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[18:51:59] [PASSED] drm_test_format_min_pitch_two_plane
[18:51:59] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[18:51:59] [PASSED] drm_test_format_min_pitch_tiled
[18:51:59] =================== [PASSED] drm_format ====================
[18:51:59] ============== drm_framebuffer (10 subtests) ===============
[18:51:59] ========== drm_test_framebuffer_check_src_coords ==========
[18:51:59] [PASSED] Success: source fits into fb
[18:51:59] [PASSED] Fail: overflowing fb with x-axis coordinate
[18:51:59] [PASSED] Fail: overflowing fb with y-axis coordinate
[18:51:59] [PASSED] Fail: overflowing fb with source width
[18:51:59] [PASSED] Fail: overflowing fb with source height
[18:51:59] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[18:51:59] [PASSED] drm_test_framebuffer_cleanup
[18:51:59] =============== drm_test_framebuffer_create ===============
[18:51:59] [PASSED] ABGR8888 normal sizes
[18:51:59] [PASSED] ABGR8888 max sizes
[18:51:59] [PASSED] ABGR8888 pitch greater than min required
[18:51:59] [PASSED] ABGR8888 pitch less than min required
[18:51:59] [PASSED] ABGR8888 Invalid width
[18:51:59] [PASSED] ABGR8888 Invalid buffer handle
[18:51:59] [PASSED] No pixel format
[18:51:59] [PASSED] ABGR8888 Width 0
[18:51:59] [PASSED] ABGR8888 Height 0
[18:51:59] [PASSED] ABGR8888 Out of bound height * pitch combination
[18:51:59] [PASSED] ABGR8888 Large buffer offset
[18:51:59] [PASSED] ABGR8888 Buffer offset for inexistent plane
[18:51:59] [PASSED] ABGR8888 Invalid flag
[18:51:59] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[18:51:59] [PASSED] ABGR8888 Valid buffer modifier
[18:51:59] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[18:51:59] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[18:51:59] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[18:51:59] [PASSED] NV12 Normal sizes
[18:51:59] [PASSED] NV12 Max sizes
[18:51:59] [PASSED] NV12 Invalid pitch
[18:51:59] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[18:51:59] [PASSED] NV12 different modifier per-plane
[18:51:59] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[18:51:59] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[18:51:59] [PASSED] NV12 Modifier for inexistent plane
[18:51:59] [PASSED] NV12 Handle for inexistent plane
[18:51:59] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[18:51:59] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[18:51:59] [PASSED] YVU420 Normal sizes
[18:51:59] [PASSED] YVU420 Max sizes
[18:51:59] [PASSED] YVU420 Invalid pitch
[18:51:59] [PASSED] YVU420 Different pitches
[18:51:59] [PASSED] YVU420 Different buffer offsets/pitches
[18:51:59] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[18:51:59] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[18:51:59] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[18:51:59] [PASSED] YVU420 Valid modifier
[18:51:59] [PASSED] YVU420 Different modifiers per plane
[18:51:59] [PASSED] YVU420 Modifier for inexistent plane
[18:51:59] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[18:51:59] [PASSED] X0L2 Normal sizes
[18:51:59] [PASSED] X0L2 Max sizes
[18:51:59] [PASSED] X0L2 Invalid pitch
[18:51:59] [PASSED] X0L2 Pitch greater than minimum required
[18:51:59] [PASSED] X0L2 Handle for inexistent plane
[18:51:59] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[18:51:59] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[18:51:59] [PASSED] X0L2 Valid modifier
[18:51:59] [PASSED] X0L2 Modifier for inexistent plane
[18:51:59] =========== [PASSED] drm_test_framebuffer_create ===========
[18:51:59] [PASSED] drm_test_framebuffer_free
[18:51:59] [PASSED] drm_test_framebuffer_init
[18:51:59] [PASSED] drm_test_framebuffer_init_bad_format
[18:51:59] [PASSED] drm_test_framebuffer_init_dev_mismatch
[18:51:59] [PASSED] drm_test_framebuffer_lookup
[18:51:59] [PASSED] drm_test_framebuffer_lookup_inexistent
[18:51:59] [PASSED] drm_test_framebuffer_modifiers_not_supported
[18:51:59] ================= [PASSED] drm_framebuffer =================
[18:51:59] ================ drm_gem_shmem (8 subtests) ================
[18:51:59] [PASSED] drm_gem_shmem_test_obj_create
[18:51:59] [PASSED] drm_gem_shmem_test_obj_create_private
[18:51:59] [PASSED] drm_gem_shmem_test_pin_pages
[18:51:59] [PASSED] drm_gem_shmem_test_vmap
[18:51:59] [PASSED] drm_gem_shmem_test_get_sg_table
[18:51:59] [PASSED] drm_gem_shmem_test_get_pages_sgt
[18:51:59] [PASSED] drm_gem_shmem_test_madvise
[18:51:59] [PASSED] drm_gem_shmem_test_purge
[18:51:59] ================== [PASSED] drm_gem_shmem ==================
[18:51:59] === drm_atomic_helper_connector_hdmi_check (29 subtests) ===
[18:51:59] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[18:51:59] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[18:51:59] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[18:51:59] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[18:51:59] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[18:51:59] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[18:51:59] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 =======
[18:51:59] [PASSED] Automatic
[18:51:59] [PASSED] Full
[18:51:59] [PASSED] Limited 16:235
[18:51:59] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[18:51:59] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[18:51:59] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[18:51:59] [PASSED] drm_test_check_disable_connector
[18:51:59] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[18:51:59] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[18:51:59] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[18:51:59] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[18:51:59] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[18:51:59] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[18:51:59] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[18:51:59] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[18:51:59] [PASSED] drm_test_check_output_bpc_dvi
[18:51:59] [PASSED] drm_test_check_output_bpc_format_vic_1
[18:51:59] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[18:51:59] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[18:51:59] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[18:51:59] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[18:51:59] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[18:51:59] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[18:51:59] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[18:51:59] ============ drm_test_check_hdmi_color_format =============
[18:51:59] [PASSED] AUTO -> RGB
[18:51:59] [PASSED] YCBCR422 -> YUV422
[18:51:59] [PASSED] YCBCR420 -> YUV420
[18:51:59] [PASSED] YCBCR444 -> YUV444
[18:51:59] [PASSED] RGB -> RGB
[18:51:59] ======== [PASSED] drm_test_check_hdmi_color_format =========
[18:51:59] ======== drm_test_check_hdmi_color_format_420_only ========
[18:51:59] [PASSED] RGB should fail
[18:51:59] [PASSED] YUV444 should fail
[18:51:59] [PASSED] YUV422 should fail
[18:51:59] [PASSED] YUV420 should work
[18:51:59] ==== [PASSED] drm_test_check_hdmi_color_format_420_only ====
[18:51:59] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[18:51:59] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[18:51:59] [PASSED] drm_test_check_broadcast_rgb_value
[18:51:59] [PASSED] drm_test_check_bpc_8_value
[18:51:59] [PASSED] drm_test_check_bpc_10_value
[18:51:59] [PASSED] drm_test_check_bpc_12_value
[18:51:59] [PASSED] drm_test_check_format_value
[18:51:59] [PASSED] drm_test_check_tmds_char_value
[18:51:59] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[18:51:59] = drm_atomic_helper_connector_hdmi_mode_valid (7 subtests) =
[18:51:59] [PASSED] drm_test_check_mode_valid
[18:51:59] [PASSED] drm_test_check_mode_valid_reject
[18:51:59] [PASSED] drm_test_check_mode_valid_reject_rate
[18:51:59] [PASSED] drm_test_check_mode_valid_reject_max_clock
[18:51:59] [PASSED] drm_test_check_mode_valid_yuv420_only_max_clock
[18:51:59] [PASSED] drm_test_check_mode_valid_reject_yuv420_only_connector
[18:51:59] [PASSED] drm_test_check_mode_valid_accept_yuv420_also_connector_rgb
[18:51:59] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[18:51:59] = drm_atomic_helper_connector_hdmi_infoframes (5 subtests) =
[18:51:59] [PASSED] drm_test_check_infoframes
[18:51:59] [PASSED] drm_test_check_reject_avi_infoframe
[18:51:59] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_8
[18:51:59] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_10
[18:51:59] [PASSED] drm_test_check_reject_audio_infoframe
[18:51:59] === [PASSED] drm_atomic_helper_connector_hdmi_infoframes ===
[18:51:59] ================= drm_managed (2 subtests) =================
[18:51:59] [PASSED] drm_test_managed_release_action
[18:51:59] [PASSED] drm_test_managed_run_action
[18:51:59] =================== [PASSED] drm_managed ===================
[18:51:59] =================== drm_mm (6 subtests) ====================
[18:51:59] [PASSED] drm_test_mm_init
[18:51:59] [PASSED] drm_test_mm_debug
[18:51:59] [PASSED] drm_test_mm_align32
[18:51:59] [PASSED] drm_test_mm_align64
[18:51:59] [PASSED] drm_test_mm_lowest
[18:51:59] [PASSED] drm_test_mm_highest
[18:51:59] ===================== [PASSED] drm_mm ======================
[18:51:59] ============= drm_modes_analog_tv (5 subtests) =============
[18:51:59] [PASSED] drm_test_modes_analog_tv_mono_576i
[18:51:59] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[18:51:59] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[18:51:59] [PASSED] drm_test_modes_analog_tv_pal_576i
[18:51:59] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[18:51:59] =============== [PASSED] drm_modes_analog_tv ===============
[18:51:59] ============== drm_plane_helper (2 subtests) ===============
[18:51:59] =============== drm_test_check_plane_state ================
[18:51:59] [PASSED] clipping_simple
[18:51:59] [PASSED] clipping_rotate_reflect
[18:51:59] [PASSED] positioning_simple
[18:51:59] [PASSED] upscaling
[18:51:59] [PASSED] downscaling
[18:51:59] [PASSED] rounding1
[18:51:59] [PASSED] rounding2
[18:51:59] [PASSED] rounding3
[18:51:59] [PASSED] rounding4
[18:51:59] =========== [PASSED] drm_test_check_plane_state ============
[18:51:59] =========== drm_test_check_invalid_plane_state ============
[18:51:59] [PASSED] positioning_invalid
[18:51:59] [PASSED] upscaling_invalid
[18:51:59] [PASSED] downscaling_invalid
[18:51:59] ======= [PASSED] drm_test_check_invalid_plane_state ========
[18:51:59] ================ [PASSED] drm_plane_helper =================
[18:51:59] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[18:51:59] ====== drm_test_connector_helper_tv_get_modes_check =======
[18:51:59] [PASSED] None
[18:51:59] [PASSED] PAL
[18:51:59] [PASSED] NTSC
[18:51:59] [PASSED] Both, NTSC Default
[18:51:59] [PASSED] Both, PAL Default
[18:51:59] [PASSED] Both, NTSC Default, with PAL on command-line
[18:51:59] [PASSED] Both, PAL Default, with NTSC on command-line
[18:51:59] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[18:51:59] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[18:51:59] ================== drm_rect (9 subtests) ===================
[18:51:59] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[18:51:59] [PASSED] drm_test_rect_clip_scaled_not_clipped
[18:51:59] [PASSED] drm_test_rect_clip_scaled_clipped
[18:51:59] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[18:51:59] ================= drm_test_rect_intersect =================
[18:51:59] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[18:51:59] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[18:51:59] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[18:51:59] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[18:51:59] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[18:51:59] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[18:51:59] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[18:51:59] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[18:51:59] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[18:51:59] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[18:51:59] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[18:51:59] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[18:51:59] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[18:51:59] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[18:51:59] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[18:51:59] ============= [PASSED] drm_test_rect_intersect =============
[18:51:59] ================ drm_test_rect_calc_hscale ================
[18:51:59] [PASSED] normal use
[18:51:59] [PASSED] out of max range
[18:51:59] [PASSED] out of min range
[18:51:59] [PASSED] zero dst
[18:51:59] [PASSED] negative src
[18:51:59] [PASSED] negative dst
[18:51:59] ============ [PASSED] drm_test_rect_calc_hscale ============
[18:51:59] ================ drm_test_rect_calc_vscale ================
[18:51:59] [PASSED] normal use
[18:51:59] [PASSED] out of max range
[18:51:59] [PASSED] out of min range
[18:51:59] [PASSED] zero dst
[18:51:59] [PASSED] negative src
[18:51:59] [PASSED] negative dst
[18:51:59] ============ [PASSED] drm_test_rect_calc_vscale ============
[18:51:59] ================== drm_test_rect_rotate ===================
[18:51:59] [PASSED] reflect-x
[18:51:59] [PASSED] reflect-y
[18:51:59] [PASSED] rotate-0
[18:51:59] [PASSED] rotate-90
[18:51:59] [PASSED] rotate-180
[18:51:59] [PASSED] rotate-270
[18:51:59] ============== [PASSED] drm_test_rect_rotate ===============
[18:51:59] ================ drm_test_rect_rotate_inv =================
[18:51:59] [PASSED] reflect-x
[18:51:59] [PASSED] reflect-y
[18:51:59] [PASSED] rotate-0
[18:51:59] [PASSED] rotate-90
[18:51:59] [PASSED] rotate-180
[18:51:59] [PASSED] rotate-270
[18:51:59] ============ [PASSED] drm_test_rect_rotate_inv =============
[18:51:59] ==================== [PASSED] drm_rect =====================
[18:51:59] ============ drm_sysfb_modeset_test (1 subtest) ============
[18:51:59] ============ drm_test_sysfb_build_fourcc_list =============
[18:51:59] [PASSED] no native formats
[18:51:59] [PASSED] XRGB8888 as native format
[18:51:59] [PASSED] remove duplicates
[18:51:59] [PASSED] convert alpha formats
[18:51:59] [PASSED] random formats
[18:51:59] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[18:51:59] ============= [PASSED] drm_sysfb_modeset_test ==============
[18:51:59] ================== drm_fixp (2 subtests) ===================
[18:51:59] [PASSED] drm_test_int2fixp
[18:51:59] [PASSED] drm_test_sm2fixp
[18:51:59] ==================== [PASSED] drm_fixp =====================
[18:51:59] ============================================================
[18:51:59] Testing complete. Ran 641 tests: passed: 641
[18:51:59] Elapsed time: 26.577s total, 1.804s configuring, 24.605s building, 0.142s running
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[18:51:59] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[18:52:01] 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
[18:52:11] Starting KUnit Kernel (1/1)...
[18:52:11] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[18:52:11] ============= refcount_interrupt (4 subtests) ==============
[18:52:11] [PASSED] test_single_irq_change
[18:52:11] [PASSED] test_nested_irq_change
[18:52:11] [PASSED] test_multiple_irq_change
[18:52:11] [PASSED] test_irq_save
[18:52:11] =============== [PASSED] refcount_interrupt ================
[18:52:11] ================= ttm_device (5 subtests) ==================
[18:52:11] [PASSED] ttm_device_init_basic
[18:52:11] [PASSED] ttm_device_init_multiple
[18:52:11] [PASSED] ttm_device_fini_basic
[18:52:11] [PASSED] ttm_device_init_no_vma_man
[18:52:11] ================== ttm_device_init_pools ==================
[18:52:11] [PASSED] No DMA allocations, no DMA32 required
[18:52:11] [PASSED] DMA allocations, DMA32 required
[18:52:11] [PASSED] No DMA allocations, DMA32 required
[18:52:11] [PASSED] DMA allocations, no DMA32 required
[18:52:11] ============== [PASSED] ttm_device_init_pools ==============
[18:52:11] =================== [PASSED] ttm_device ====================
[18:52:11] ================== ttm_pool (8 subtests) ===================
[18:52:11] ================== ttm_pool_alloc_basic ===================
[18:52:11] [PASSED] One page
[18:52:11] [PASSED] More than one page
[18:52:11] [PASSED] Above the allocation limit
[18:52:11] [PASSED] One page, with coherent DMA mappings enabled
[18:52:11] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[18:52:11] ============== [PASSED] ttm_pool_alloc_basic ===============
[18:52:11] ============== ttm_pool_alloc_basic_dma_addr ==============
[18:52:11] [PASSED] One page
[18:52:11] [PASSED] More than one page
[18:52:11] [PASSED] Above the allocation limit
[18:52:11] [PASSED] One page, with coherent DMA mappings enabled
[18:52:11] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[18:52:11] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[18:52:11] [PASSED] ttm_pool_alloc_order_caching_match
[18:52:11] [PASSED] ttm_pool_alloc_caching_mismatch
[18:52:11] [PASSED] ttm_pool_alloc_order_mismatch
[18:52:11] [PASSED] ttm_pool_free_dma_alloc
[18:52:11] [PASSED] ttm_pool_free_no_dma_alloc
[18:52:11] [PASSED] ttm_pool_fini_basic
[18:52:11] ==================== [PASSED] ttm_pool =====================
[18:52:11] ================ ttm_resource (8 subtests) =================
[18:52:11] ================= ttm_resource_init_basic =================
[18:52:11] [PASSED] Init resource in TTM_PL_SYSTEM
[18:52:11] [PASSED] Init resource in TTM_PL_VRAM
[18:52:11] [PASSED] Init resource in a private placement
[18:52:11] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[18:52:11] ============= [PASSED] ttm_resource_init_basic =============
[18:52:11] [PASSED] ttm_resource_init_pinned
[18:52:11] [PASSED] ttm_resource_fini_basic
[18:52:11] [PASSED] ttm_resource_manager_init_basic
[18:52:11] [PASSED] ttm_resource_manager_usage_basic
[18:52:11] [PASSED] ttm_resource_manager_set_used_basic
[18:52:11] [PASSED] ttm_sys_man_alloc_basic
[18:52:11] [PASSED] ttm_sys_man_free_basic
[18:52:11] ================== [PASSED] ttm_resource ===================
[18:52:11] =================== ttm_tt (15 subtests) ===================
[18:52:11] ==================== ttm_tt_init_basic ====================
[18:52:11] [PASSED] Page-aligned size
[18:52:11] [PASSED] Extra pages requested
[18:52:11] ================ [PASSED] ttm_tt_init_basic ================
[18:52:11] [PASSED] ttm_tt_init_misaligned
[18:52:11] [PASSED] ttm_tt_fini_basic
[18:52:11] [PASSED] ttm_tt_fini_sg
[18:52:11] [PASSED] ttm_tt_fini_shmem
[18:52:11] [PASSED] ttm_tt_create_basic
[18:52:11] [PASSED] ttm_tt_create_invalid_bo_type
[18:52:11] [PASSED] ttm_tt_create_ttm_exists
[18:52:11] [PASSED] ttm_tt_create_failed
[18:52:11] [PASSED] ttm_tt_destroy_basic
[18:52:11] [PASSED] ttm_tt_populate_null_ttm
[18:52:11] [PASSED] ttm_tt_populate_populated_ttm
[18:52:11] [PASSED] ttm_tt_unpopulate_basic
[18:52:11] [PASSED] ttm_tt_unpopulate_empty_ttm
[18:52:11] [PASSED] ttm_tt_swapin_basic
[18:52:11] ===================== [PASSED] ttm_tt ======================
[18:52:11] =================== ttm_bo (14 subtests) ===================
[18:52:11] =========== ttm_bo_reserve_optimistic_no_ticket ===========
[18:52:11] [PASSED] Cannot be interrupted and sleeps
[18:52:11] [PASSED] Cannot be interrupted, locks straight away
[18:52:11] [PASSED] Can be interrupted, sleeps
[18:52:11] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[18:52:11] [PASSED] ttm_bo_reserve_locked_no_sleep
[18:52:11] [PASSED] ttm_bo_reserve_no_wait_ticket
[18:52:11] [PASSED] ttm_bo_reserve_double_resv
[18:52:11] [PASSED] ttm_bo_reserve_interrupted
[18:52:11] [PASSED] ttm_bo_reserve_deadlock
[18:52:11] [PASSED] ttm_bo_unreserve_basic
[18:52:11] [PASSED] ttm_bo_unreserve_pinned
[18:52:11] [PASSED] ttm_bo_unreserve_bulk
[18:52:11] [PASSED] ttm_bo_fini_basic
[18:52:11] [PASSED] ttm_bo_fini_shared_resv
[18:52:11] [PASSED] ttm_bo_pin_basic
[18:52:11] [PASSED] ttm_bo_pin_unpin_resource
[18:52:11] [PASSED] ttm_bo_multiple_pin_one_unpin
[18:52:11] ===================== [PASSED] ttm_bo ======================
[18:52:11] ============== ttm_bo_validate (22 subtests) ===============
[18:52:11] ============== ttm_bo_init_reserved_sys_man ===============
[18:52:11] [PASSED] Buffer object for userspace
[18:52:11] [PASSED] Kernel buffer object
[18:52:11] [PASSED] Shared buffer object
[18:52:11] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[18:52:11] ============== ttm_bo_init_reserved_mock_man ==============
[18:52:11] [PASSED] Buffer object for userspace
[18:52:11] [PASSED] Kernel buffer object
[18:52:11] [PASSED] Shared buffer object
[18:52:11] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[18:52:11] [PASSED] ttm_bo_init_reserved_resv
[18:52:11] ================== ttm_bo_validate_basic ==================
[18:52:11] [PASSED] Buffer object for userspace
[18:52:11] [PASSED] Kernel buffer object
[18:52:11] [PASSED] Shared buffer object
[18:52:11] ============== [PASSED] ttm_bo_validate_basic ==============
[18:52:11] [PASSED] ttm_bo_validate_invalid_placement
[18:52:11] ============= ttm_bo_validate_same_placement ==============
[18:52:11] [PASSED] System manager
[18:52:11] [PASSED] VRAM manager
[18:52:11] ========= [PASSED] ttm_bo_validate_same_placement ==========
[18:52:11] [PASSED] ttm_bo_validate_failed_alloc
[18:52:11] [PASSED] ttm_bo_validate_pinned
[18:52:11] [PASSED] ttm_bo_validate_busy_placement
[18:52:11] ================ ttm_bo_validate_multihop =================
[18:52:11] [PASSED] Buffer object for userspace
[18:52:11] [PASSED] Kernel buffer object
[18:52:11] [PASSED] Shared buffer object
[18:52:11] ============ [PASSED] ttm_bo_validate_multihop =============
[18:52:11] ========== ttm_bo_validate_no_placement_signaled ==========
[18:52:11] [PASSED] Buffer object in system domain, no page vector
[18:52:11] [PASSED] Buffer object in system domain with an existing page vector
[18:52:11] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[18:52:11] ======== ttm_bo_validate_no_placement_not_signaled ========
[18:52:11] [PASSED] Buffer object for userspace
[18:52:11] [PASSED] Kernel buffer object
[18:52:11] [PASSED] Shared buffer object
[18:52:11] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[18:52:11] [PASSED] ttm_bo_validate_move_fence_signaled
[18:52:11] ========= ttm_bo_validate_move_fence_not_signaled =========
[18:52:11] [PASSED] Waits for GPU
[18:52:11] [PASSED] Tries to lock straight away
[18:52:11] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[18:52:11] [PASSED] ttm_bo_validate_swapout
[18:52:11] [PASSED] ttm_bo_validate_happy_evict
[18:52:11] [PASSED] ttm_bo_validate_all_pinned_evict
[18:52:11] [PASSED] ttm_bo_validate_allowed_only_evict
[18:52:11] [PASSED] ttm_bo_validate_deleted_evict
[18:52:11] [PASSED] ttm_bo_validate_busy_domain_evict
[18:52:11] [PASSED] ttm_bo_validate_evict_gutting
[18:52:11] [PASSED] ttm_bo_validate_recrusive_evict
[18:52:11] ================= [PASSED] ttm_bo_validate =================
[18:52:11] ============================================================
[18:52:11] Testing complete. Ran 106 tests: passed: 106
[18:52:11] Elapsed time: 11.885s total, 1.823s configuring, 9.847s building, 0.182s running
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/dma-buf/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/dma-buf/.kunitconfig
[18:52:11] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[18:52:13] 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
[18:52:22] Starting KUnit Kernel (1/1)...
[18:52:22] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[18:52:22] ============= refcount_interrupt (4 subtests) ==============
[18:52:22] [PASSED] test_single_irq_change
[18:52:22] [PASSED] test_nested_irq_change
[18:52:22] [PASSED] test_multiple_irq_change
[18:52:22] [PASSED] test_irq_save
[18:52:22] =============== [PASSED] refcount_interrupt ================
[18:52:22] =============== dma-buf-fence (12 subtests) ================
[18:52:22] [PASSED] test_sanitycheck
[18:52:22] [PASSED] test_signaling
[18:52:22] [PASSED] test_add_callback
[18:52:22] [PASSED] test_late_add_callback
[18:52:22] [PASSED] test_rm_callback
[18:52:22] [PASSED] test_late_rm_callback
[18:52:22] [PASSED] test_status
[18:52:22] [PASSED] test_error
[18:52:22] [PASSED] test_wait
[18:52:22] [PASSED] test_wait_timeout
[18:52:22] [PASSED] test_stub
[18:52:22] [SKIPPED] test_race_signal_callback (requires at least 2 CPUs)
[18:52:22] ================== [PASSED] dma-buf-fence ==================
[18:52:22] ============ dma-buf-fence-chain (11 subtests) =============
[18:52:22] [PASSED] test_sanitycheck
[18:52:22] [PASSED] test_find_seqno
[18:52:22] [PASSED] test_find_signaled
[18:52:22] [PASSED] test_find_out_of_order
[18:52:27] [PASSED] test_find_gap
[18:52:27] [PASSED] test_find_race
[18:52:27] [PASSED] test_signal_forward
[18:52:27] [PASSED] test_signal_backward
[18:52:27] [PASSED] test_wait_forward
[18:52:27] [PASSED] test_wait_backward
[18:52:27] [PASSED] test_wait_random
[18:52:27] =============== [PASSED] dma-buf-fence-chain ===============
[18:52:27] ============ dma-buf-fence-unwrap (10 subtests) ============
[18:52:27] [PASSED] test_sanitycheck
[18:52:27] [PASSED] test_unwrap_array
[18:52:27] [PASSED] test_unwrap_chain
[18:52:27] [PASSED] test_unwrap_chain_array
[18:52:27] [PASSED] test_unwrap_merge
[18:52:27] [PASSED] test_unwrap_merge_duplicate
[18:52:27] [PASSED] test_unwrap_merge_seqno
[18:52:27] [PASSED] test_unwrap_merge_order
[18:52:27] [PASSED] test_unwrap_merge_complex
[18:52:27] [PASSED] test_unwrap_merge_complex_seqno
[18:52:27] ============== [PASSED] dma-buf-fence-unwrap ===============
[18:52:27] ================ dma-buf-resv (5 subtests) =================
[18:52:27] [PASSED] test_sanitycheck
[18:52:27] ===================== test_signaling ======================
[18:52:27] [PASSED] kernel
[18:52:27] [PASSED] write
[18:52:27] [PASSED] read
[18:52:27] [PASSED] bookkeep
[18:52:27] ================= [PASSED] test_signaling ==================
[18:52:27] ====================== test_for_each ======================
[18:52:27] [PASSED] kernel
[18:52:27] [PASSED] write
[18:52:27] [PASSED] read
[18:52:27] [PASSED] bookkeep
[18:52:27] ================== [PASSED] test_for_each ==================
[18:52:27] ================= test_for_each_unlocked ==================
[18:52:27] [PASSED] kernel
[18:52:27] [PASSED] write
[18:52:27] [PASSED] read
[18:52:27] [PASSED] bookkeep
[18:52:27] ============= [PASSED] test_for_each_unlocked ==============
[18:52:27] ===================== test_get_fences =====================
[18:52:27] [PASSED] kernel
[18:52:27] [PASSED] write
[18:52:27] [PASSED] read
[18:52:27] [PASSED] bookkeep
[18:52:27] ================= [PASSED] test_get_fences =================
[18:52:27] ================== [PASSED] dma-buf-resv ===================
[18:52:27] ============================================================
[18:52:27] Testing complete. Ran 54 tests: passed: 53, skipped: 1
[18:52:27] Elapsed time: 15.809s total, 1.842s configuring, 8.595s building, 5.340s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: [PATCH v6 09/18] drm/i915/alpm: Half LFPS cycle calculation
2026-09-15 18:04 ` [PATCH v6 09/18] drm/i915/alpm: Half LFPS cycle calculation Animesh Manna
@ 2026-09-15 18:53 ` sashiko-bot
0 siblings, 0 replies; 32+ messages in thread
From: sashiko-bot @ 2026-09-15 18:53 UTC (permalink / raw)
To: Animesh Manna; +Cc: intel-xe, dri-devel, intel-gfx
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] display/alpm: uninitialized stack variables used for ALPM hardware programming
--
commit b718ea1f4bfa5d8848c313251d36c92815933b23
Author: Animesh Manna <animesh.manna@intel.com>
drm/i915/alpm: Half LFPS cycle calculation
This commit adds support for half LFPS cycle calculation for DP2.1 ALPM
as dependent parameters got changed.
> diff --git a/drivers/gpu/drm/i915/display/intel_alpm.c b/drivers/gpu/drm/i915/display/intel_alpm.c
> index cb24bba801a19..14ecb27095b29 100644
> --- a/drivers/gpu/drm/i915/display/intel_alpm.c
> +++ b/drivers/gpu/drm/i915/display/intel_alpm.c
[ ... ]
> +static void lnl_get_lfps_period_min_max_time(const struct intel_crtc_state *crtc_state,
> + int *min, int *max)
> +{
> + if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_EDP)) {
> + if (crtc_state->port_clock < 540000) {
> + *min = 65 * LFPS_CYCLE_COUNT;
> + *max = 75 * LFPS_CYCLE_COUNT;
> + } else {
> + *min = 140;
> + *max = 800;
> + }
> + }
> +}
[Severity: High]
Does this function leave min and max completely uninitialized for
non-eDP configurations?
For instance, when connecting an external DisplayPort sink on LunarLake
with ALPM capabilities, intel_crtc_has_type(..., INTEL_OUTPUT_EDP) would
be false, and the function returns without setting these parameters.
[ ... ]
> static int get_lfps_cycle_time(const struct intel_crtc_state *crtc_state)
> {
> int tlfps_cycle_min, tlfps_cycle_max;
>
> - get_lfps_cycle_min_max_time(crtc_state, &tlfps_cycle_min,
> - &tlfps_cycle_max);
> + get_lfps_period_min_max_time(crtc_state, &tlfps_cycle_min,
> + &tlfps_cycle_max);
>
> return tlfps_cycle_min + (tlfps_cycle_max - tlfps_cycle_min) / 2;
> }
[Severity: High]
Can these stack variables be consumed while still uninitialized?
Because lnl_get_lfps_period_min_max_time() lacks a non-eDP fallback, it
appears tlfps_cycle_min and tlfps_cycle_max could retain their uninitialized
stack values here when called for a standard DisplayPort setup.
These garbage values would then be used in the arithmetic calculation and
subsequently programmed into hardware ALPM registers. Could this potentially
cause display link corruption, link training failures, or hardware timeouts?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260915180449.277933-1-animesh.manna@intel.com?part=9
^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: [PATCH v6 16/18] drm/i915/alpm: Compute and program switch to active latency
2026-09-15 18:04 ` [PATCH v6 16/18] drm/i915/alpm: Compute and program switch to active latency Animesh Manna
@ 2026-09-15 18:55 ` sashiko-bot
0 siblings, 0 replies; 32+ messages in thread
From: sashiko-bot @ 2026-09-15 18:55 UTC (permalink / raw)
To: Animesh Manna; +Cc: dri-devel, intel-gfx, intel-xe
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] drm/i915/alpm: ALPM_CTL2_SWITCH_TO_ACTIVE_LATENCY bounds check missing
- [High] drm/i915/alpm: switch_to_active math error inflates latency 32x
--
commit 6e4638c7fe4ea7d79d2000aac2b17f2fc3edc381
Author: Animesh Manna <animesh.manna@intel.com>
Subject: drm/i915/alpm: Compute and program switch to active latency
This commit programs the ALPM switch to active latency into ALPM_CTL2. For
UHBR link rates, the latency is derived from the link symbol clock and
converted to scanlines, while for non-UHBR rates it is set to zero.
> diff --git a/drivers/gpu/drm/i915/display/intel_alpm.c b/drivers/gpu/drm/i915/display/intel_alpm.c
> index 236341aa3c8d8..84777c8d31bb4 100644
> --- a/drivers/gpu/drm/i915/display/intel_alpm.c
> +++ b/drivers/gpu/drm/i915/display/intel_alpm.c
[ ... ]
> @@ -301,6 +301,31 @@ static int get_establishment_period(struct intel_dp *intel_dp,
> return establishment_period;
> }
>
> +static int get_switch_to_active(const struct intel_crtc_state *crtc_state)
> +{
> + int port_clock = crtc_state->port_clock;
> + int switch_to_active;
> +
> + if (intel_dp_is_uhbr(crtc_state)) {
> + /* symbol_clock (fLink) in MHz */
> + int symbol_clock = port_clock / intel_dp_link_symbol_size(port_clock) / 100;
> +
> + /*
> + * tSwitch to Active = 32 * (ML_PHY_LOCK Length + 3 + 64) / fLink
> + *
> + * The "+ 3" term is the trailing zero padding after the
> + * POST_LT_SCRAMBLER_RESET, the "+ 64" term represents the MTP
> + * time slots. The result is in microseconds.
> + */
> + switch_to_active = get_dp_link_symbol_size(crtc_state) *
> + (ML_PHY_LOCK_LEN_UHBR + 3 + 64) / symbol_clock;
[Severity: High]
Does this logic incorrectly substitute the symbol rate for the bit rate,
inflating the latency by 32x?
In the DP spec formula, fLink is the link rate in Mbps, and multiplying the
symbol count by 32 correctly calculates bits divided by bit-rate. However,
symbol_clock is calculated here as port_clock / 32, meaning the denominator is
32x smaller than intended.
This math error calculates a latency of ~47.4us instead of 1.48us, causing
excessively long ALPM wake sequences. Additionally, standard integer division
here drops fractional microseconds, so if corrected, the wait time might be
shorter than the physical hardware minimum on high-clock displays.
> + } else {
> + switch_to_active = 0;
> + }
> +
> + return switch_to_active;
> +}
> +
[ ... ]
> @@ -360,7 +385,8 @@ _lnl_compute_aux_less_alpm_params(struct intel_dp *intel_dp,
> crtc_state->alpm_state.aux_less_wake_lines = aux_less_wake_lines;
> crtc_state->alpm_state.silence_period_sym_clocks = silence_period;
> crtc_state->alpm_state.lfps_half_cycle_num_of_syms = lfps_half_cycle;
> -
> + crtc_state->alpm_state.switch_to_active = intel_usecs_to_scanlines(&crtc_state->hw.adjusted_mode,
> + get_switch_to_active(crtc_state));
[Severity: High]
Can the computed scanline count overflow the 5-bit register field it is
later written to?
Unlike the other parameters configured in _lnl_compute_aux_less_alpm_params(),
there is no bounds check here against the maximum allowed value before
assigning it to switch_to_active.
With the 32x inflation bug above, on high-refresh-rate displays (like 4K @
360Hz), ~47us translates to > 31 scanlines.
> return true;
> }
>
[ ... ]
> @@ -772,6 +798,7 @@ static void lnl_alpm_configure(struct intel_dp *intel_dp,
> lttpr_count = drm_dp_lttpr_count(intel_dp->lttpr_common_caps);
>
> alpm_ctl2 = ALPM_CTL2_NUMBER_OF_LTTPR(lttpr_count);
> + alpm_ctl2 |= ALPM_CTL2_SWITCH_TO_ACTIVE_LATENCY(crtc_state->alpm_state.switch_to_active);
[Severity: High]
Does this silently mask and truncate the unbounded scanline count?
ALPM_CTL2_SWITCH_TO_ACTIVE_LATENCY uses REG_FIELD_PREP with a 5-bit mask.
Any value > 31 is silently truncated. For example, 32 scanlines truncates
to 0, completely removing the required wake latency. This causes the hardware
to exit ALPM before the PHY has locked, leading to link training failures or
display corruption.
>
> intel_de_write(display, ALPM_CTL2(display, cpu_transcoder), alpm_ctl2);
> intel_de_write(display, ALPM_CTL(display, cpu_transcoder), alpm_ctl);
[ ... ]
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260915180449.277933-1-animesh.manna@intel.com?part=16
^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: [PATCH v6 12/18] drm/i915/alpm: Program LTTPR count for DP 2.1 ALPM
2026-09-15 18:04 ` [PATCH v6 12/18] drm/i915/alpm: Program LTTPR count for DP 2.1 ALPM Animesh Manna
@ 2026-09-15 18:56 ` sashiko-bot
0 siblings, 0 replies; 32+ messages in thread
From: sashiko-bot @ 2026-09-15 18:56 UTC (permalink / raw)
To: Animesh Manna; +Cc: dri-devel, intel-xe, intel-gfx
Thank you for your contribution! Sashiko AI review found 4 potential issue(s) to consider:
- [High] drm/i915/alpm: DP 2.1 ALPM LTTPR logic is unreachable dead code
- [Medium] drm/i915/alpm: Unchecked negative return from drm_dp_lttpr_count() causes register corruption
- [Low] drm/i915/alpm: Dead code in lttpr_count error check
- [Low] drm/i915/alpm: Comment contradicts LTTPR revision code check
--
commit a317ca0f7af6803f7b3932311f82447dfda1b648
Author: Animesh Manna <animesh.manna@intel.com>
drm/i915/alpm: Program LTTPR count for DP 2.1 ALPM
This commit programs the total number of LTTPRs for DP 2.1 ALPM before
link training by issuing an AUX write transaction to DP_TOTAL_LTTPR_CNT.
> diff --git a/drivers/gpu/drm/i915/display/intel_alpm.c b/drivers/gpu/drm/i915/display/intel_alpm.c
> index da653a407e97e..06c1a59aa2c51 100644
> --- a/drivers/gpu/drm/i915/display/intel_alpm.c
> +++ b/drivers/gpu/drm/i915/display/intel_alpm.c
> @@ -726,7 +726,7 @@ static void lnl_alpm_configure(struct intel_dp *intel_dp,
> {
> struct intel_display *display = to_intel_display(intel_dp);
> enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
> - u32 alpm_ctl;
> + u32 alpm_ctl, alpm_ctl2, lttpr_count;
>
[ ... ]
> @@ -762,6 +762,11 @@ static void lnl_alpm_configure(struct intel_dp *intel_dp,
>
> alpm_ctl |= ALPM_CTL_ALPM_ENTRY_CHECK(crtc_state->alpm_state.check_entry_lines);
>
> + lttpr_count = drm_dp_lttpr_count(intel_dp->lttpr_common_caps);
> +
> + alpm_ctl2 = ALPM_CTL2_NUMBER_OF_LTTPR(lttpr_count);
[Severity: Medium]
Does this assignment to a u32 variable cause error codes to go unhandled?
The function drm_dp_lttpr_count() can return negative error codes like
-ERANGE or -EINVAL on failure. If this happens, assigning it to the unsigned
lttpr_count variable strips the negative sign and results in a large value
being passed into ALPM_CTL2_NUMBER_OF_LTTPR(). This could corrupt the
register programming by injecting invalid bits via REG_FIELD_PREP.
> +
> + intel_de_write(display, ALPM_CTL2(display, cpu_transcoder), alpm_ctl2);
> intel_de_write(display, ALPM_CTL(display, cpu_transcoder), alpm_ctl);
> mutex_unlock(&intel_dp->alpm.lock);
> }
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_link_training.c b/drivers/gpu/drm/i915/display/intel_dp_link_training.c
> index cb92cff906146..37c8306a1fa0d 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_link_training.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_link_training.c
> @@ -2265,6 +2265,25 @@ intel_dp_128b132b_link_train(struct intel_dp *intel_dp,
> return passed;
> }
>
> +static void intel_dp_update_lttpr_count(struct intel_dp *intel_dp,
> + int lttpr_count)
> +{
> + u8 val;
> +
> + /*
> + * Program only for DP2.1 and return if LTTPR revison is less than 0x20
> + * where 0:3 represents minor rev and 4:7 represent major rev
> + */
[Severity: Low]
This isn't a bug, but the comment specifies "less than 0x20", while the
code below implements a less than or equal to 0x20 (<= 0x20) check.
> + if (!intel_dp_is_edp(intel_dp) ||
> + lttpr_count < 0 ||
[Severity: Low]
Is this lttpr_count < 0 check reachable?
In intel_dp_start_link_train(), the lttpr_count is clamped to 0 on error
before being passed to this function:
if (lttpr_count < 0)
/* Still continue with enabling the port and link training. */
lttpr_count = 0;
intel_dp_prepare_link_train(intel_dp, crtc_state);
intel_dp_update_lttpr_count(intel_dp, lttpr_count);
> + intel_dp->lttpr_common_caps[0] <= 0x20)
[Severity: High]
Can this LTTPR programming ever be reached for either DP or eDP configurations?
For standard DP connections, the function returns immediately because of the
!intel_dp_is_edp(intel_dp) check above.
For eDP connections, intel_dp_init_lttpr_and_dprx_caps() explicitly skips
LTTPR capabilities initialization, leaving intel_dp->lttpr_common_caps[0]
as 0. That causes the function to also return immediately due to this
<= 0x20 check, rendering the feature unreachable.
> + return;
> +
> + val = intel_dp->lttpr_common_caps[DP_PHY_REPEATER_CNT -
> + DP_LT_TUNABLE_PHY_REPEATER_FIELD_DATA_STRUCTURE_REV];
> + drm_dp_dpcd_writeb(&intel_dp->aux, DP_TOTAL_LTTPR_CNT, val);
> +}
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260915180449.277933-1-animesh.manna@intel.com?part=12
^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: [PATCH v6 14/18] drm/i915/alpm: Replace is_edp() with alpm_is_possible()
2026-09-15 18:04 ` [PATCH v6 14/18] drm/i915/alpm: Replace is_edp() with alpm_is_possible() Animesh Manna
@ 2026-09-15 18:57 ` sashiko-bot
0 siblings, 0 replies; 32+ messages in thread
From: sashiko-bot @ 2026-09-15 18:57 UTC (permalink / raw)
To: Animesh Manna; +Cc: intel-gfx, intel-xe, dri-devel
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] drm/i915/alpm: invalid DPCD capability checks in intel_alpm_is_possible()
- [High] drm/i915/alpm: ALPM_CTL left enabled on hot-unplug due to dynamic capability checks
--
commit f95070b21da14e9f299aa7eaa97682597723ecc9
Author: Animesh Manna <animesh.manna@intel.com>
Subject: drm/i915/alpm: Replace is_edp() with alpm_is_possible()
This commit introduces a separate intel_alpm_is_possible() function to
check for ALPM capability from DPCD information, replacing earlier checks
that relied solely on the panel being eDP.
> diff --git a/drivers/gpu/drm/i915/display/intel_alpm.c b/drivers/gpu/drm/i915/display/intel_alpm.c
> index 06c1a59aa2c51..29a93a252fe9b 100644
> --- a/drivers/gpu/drm/i915/display/intel_alpm.c
> +++ b/drivers/gpu/drm/i915/display/intel_alpm.c
[ ... ]
> @@ -69,6 +69,13 @@ void intel_alpm_init(struct intel_dp *intel_dp)
> mutex_init(&intel_dp->alpm.lock);
> }
>
> +bool intel_alpm_is_possible(struct intel_dp *intel_dp)
> +{
> + return (intel_dp->alpm_dpcd ||
> + intel_dp->lttpr_common_caps[DP_LTTPR_ALPM_CAPABILITIES -
> + DP_LT_TUNABLE_PHY_REPEATER_FIELD_DATA_STRUCTURE_REV]);
> +}
[Severity: High]
Does this logic correctly enforce DP requirements for ALPM?
It looks like this uses a logical OR instead of requiring both the sink and
LTTPR to support ALPM. Additionally, this seems to access the raw capability
byte without masking the specific ALPM capability bit, which could mean
reserved bits will be evaluated as true.
Can this break standard DP link training invariants when connecting a display
with LTTPRs that support ALPM while the sink does not, or when a sink has
reserved bits set but no ALPM support?
[ ... ]
> @@ -832,7 +839,7 @@ void intel_alpm_lobf_disable(const struct intel_crtc_state *new_crtc_state)
>
> intel_dp = enc_to_intel_dp(encoder);
>
> - if (!intel_dp_is_edp(intel_dp))
> + if (!intel_alpm_is_possible(intel_dp))
> continue;
>
> mutex_lock(&intel_dp->alpm.lock);
[Severity: High]
Could this dynamic capability check cause ALPM_CTL to be left enabled during
a hot-unplug event?
During a hot-unplug event, the cached DPCD capabilities like alpm_dpcd can
be cleared before the teardown hooks execute. Because this teardown function
checks these dynamic capabilities via intel_alpm_is_possible() instead of
the old hardware state, it might return early and fail to clear the ALPM_CTL
hardware register.
Would this leave the transcoder with ALPM enabled when it is supposed to be
disabled, potentially causing state mismatches on subsequent modesets?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260915180449.277933-1-animesh.manna@intel.com?part=14
^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: [PATCH v6 03/18] drm/i915/alpm: alpm_init() for DP2.1
2026-09-15 18:04 ` [PATCH v6 03/18] drm/i915/alpm: alpm_init() for DP2.1 Animesh Manna
@ 2026-09-15 18:57 ` sashiko-bot
0 siblings, 0 replies; 32+ messages in thread
From: sashiko-bot @ 2026-09-15 18:57 UTC (permalink / raw)
To: Animesh Manna; +Cc: intel-gfx, intel-xe, dri-devel
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] drm/i915/alpm: hardware state leak on hot-unplug due to premature capability reset
--
commit b6800420511819216ede410fb998491c8d931411
Author: Animesh Manna <animesh.manna@intel.com>
drm/i915/alpm: alpm_init() for DP2.1
This commit initializes ALPM for DP2.1 and separates out ALPM mutex-init
from alpm-init.
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> index 650c8b39270be..b4742bd33cb42 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -6354,6 +6354,7 @@ intel_dp_detect(struct drm_connector *_connector,
> connector->dp.panel_replay_caps.su_support = false;
> connector->dp.panel_replay_caps.dsc_support =
> INTEL_DP_PANEL_REPLAY_DSC_NOT_SUPPORTED;
> + intel_dp->alpm_dpcd = 0;
[Severity: Medium]
Does clearing this capability flag during the detect callback cause a
hardware state leak on hot-unplug?
When an active display is hot-unplugged, intel_dp_detect() runs and zeroes
intel_dp->alpm_dpcd here. However, userspace will subsequently issue an
atomic commit to disable the CRTC.
During that disable sequence, intel_alpm_disable() in intel_alpm.c checks
intel_dp->alpm_dpcd to see if it should proceed. Since the capability was
already cleared, the check evaluates to false and the function exits early.
This skips the register cleanup, leaving the transcoder's ALPM_CTL hardware
registers enabled.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260915180449.277933-1-animesh.manna@intel.com?part=3
^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: [PATCH v6 18/18] drm/i915/alpm: Disallow ALPM for UHBR link rate
2026-09-15 18:04 ` [PATCH v6 18/18] drm/i915/alpm: Disallow ALPM for UHBR link rate Animesh Manna
@ 2026-09-15 19:01 ` sashiko-bot
0 siblings, 0 replies; 32+ messages in thread
From: sashiko-bot @ 2026-09-15 19:01 UTC (permalink / raw)
To: Animesh Manna; +Cc: intel-gfx, dri-devel, intel-xe
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] drm/i915: ALPM and Panel Replay stay enabled with zeroed params on external DP UHBR
--
commit 735fad731be8c8f544adf68949ae9f43b62606f2
Author: Animesh Manna <animesh.manna@intel.com>
drm/i915/alpm: Disallow ALPM for UHBR link rate
This commit attempts to reject ALPM parameter computation for external DP
running at a UHBR rate on NVL platforms. eDP is explicitly excluded from this
check to keep eDP ALPM working at all link rates.
> diff --git a/drivers/gpu/drm/i915/display/intel_alpm.c b/drivers/gpu/drm/i915/display/intel_alpm.c
> index 84777c8d31bb4..51805a6bca867 100644
> --- a/drivers/gpu/drm/i915/display/intel_alpm.c
> +++ b/drivers/gpu/drm/i915/display/intel_alpm.c
> @@ -453,6 +453,12 @@ bool intel_alpm_compute_params(struct intel_dp *intel_dp,
> int precharge = intel_dp_aux_fw_sync_len(intel_dp) - preamble;
> u8 max_wake_lines;
>
> + /* DP2.1 ALPM is not supported on UHBR (128b/132b) link rates on NVL. */
> + if (DISPLAY_VER(display) == 35 &&
> + !intel_crtc_has_type(crtc_state, INTEL_OUTPUT_EDP) &&
> + intel_dp_is_uhbr(crtc_state))
> + return false;
> +
[Severity: High]
Does returning false here successfully prevent ALPM and Panel Replay from being
enabled on external DP?
Looking at _panel_replay_compute_config() in
drivers/gpu/drm/i915/display/intel_psr.c, there is an early return for non-eDP
displays:
if (!intel_dp_is_edp(intel_dp))
return true;
/* Remaining checks are for eDP only */
if (!crtc_state->has_alpm)
return false;
Because of this early return, the failed ALPM parameter computation is bypassed
for external DP. Later in intel_sel_update_config_valid(), has_alpm is
unconditionally overwritten:
crtc_state->has_alpm = intel_alpm_is_possible(intel_dp);
return true;
Could this sequence leave ALPM and Panel Replay enabled with uninitialized
(zeroed) wake lines and times, potentially violating DP specifications and
preventing the external display from waking up correctly?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260915180449.277933-1-animesh.manna@intel.com?part=18
^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: [PATCH v6 15/18] drm/i915/alpm: Introduce has_alpm to decouple from pr/psr2/lobf
2026-09-15 18:04 ` [PATCH v6 15/18] drm/i915/alpm: Introduce has_alpm to decouple from pr/psr2/lobf Animesh Manna
@ 2026-09-15 19:01 ` sashiko-bot
0 siblings, 0 replies; 32+ messages in thread
From: sashiko-bot @ 2026-09-15 19:01 UTC (permalink / raw)
To: Animesh Manna; +Cc: dri-devel, intel-xe, intel-gfx
Thank you for your contribution! Sashiko AI review found 5 potential issue(s) to consider:
- [High] drm/i915/alpm: Unconditional overwrite of has_alpm breaks Panel Replay without ALPM
- [High] drm/i915/alpm: Retained eDP check in intel_psr_needs_alpm_aux_less prevents AS SDP for external DP
- [High] drm/i915/alpm: has_alpm state leak when PSR/PR features are downgraded late
- [Medium] drm/i915/alpm: Early return in intel_alpm_port_configure prevents clearing stale ALPM state
- [Medium] drm/i915/alpm: Missing has_alpm check causes incorrect PR_ALPM_CTL programming
--
commit 4dcfef3fd89e0ed18372dabec785892c009d57eb
Author: Animesh Manna <animesh.manna@intel.com>
Subject: drm/i915/alpm: Introduce has_alpm to decouple from pr/psr2/lobf
This commit introduces a single crtc_state->has_alpm flag to track ALPM
enablement, decoupling it from implicit feature tracking like eDP Panel
Replay, PSR2, or LOBF. It updates various ALPM configuration and port
paths to use this new flag as the single source of truth.
> diff --git a/drivers/gpu/drm/i915/display/intel_alpm.c b/drivers/gpu/drm/i915/display/intel_alpm.c
> index 29a93a252fe9b..236341aa3c8d8 100644
> --- a/drivers/gpu/drm/i915/display/intel_alpm.c
> +++ b/drivers/gpu/drm/i915/display/intel_alpm.c
[ ... ]
> @@ -719,7 +720,7 @@ void intel_alpm_pr_as_sdp_update(const struct intel_crtc_state *crtc_state)
> intel_dp = enc_to_intel_dp(encoder);
>
> if (!intel_dp->as_sdp_supported ||
> - !intel_alpm_is_alpm_aux_less(intel_dp, crtc_state))
> + !intel_alpm_is_aux_less(intel_dp, crtc_state))
> continue;
>
> mutex_lock(&intel_dp->alpm.lock);
[Severity: Medium]
Does this missing check for crtc_state->has_alpm cause incorrect
PR_ALPM_CTL programming?
The intel_alpm_is_aux_less() function evaluates to true for Panel Replay
regardless of the actual has_alpm state. Without an explicit check verifying
that ALPM is actually active, if Panel Replay is explicitly falling back to
a "without ALPM" configuration, this loop will incorrectly write AS SDP
parameters to the ALPM controller, which contradicts the fallback state.
[ ... ]
> @@ -792,10 +792,10 @@ void intel_alpm_port_configure(struct intel_dp *intel_dp,
> enum port port = dp_to_dig_port(intel_dp)->base.port;
> u32 alpm_ctl_val = 0, lfps_ctl_val = 0;
>
> - if (DISPLAY_VER(display) < 20)
> + if (DISPLAY_VER(display) < 20 || !crtc_state->has_alpm)
> return;
[Severity: Medium]
Will this early return prevent clearing stale ALPM state in the hardware?
Previously, this function would proceed and write the zeroed alpm_ctl_val
and lfps_ctl_val to the hardware when ALPM was disabled. By returning
early when crtc_state->has_alpm is false, any transition from an
ALPM-enabled mode to an ALPM-disabled mode will skip the clearing writes.
This leaves the hardware with an active ALPM configuration while the driver
state considers it disabled.
> diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
> index 872e253db1786..1f14dbe57512f 100644
> --- a/drivers/gpu/drm/i915/display/intel_psr.c
> +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> @@ -1648,6 +1648,8 @@ static bool intel_sel_update_config_valid(struct intel_crtc_state *crtc_state,
> crtc_state->enable_psr2_su_region_et = psr2_su_region_et_valid(connector,
> crtc_state->has_panel_replay);
>
> + crtc_state->has_alpm = intel_alpm_is_possible(intel_dp);
> +
[Severity: High]
Does this unconditional assignment overwrite the validated has_alpm state?
The Panel Replay configuration path sets has_alpm based on whether ALPM
timing actually fits into the vblank period. When Panel Replay is validated
but ALPM timing fails, has_alpm is correctly set to false to allow Panel
Replay without ALPM.
This line in intel_sel_update_config_valid() unconditionally overwrites
that calculated state with a simple capability check, forcing it back to
true. This destroys the fallback state, causing the late compute config
to evaluate ALPM wake lines again, fail, and fully disable Panel Replay
on external DP.
[ ... ]
> @@ -4555,16 +4569,6 @@ void intel_psr_connector_debugfs_add(struct intel_connector *connector)
> connector, &i915_psr_status_fops);
> }
>
> -bool intel_psr_needs_alpm(struct intel_dp *intel_dp, const struct intel_crtc_state *crtc_state)
> -{
> - /*
> - * eDP Panel Replay uses always ALPM
> - * PSR2 uses ALPM but PSR1 doesn't
> - */
> - return intel_dp_is_edp(intel_dp) && (crtc_state->has_sel_update ||
> - crtc_state->has_panel_replay);
> -}
> -
> bool intel_psr_needs_alpm_aux_less(struct intel_dp *intel_dp,
> const struct intel_crtc_state *crtc_state)
> {
[Severity: High]
Does retaining the eDP-only check in intel_psr_needs_alpm_aux_less()
prevent AS SDP configuration for external DP Panel Replay?
While intel_alpm_is_aux_less() was updated to support external DP,
intel_psr_needs_alpm_aux_less() still restricts true return values to
eDP only. Any external DP configuration enabling Panel Replay will fail
this check when evaluated by intel_dp_pr_with_as_sdp_enabled() in the
link training paths.
This leads to silently missing the DP_FIXED_VTOTAL_AS_SDP_EN_IN_PR_ACTIVE
configuration during link training, causing a mismatch between source
programming and the sink DPCD configuration.
> @@ -4578,15 +4582,17 @@ void intel_psr_compute_config_late(struct intel_dp *intel_dp,
> int vblank = intel_crtc_vblank_length(crtc_state);
> int wake_lines;
>
> - if (intel_psr_needs_alpm_aux_less(intel_dp, crtc_state))
> - wake_lines = crtc_state->alpm_state.aux_less_wake_lines;
> - else if (intel_psr_needs_alpm(intel_dp, crtc_state))
> - wake_lines = DISPLAY_VER(display) < 20 ?
> - psr2_block_count_lines(crtc_state->alpm_state.io_wake_lines,
> - crtc_state->alpm_state.fast_wake_lines) :
> - crtc_state->alpm_state.io_wake_lines;
> - else
> + if (crtc_state->has_alpm) {
> + if (crtc_state->has_panel_replay)
> + wake_lines = crtc_state->alpm_state.aux_less_wake_lines;
> + else
> + wake_lines = DISPLAY_VER(display) < 20 ?
> + psr2_block_count_lines(crtc_state->alpm_state.io_wake_lines,
> + crtc_state->alpm_state.fast_wake_lines) :
> + crtc_state->alpm_state.io_wake_lines;
> + } else {
> wake_lines = 0;
> + }
>
> /*
> * Disable the PSR features if wake lines exceed the available vblank.
[Severity: High]
Can has_alpm leak as true if PSR or Panel Replay features are disabled
late in this function?
When falling back to PSR1 or fully disabling PSR due to vblank timing limits
or hardware workarounds later in intel_psr_compute_config_late():
if (crtc_state->has_panel_replay) {
crtc_state->has_panel_replay = false;
crtc_state->has_psr = false;
}
crtc_state->has_sel_update = false;
The corresponding feature flags are cleared, but has_alpm is left as true.
Since ALPM programming paths (like intel_alpm_port_configure) now rely
directly on has_alpm, this leaked state can cause unintended ALPM hardware
programming on unsupported modes.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260915180449.277933-1-animesh.manna@intel.com?part=15
^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: [PATCH v6 17/18] drm/i915/alpm: Program zero-based LFPS half cycle duration
2026-09-15 18:04 ` [PATCH v6 17/18] drm/i915/alpm: Program zero-based LFPS half cycle duration Animesh Manna
@ 2026-09-15 19:02 ` sashiko-bot
0 siblings, 0 replies; 32+ messages in thread
From: sashiko-bot @ 2026-09-15 19:02 UTC (permalink / raw)
To: Animesh Manna; +Cc: dri-devel, intel-xe, intel-gfx
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] drm/i915/alpm: bounds check rejects max valid LFPS half cycle duration
--
commit df710743c62bb2cde8d5cec635597f5355e70e89
Author: Animesh Manna <animesh.manna@intel.com>
Subject: drm/i915/alpm: Program zero-based LFPS half cycle duration
The LFPS Half Cycle Duration field, as well as the First and Last LFPS
Half Cycle Duration fields, in PORT_ALPM_LFPS_CTL are zero-based: per
Bspec the value programmed must be N_Symbol - 1. The number of symbols
was programmed directly, making each half cycle one symbol clock too
long.
> diff --git a/drivers/gpu/drm/i915/display/intel_psr_regs.h b/drivers/gpu/drm/i915/display/intel_psr_regs.h
> index 8f60b671755aa..387edf8df6e98 100644
> --- a/drivers/gpu/drm/i915/display/intel_psr_regs.h
> +++ b/drivers/gpu/drm/i915/display/intel_psr_regs.h
> @@ -339,11 +339,17 @@
[ ... ]
> #define PORT_ALPM_LFPS_CTL_LAST_LFPS_HALF_CYCLE_DURATION_MASK REG_GENMASK(4, 0)
> -#define PORT_ALPM_LFPS_CTL_LAST_LFPS_HALF_CYCLE_DURATION(val) REG_FIELD_PREP(PORT_ALPM_LFPS_CTL_LAST_LFPS_HALF_CYCLE_DURATION_MASK, val)
> +#define PORT_ALPM_LFPS_CTL_LAST_LFPS_HALF_CYCLE_DURATION(val) REG_FIELD_PREP(PORT_ALPM_LFPS_CTL_LAST_LFPS_HALF_CYCLE_DURATION_MASK, (val) - 1)
[Severity: Medium]
Since this macro now subtracts 1 for zero-based encoding, does the bounds
check in _lnl_compute_aux_less_alpm_params() also need to be updated?
drivers/gpu/drm/i915/display/intel_alpm.c:_lnl_compute_aux_less_alpm_params() {
...
if (aux_less_wake_lines > ALPM_CTL_AUX_LESS_WAKE_TIME_MASK ||
silence_period > PORT_ALPM_CTL_SILENCE_PERIOD_MASK ||
lfps_half_cycle > PORT_ALPM_LFPS_CTL_LAST_LFPS_HALF_CYCLE_DURATION_MASK)
return false;
...
}
It looks like this check restricts the maximum allowed symbols to 31 (the
mask value). With the new zero-based encoding, shouldn't a value of 32 be
permitted? If lfps_half_cycle is 32, this bounds check will return false,
which could artificially restrict the limit and reject valid hardware
display configurations.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260915180449.277933-1-animesh.manna@intel.com?part=17
^ permalink raw reply [flat|nested] 32+ messages in thread
* ✓ Xe.CI.BAT: success for Enable DP2.1 alpm (rev6)
2026-09-15 18:04 [PATCH v6 00/18] Enable DP2.1 alpm Animesh Manna
` (19 preceding siblings ...)
2026-09-15 18:52 ` ✓ CI.KUnit: success " Patchwork
@ 2026-09-15 19:29 ` Patchwork
2026-09-16 1:55 ` ✓ Xe.CI.FULL: " Patchwork
21 siblings, 0 replies; 32+ messages in thread
From: Patchwork @ 2026-09-15 19:29 UTC (permalink / raw)
To: Animesh Manna; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 847 bytes --]
== Series Details ==
Series: Enable DP2.1 alpm (rev6)
URL : https://patchwork.freedesktop.org/series/156416/
State : success
== Summary ==
CI Bug Log - changes from xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8_BAT -> xe-pw-156416v6_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (15 -> 15)
------------------------------
No changes in participating hosts
Changes
-------
No changes found
Build changes
-------------
* Linux: xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8 -> xe-pw-156416v6
IGT_9098: 9098
xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8: 0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8
xe-pw-156416v6: 156416v6
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/index.html
[-- Attachment #2: Type: text/html, Size: 1395 bytes --]
^ permalink raw reply [flat|nested] 32+ messages in thread
* ✓ Xe.CI.FULL: success for Enable DP2.1 alpm (rev6)
2026-09-15 18:04 [PATCH v6 00/18] Enable DP2.1 alpm Animesh Manna
` (20 preceding siblings ...)
2026-09-15 19:29 ` ✓ Xe.CI.BAT: " Patchwork
@ 2026-09-16 1:55 ` Patchwork
21 siblings, 0 replies; 32+ messages in thread
From: Patchwork @ 2026-09-16 1:55 UTC (permalink / raw)
To: Animesh Manna; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 51388 bytes --]
== Series Details ==
Series: Enable DP2.1 alpm (rev6)
URL : https://patchwork.freedesktop.org/series/156416/
State : success
== Summary ==
CI Bug Log - changes from xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8_FULL -> xe-pw-156416v6_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-156416v6_FULL that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@intel_hwmon@hwmon-write:
- shard-lnl: NOTRUN -> [SKIP][1] ([Intel XE#1125] / [Intel XE#7312])
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-8/igt@intel_hwmon@hwmon-write.html
* igt@kms_async_flips@alternate-sync-async-flip-atomic:
- shard-bmg: [PASS][2] -> [FAIL][3] ([Intel XE#3718] / [Intel XE#6078])
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-10/igt@kms_async_flips@alternate-sync-async-flip-atomic.html
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-4/igt@kms_async_flips@alternate-sync-async-flip-atomic.html
* igt@kms_async_flips@alternate-sync-async-flip-atomic@pipe-c-dp-2:
- shard-bmg: [PASS][4] -> [FAIL][5] ([Intel XE#6078])
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-10/igt@kms_async_flips@alternate-sync-async-flip-atomic@pipe-c-dp-2.html
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-4/igt@kms_async_flips@alternate-sync-async-flip-atomic@pipe-c-dp-2.html
* igt@kms_atomic_transition@plane-all-modeset-transition-fencing:
- shard-lnl: NOTRUN -> [SKIP][6] ([Intel XE#3279])
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-4/igt@kms_atomic_transition@plane-all-modeset-transition-fencing.html
* igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels:
- shard-bmg: NOTRUN -> [SKIP][7] ([Intel XE#2370])
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels.html
* igt@kms_big_fb@4-tiled-16bpp-rotate-270:
- shard-lnl: NOTRUN -> [SKIP][8] ([Intel XE#1407]) +3 other tests skip
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-8/igt@kms_big_fb@4-tiled-16bpp-rotate-270.html
* igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip:
- shard-lnl: NOTRUN -> [SKIP][9] ([Intel XE#3658] / [Intel XE#7360]) +1 other test skip
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-8/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip.html
* igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-0-hflip:
- shard-lnl: NOTRUN -> [SKIP][10] ([Intel XE#7059] / [Intel XE#7085])
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-3/igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-0-hflip.html
* igt@kms_big_fb@y-tiled-addfb-size-offset-overflow:
- shard-bmg: NOTRUN -> [SKIP][11] ([Intel XE#607] / [Intel XE#7361])
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@kms_big_fb@y-tiled-addfb-size-offset-overflow.html
* igt@kms_big_fb@yf-tiled-8bpp-rotate-90:
- shard-bmg: NOTRUN -> [SKIP][12] ([Intel XE#1124]) +1 other test skip
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@kms_big_fb@yf-tiled-8bpp-rotate-90.html
* igt@kms_big_fb@yf-tiled-addfb:
- shard-lnl: NOTRUN -> [SKIP][13] ([Intel XE#1467] / [Intel XE#7367])
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-4/igt@kms_big_fb@yf-tiled-addfb.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180:
- shard-lnl: NOTRUN -> [SKIP][14] ([Intel XE#1124]) +9 other tests skip
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-4/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180.html
* igt@kms_bw@connected-linear-tiling-2-displays-target-2160x1440p:
- shard-lnl: NOTRUN -> [SKIP][15] ([Intel XE#7679])
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-8/igt@kms_bw@connected-linear-tiling-2-displays-target-2160x1440p.html
* igt@kms_bw@connected-linear-tiling-4-displays-target-2560x1440p:
- shard-bmg: NOTRUN -> [SKIP][16] ([Intel XE#7679])
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@kms_bw@connected-linear-tiling-4-displays-target-2560x1440p.html
* igt@kms_bw@linear-tiling-3-displays-target-2560x1440p:
- shard-lnl: NOTRUN -> [SKIP][17] ([Intel XE#367]) +1 other test skip
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-3/igt@kms_bw@linear-tiling-3-displays-target-2560x1440p.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs:
- shard-bmg: [PASS][18] -> [INCOMPLETE][19] ([Intel XE#7084] / [Intel XE#8150]) +1 other test incomplete
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-1/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-8/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-mc-ccs:
- shard-lnl: NOTRUN -> [SKIP][20] ([Intel XE#3432]) +1 other test skip
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-8/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-mc-ccs.html
* igt@kms_ccs@missing-ccs-buffer-y-tiled-gen12-rc-ccs-cc:
- shard-lnl: NOTRUN -> [SKIP][21] ([Intel XE#2887]) +10 other tests skip
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-8/igt@kms_ccs@missing-ccs-buffer-y-tiled-gen12-rc-ccs-cc.html
* igt@kms_ccs@random-ccs-data-y-tiled-gen12-rc-ccs:
- shard-bmg: NOTRUN -> [SKIP][22] ([Intel XE#2887]) +4 other tests skip
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@kms_ccs@random-ccs-data-y-tiled-gen12-rc-ccs.html
* igt@kms_chamelium_color@ctm-max:
- shard-lnl: NOTRUN -> [SKIP][23] ([Intel XE#306] / [Intel XE#7358]) +1 other test skip
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-4/igt@kms_chamelium_color@ctm-max.html
* igt@kms_chamelium_color_pipeline@plane-ctm3x4-lut1d:
- shard-lnl: NOTRUN -> [SKIP][24] ([Intel XE#7358])
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-8/igt@kms_chamelium_color_pipeline@plane-ctm3x4-lut1d.html
* igt@kms_chamelium_hpd@dp-hpd:
- shard-lnl: NOTRUN -> [SKIP][25] ([Intel XE#373]) +6 other tests skip
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-4/igt@kms_chamelium_hpd@dp-hpd.html
* igt@kms_chamelium_hpd@dp-hpd-storm:
- shard-bmg: NOTRUN -> [SKIP][26] ([Intel XE#2252]) +2 other tests skip
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@kms_chamelium_hpd@dp-hpd-storm.html
* igt@kms_color_pipeline@plane-lut1d-ctm3x4@pipe-b-plane-3:
- shard-bmg: NOTRUN -> [SKIP][27] ([Intel XE#6969]) +7 other tests skip
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@kms_color_pipeline@plane-lut1d-ctm3x4@pipe-b-plane-3.html
* igt@kms_content_protection@lic-type-1:
- shard-lnl: NOTRUN -> [SKIP][28] ([Intel XE#7642]) +2 other tests skip
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-4/igt@kms_content_protection@lic-type-1.html
* igt@kms_content_protection@suspend-resume@pipe-a-dp-2:
- shard-bmg: NOTRUN -> [FAIL][29] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374]) +1 other test fail
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@kms_content_protection@suspend-resume@pipe-a-dp-2.html
* igt@kms_cursor_crc@cursor-offscreen-512x512:
- shard-bmg: NOTRUN -> [SKIP][30] ([Intel XE#2321] / [Intel XE#7355]) +1 other test skip
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@kms_cursor_crc@cursor-offscreen-512x512.html
* igt@kms_cursor_crc@cursor-onscreen-512x170:
- shard-lnl: NOTRUN -> [SKIP][31] ([Intel XE#2321] / [Intel XE#7355])
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-8/igt@kms_cursor_crc@cursor-onscreen-512x170.html
* igt@kms_cursor_crc@cursor-sliding-32x10:
- shard-lnl: NOTRUN -> [SKIP][32] ([Intel XE#1424]) +1 other test skip
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-8/igt@kms_cursor_crc@cursor-sliding-32x10.html
* igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic:
- shard-lnl: NOTRUN -> [SKIP][33] ([Intel XE#309] / [Intel XE#7343]) +2 other tests skip
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-3/igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic.html
* igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions:
- shard-lnl: NOTRUN -> [SKIP][34] ([Intel XE#309] / [Intel XE#7343] / [Intel XE#7935])
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-8/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions.html
* igt@kms_dp_link_training@non-uhbr-mst:
- shard-lnl: NOTRUN -> [SKIP][35] ([Intel XE#4354] / [Intel XE#5882])
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-3/igt@kms_dp_link_training@non-uhbr-mst.html
* igt@kms_dsc@dsc-fractional-bpp-with-bpc:
- shard-bmg: NOTRUN -> [SKIP][36] ([Intel XE#8265])
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@kms_dsc@dsc-fractional-bpp-with-bpc.html
* igt@kms_dsc@dsc-with-formats:
- shard-lnl: NOTRUN -> [SKIP][37] ([Intel XE#8265]) +1 other test skip
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-3/igt@kms_dsc@dsc-with-formats.html
* igt@kms_flip@2x-dpms-vs-vblank-race:
- shard-lnl: NOTRUN -> [SKIP][38] ([Intel XE#1421]) +6 other tests skip
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-8/igt@kms_flip@2x-dpms-vs-vblank-race.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible:
- shard-lnl: NOTRUN -> [FAIL][39] ([Intel XE#301]) +1 other test fail
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-3/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
* igt@kms_flip_scaled_crc@flip-32bpp-linear-to-32bpp-linear-reflect-x:
- shard-lnl: NOTRUN -> [SKIP][40] ([Intel XE#7179])
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-4/igt@kms_flip_scaled_crc@flip-32bpp-linear-to-32bpp-linear-reflect-x.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling:
- shard-lnl: NOTRUN -> [SKIP][41] ([Intel XE#1397] / [Intel XE#1745] / [Intel XE#7385] / [Intel XE#9144]) +2 other tests skip
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-8/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling@pipe-a-default-mode:
- shard-lnl: NOTRUN -> [SKIP][42] ([Intel XE#1397] / [Intel XE#7385] / [Intel XE#9144]) +2 other tests skip
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-4/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-downscaling:
- shard-bmg: NOTRUN -> [SKIP][43] ([Intel XE#7178] / [Intel XE#7351]) +1 other test skip
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling:
- shard-lnl: NOTRUN -> [SKIP][44] ([Intel XE#7178] / [Intel XE#7351]) +1 other test skip
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-8/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling.html
* igt@kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-draw-render:
- shard-lnl: NOTRUN -> [SKIP][45] ([Intel XE#6312] / [Intel XE#651]) +14 other tests skip
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-4/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@drrs-rgb565-draw-render:
- shard-bmg: NOTRUN -> [SKIP][46] ([Intel XE#2311]) +10 other tests skip
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@kms_frontbuffer_tracking@drrs-rgb565-draw-render.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-render:
- shard-bmg: NOTRUN -> [SKIP][47] ([Intel XE#4141])
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbc-abgr161616f-draw-mmap-wc:
- shard-lnl: NOTRUN -> [SKIP][48] ([Intel XE#7061] / [Intel XE#7356])
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-3/igt@kms_frontbuffer_tracking@fbc-abgr161616f-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcdrrs-argb161616f-draw-render:
- shard-bmg: NOTRUN -> [SKIP][49] ([Intel XE#7061] / [Intel XE#7356]) +1 other test skip
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcdrrs-argb161616f-draw-render.html
* igt@kms_frontbuffer_tracking@fbcdrrshdr-1p-primscrn-shrfb-pgflip-blt:
- shard-lnl: NOTRUN -> [SKIP][50] ([Intel XE#6312]) +7 other tests skip
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-4/igt@kms_frontbuffer_tracking@fbcdrrshdr-1p-primscrn-shrfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-cur-indfb-onoff:
- shard-lnl: NOTRUN -> [SKIP][51] ([Intel XE#7865]) +22 other tests skip
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-4/igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-cur-indfb-onoff.html
* igt@kms_frontbuffer_tracking@hdr-argb161616f-draw-render:
- shard-lnl: NOTRUN -> [SKIP][52] ([Intel XE#7061]) +4 other tests skip
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-8/igt@kms_frontbuffer_tracking@hdr-argb161616f-draw-render.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-render:
- shard-lnl: NOTRUN -> [SKIP][53] ([Intel XE#656] / [Intel XE#7905]) +30 other tests skip
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-4/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-spr-indfb-draw-render:
- shard-bmg: NOTRUN -> [SKIP][54] ([Intel XE#2313]) +13 other tests skip
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-spr-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@psrhdr-2p-scndscrn-cur-indfb-move:
- shard-lnl: NOTRUN -> [SKIP][55] ([Intel XE#7905]) +42 other tests skip
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-4/igt@kms_frontbuffer_tracking@psrhdr-2p-scndscrn-cur-indfb-move.html
* igt@kms_frontbuffer_tracking@psrhdr-argb161616f-draw-render:
- shard-bmg: NOTRUN -> [SKIP][56] ([Intel XE#7061]) +1 other test skip
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@kms_frontbuffer_tracking@psrhdr-argb161616f-draw-render.html
* igt@kms_hdmi_inject@inject-4k:
- shard-lnl: NOTRUN -> [SKIP][57] ([Intel XE#1470])
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-8/igt@kms_hdmi_inject@inject-4k.html
* igt@kms_hdr@static-toggle-suspend:
- shard-lnl: NOTRUN -> [SKIP][58] ([Intel XE#1503])
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-3/igt@kms_hdr@static-toggle-suspend.html
* igt@kms_multipipe_modeset@basic-max-pipe-crc-check:
- shard-bmg: NOTRUN -> [SKIP][59] ([Intel XE#7591])
[59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html
* igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier-source-clamping:
- shard-bmg: NOTRUN -> [SKIP][60] ([Intel XE#7283]) +1 other test skip
[60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier-source-clamping.html
* igt@kms_plane@pixel-format-y-tiled-gen12-mc-ccs-modifier:
- shard-lnl: NOTRUN -> [SKIP][61] ([Intel XE#7283]) +3 other tests skip
[61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-8/igt@kms_plane@pixel-format-y-tiled-gen12-mc-ccs-modifier.html
* igt@kms_plane_lowres@tiling-yf:
- shard-lnl: NOTRUN -> [SKIP][62] ([Intel XE#599])
[62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-3/igt@kms_plane_lowres@tiling-yf.html
* igt@kms_plane_multiple@2x-tiling-none:
- shard-lnl: NOTRUN -> [SKIP][63] ([Intel XE#4596] / [Intel XE#5854]) +1 other test skip
[63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-4/igt@kms_plane_multiple@2x-tiling-none.html
* igt@kms_plane_scaling@plane-downscale-factor-0-5-with-pixel-format@pipe-c:
- shard-lnl: NOTRUN -> [SKIP][64] ([Intel XE#2763] / [Intel XE#6886]) +13 other tests skip
[64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-4/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-pixel-format@pipe-c.html
* igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5:
- shard-bmg: NOTRUN -> [SKIP][65] ([Intel XE#2763] / [Intel XE#6886]) +4 other tests skip
[65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5.html
* igt@kms_pm_rpm@dpms-mode-unset-lpsp:
- shard-bmg: NOTRUN -> [SKIP][66] ([Intel XE#1439] / [Intel XE#7402] / [Intel XE#836])
[66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-fully-sf:
- shard-lnl: NOTRUN -> [SKIP][67] ([Intel XE#2893] / [Intel XE#4608] / [Intel XE#7304]) +2 other tests skip
[67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-3/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-fully-sf.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-fully-sf@pipe-b-edp-1:
- shard-lnl: NOTRUN -> [SKIP][68] ([Intel XE#4608] / [Intel XE#7304]) +2 other tests skip
[68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-3/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-fully-sf@pipe-b-edp-1.html
* igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-sf@pipe-a-edp-1:
- shard-lnl: NOTRUN -> [SKIP][69] ([Intel XE#4608]) +2 other tests skip
[69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-4/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-sf@pipe-a-edp-1.html
* igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-fully-sf:
- shard-lnl: NOTRUN -> [SKIP][70] ([Intel XE#2893] / [Intel XE#7304])
[70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-4/igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-fully-sf.html
* igt@kms_psr2_sf@psr2-plane-move-sf-dmg-area:
- shard-bmg: NOTRUN -> [SKIP][71] ([Intel XE#1489]) +2 other tests skip
[71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@kms_psr2_sf@psr2-plane-move-sf-dmg-area.html
* igt@kms_psr2_su@frontbuffer-xrgb8888:
- shard-lnl: NOTRUN -> [SKIP][72] ([Intel XE#1128] / [Intel XE#7413])
[72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-8/igt@kms_psr2_su@frontbuffer-xrgb8888.html
* igt@kms_psr@pr-no-drrs:
- shard-lnl: NOTRUN -> [SKIP][73] ([Intel XE#1406]) +5 other tests skip
[73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-4/igt@kms_psr@pr-no-drrs.html
* igt@kms_psr@psr2-sprite-plane-onoff:
- shard-bmg: NOTRUN -> [SKIP][74] ([Intel XE#2234] / [Intel XE#2850]) +1 other test skip
[74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@kms_psr@psr2-sprite-plane-onoff.html
* igt@kms_rotation_crc@bad-pixel-format:
- shard-bmg: NOTRUN -> [SKIP][75] ([Intel XE#3904] / [Intel XE#7342])
[75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@kms_rotation_crc@bad-pixel-format.html
* igt@kms_rotation_crc@primary-y-tiled-reflect-x-180:
- shard-lnl: NOTRUN -> [SKIP][76] ([Intel XE#1127] / [Intel XE#5813])
[76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-8/igt@kms_rotation_crc@primary-y-tiled-reflect-x-180.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270:
- shard-lnl: NOTRUN -> [SKIP][77] ([Intel XE#3414] / [Intel XE#3904] / [Intel XE#7342])
[77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-3/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270.html
* igt@kms_scaling_modes@scaling-mode-center:
- shard-bmg: NOTRUN -> [SKIP][78] ([Intel XE#2413])
[78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@kms_scaling_modes@scaling-mode-center.html
* igt@kms_vrr@flip-basic:
- shard-bmg: NOTRUN -> [SKIP][79] ([Intel XE#1499] / [Intel XE#9271])
[79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@kms_vrr@flip-basic.html
* igt@sriov_basic@pf-unbind-with-vfs-enabled-numvfs-all:
- shard-lnl: NOTRUN -> [SKIP][80] ([Intel XE#8866])
[80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-3/igt@sriov_basic@pf-unbind-with-vfs-enabled-numvfs-all.html
* igt@xe_cw_post_sync@walker-post-sync:
- shard-bmg: NOTRUN -> [SKIP][81] ([Intel XE#8608])
[81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@xe_cw_post_sync@walker-post-sync.html
* igt@xe_evict@evict-beng-mixed-threads-large-multi-vm:
- shard-lnl: NOTRUN -> [SKIP][82] ([Intel XE#6540] / [Intel XE#688]) +8 other tests skip
[82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-4/igt@xe_evict@evict-beng-mixed-threads-large-multi-vm.html
* igt@xe_evict@evict-small-multi-queue-priority:
- shard-bmg: NOTRUN -> [SKIP][83] ([Intel XE#8370])
[83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@xe_evict@evict-small-multi-queue-priority.html
* igt@xe_exec_balancer@once-parallel-userptr-rebind:
- shard-lnl: NOTRUN -> [SKIP][84] ([Intel XE#7482]) +15 other tests skip
[84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-3/igt@xe_exec_balancer@once-parallel-userptr-rebind.html
* igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr-invalidate-race:
- shard-lnl: NOTRUN -> [SKIP][85] ([Intel XE#1392]) +6 other tests skip
[85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-4/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr-invalidate-race.html
* igt@xe_exec_basic@multigpu-no-exec-bindexecqueue:
- shard-bmg: NOTRUN -> [SKIP][86] ([Intel XE#2322] / [Intel XE#7372]) +1 other test skip
[86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@xe_exec_basic@multigpu-no-exec-bindexecqueue.html
* igt@xe_exec_fault_mode@many-multi-queue-rebind-prefetch:
- shard-bmg: NOTRUN -> [SKIP][87] ([Intel XE#8374]) +1 other test skip
[87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@xe_exec_fault_mode@many-multi-queue-rebind-prefetch.html
* igt@xe_exec_fault_mode@once-multi-queue-userptr-rebind:
- shard-lnl: NOTRUN -> [SKIP][88] ([Intel XE#8374]) +4 other tests skip
[88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-8/igt@xe_exec_fault_mode@once-multi-queue-userptr-rebind.html
* igt@xe_exec_mix_modes@exec-multi-queue-spinner-interrupted-lr:
- shard-lnl: NOTRUN -> [SKIP][89] ([Intel XE#9003])
[89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-4/igt@xe_exec_mix_modes@exec-multi-queue-spinner-interrupted-lr.html
* igt@xe_exec_multi_queue@few-execs-preempt-mode-close-fd-smem:
- shard-bmg: NOTRUN -> [SKIP][90] ([Intel XE#8364]) +6 other tests skip
[90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@xe_exec_multi_queue@few-execs-preempt-mode-close-fd-smem.html
* igt@xe_exec_multi_queue@many-queues-preempt-mode-userptr:
- shard-lnl: NOTRUN -> [SKIP][91] ([Intel XE#8364]) +25 other tests skip
[91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-4/igt@xe_exec_multi_queue@many-queues-preempt-mode-userptr.html
* igt@xe_exec_reset@cm-multi-queue-close-fd:
- shard-bmg: NOTRUN -> [SKIP][92] ([Intel XE#8369])
[92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@xe_exec_reset@cm-multi-queue-close-fd.html
* igt@xe_exec_reset@gt-reset-fault-injection:
- shard-lnl: NOTRUN -> [ABORT][93] ([Intel XE#9140] / [Intel XE#9145])
[93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-4/igt@xe_exec_reset@gt-reset-fault-injection.html
* igt@xe_exec_threads@threads-multi-queue-cm-shared-vm-userptr-rebind:
- shard-bmg: NOTRUN -> [SKIP][94] ([Intel XE#8378])
[94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@xe_exec_threads@threads-multi-queue-cm-shared-vm-userptr-rebind.html
* igt@xe_exec_threads@threads-multi-queue-mixed-shared-vm-rebind:
- shard-lnl: NOTRUN -> [SKIP][95] ([Intel XE#8378]) +4 other tests skip
[95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-4/igt@xe_exec_threads@threads-multi-queue-mixed-shared-vm-rebind.html
* igt@xe_fault_injection@vm-bind-fail-xe_pt_update_ops_prepare:
- shard-bmg: [PASS][96] -> [ABORT][97] ([Intel XE#8007])
[96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-4/igt@xe_fault_injection@vm-bind-fail-xe_pt_update_ops_prepare.html
[97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-9/igt@xe_fault_injection@vm-bind-fail-xe_pt_update_ops_prepare.html
* igt@xe_gpgpu_fill@offset-4x4:
- shard-lnl: NOTRUN -> [SKIP][98] ([Intel XE#7954])
[98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-3/igt@xe_gpgpu_fill@offset-4x4.html
* igt@xe_mmap@pci-membarrier:
- shard-lnl: NOTRUN -> [SKIP][99] ([Intel XE#5100] / [Intel XE#7322] / [Intel XE#7408])
[99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-8/igt@xe_mmap@pci-membarrier.html
* igt@xe_multigpu_svm@mgpu-pagefault-conflict:
- shard-lnl: NOTRUN -> [SKIP][100] ([Intel XE#6964]) +1 other test skip
[100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-3/igt@xe_multigpu_svm@mgpu-pagefault-conflict.html
* igt@xe_multigpu_svm@mgpu-xgpu-access-prefetch:
- shard-bmg: NOTRUN -> [SKIP][101] ([Intel XE#6964])
[101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@xe_multigpu_svm@mgpu-xgpu-access-prefetch.html
* igt@xe_page_reclaim@basic-mixed:
- shard-bmg: NOTRUN -> [SKIP][102] ([Intel XE#7793])
[102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@xe_page_reclaim@basic-mixed.html
* igt@xe_page_reclaim@prl-max-entries:
- shard-lnl: NOTRUN -> [SKIP][103] ([Intel XE#7793])
[103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-4/igt@xe_page_reclaim@prl-max-entries.html
* igt@xe_pat@l2-flush-opt-svm-pat-restrict:
- shard-lnl: NOTRUN -> [SKIP][104] ([Intel XE#7590] / [Intel XE#7772])
[104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-8/igt@xe_pat@l2-flush-opt-svm-pat-restrict.html
* igt@xe_pat@pat-index-xelp:
- shard-bmg: NOTRUN -> [SKIP][105] ([Intel XE#2245] / [Intel XE#7590])
[105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@xe_pat@pat-index-xelp.html
* igt@xe_pm@d3cold-mmap-vram:
- shard-lnl: NOTRUN -> [SKIP][106] ([Intel XE#2284] / [Intel XE#366] / [Intel XE#7370])
[106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-8/igt@xe_pm@d3cold-mmap-vram.html
* igt@xe_pm_residency@cpg-basic:
- shard-bmg: [PASS][107] -> [INCOMPLETE][108] ([Intel XE#9202])
[107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-9/igt@xe_pm_residency@cpg-basic.html
[108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-6/igt@xe_pm_residency@cpg-basic.html
* igt@xe_pmu@all-fn-engine-activity-load:
- shard-bmg: [PASS][109] -> [FAIL][110] ([Intel XE#7992])
[109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-5/igt@xe_pmu@all-fn-engine-activity-load.html
[110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-1/igt@xe_pmu@all-fn-engine-activity-load.html
* igt@xe_prefetch_fault@prefetch-fault-svm:
- shard-bmg: NOTRUN -> [SKIP][111] ([Intel XE#7599])
[111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@xe_prefetch_fault@prefetch-fault-svm.html
* igt@xe_query@multigpu-query-pxp-status:
- shard-lnl: NOTRUN -> [SKIP][112] ([Intel XE#944]) +1 other test skip
[112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-4/igt@xe_query@multigpu-query-pxp-status.html
* igt@xe_query@multigpu-query-uc-fw-version-guc:
- shard-bmg: NOTRUN -> [SKIP][113] ([Intel XE#944])
[113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@xe_query@multigpu-query-uc-fw-version-guc.html
* igt@xe_sriov_admin@bulk-sched-priority-vfs-disabled:
- shard-lnl: NOTRUN -> [SKIP][114] ([Intel XE#7174]) +1 other test skip
[114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-3/igt@xe_sriov_admin@bulk-sched-priority-vfs-disabled.html
* igt@xe_sriov_scheduling@nonpreempt-engine-resets-low-priority:
- shard-lnl: NOTRUN -> [SKIP][115] ([Intel XE#8339])
[115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-3/igt@xe_sriov_scheduling@nonpreempt-engine-resets-low-priority.html
* igt@xe_survivability@runtime-survivability:
- shard-lnl: NOTRUN -> [SKIP][116] ([Intel XE#8415])
[116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-4/igt@xe_survivability@runtime-survivability.html
* igt@xe_vm@overcommit-fault-vram-lr-no-overcommit:
- shard-lnl: NOTRUN -> [SKIP][117] ([Intel XE#7892])
[117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-3/igt@xe_vm@overcommit-fault-vram-lr-no-overcommit.html
* igt@xe_waitfence@reltime:
- shard-bmg: [PASS][118] -> [FAIL][119] ([Intel XE#9115])
[118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-5/igt@xe_waitfence@reltime.html
[119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-1/igt@xe_waitfence@reltime.html
* igt@xe_wedged@basic-wedged:
- shard-lnl: NOTRUN -> [ABORT][120] ([Intel XE#8963])
[120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-lnl-8/igt@xe_wedged@basic-wedged.html
#### Possible fixes ####
* igt@kms_hdr@invalid-hdr:
- shard-bmg: [SKIP][121] ([Intel XE#1503]) -> [PASS][122]
[121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-10/igt@kms_hdr@invalid-hdr.html
[122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-7/igt@kms_hdr@invalid-hdr.html
* igt@xe_module_load@load:
- shard-bmg: ([PASS][123], [PASS][124], [PASS][125], [PASS][126], [PASS][127], [PASS][128], [PASS][129], [PASS][130], [SKIP][131], [PASS][132], [PASS][133], [PASS][134], [PASS][135], [PASS][136], [PASS][137], [PASS][138], [PASS][139], [PASS][140], [PASS][141], [PASS][142], [PASS][143], [PASS][144], [PASS][145], [PASS][146], [PASS][147], [PASS][148]) ([Intel XE#2457] / [Intel XE#7405]) -> ([PASS][149], [PASS][150], [PASS][151], [PASS][152], [PASS][153], [PASS][154], [PASS][155], [PASS][156], [PASS][157], [PASS][158], [PASS][159], [PASS][160], [PASS][161], [PASS][162], [PASS][163], [PASS][164], [PASS][165], [PASS][166], [PASS][167], [PASS][168], [PASS][169], [PASS][170], [PASS][171], [PASS][172], [PASS][173])
[123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-10/igt@xe_module_load@load.html
[124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-10/igt@xe_module_load@load.html
[125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-4/igt@xe_module_load@load.html
[126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-6/igt@xe_module_load@load.html
[127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-6/igt@xe_module_load@load.html
[128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-9/igt@xe_module_load@load.html
[129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-2/igt@xe_module_load@load.html
[130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-2/igt@xe_module_load@load.html
[131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-4/igt@xe_module_load@load.html
[132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-9/igt@xe_module_load@load.html
[133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-5/igt@xe_module_load@load.html
[134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-5/igt@xe_module_load@load.html
[135]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-10/igt@xe_module_load@load.html
[136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-8/igt@xe_module_load@load.html
[137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-8/igt@xe_module_load@load.html
[138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-2/igt@xe_module_load@load.html
[139]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-3/igt@xe_module_load@load.html
[140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-3/igt@xe_module_load@load.html
[141]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-3/igt@xe_module_load@load.html
[142]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-9/igt@xe_module_load@load.html
[143]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-4/igt@xe_module_load@load.html
[144]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-4/igt@xe_module_load@load.html
[145]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-1/igt@xe_module_load@load.html
[146]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-1/igt@xe_module_load@load.html
[147]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-7/igt@xe_module_load@load.html
[148]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-7/igt@xe_module_load@load.html
[149]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-10/igt@xe_module_load@load.html
[150]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-4/igt@xe_module_load@load.html
[151]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-9/igt@xe_module_load@load.html
[152]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-2/igt@xe_module_load@load.html
[153]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-10/igt@xe_module_load@load.html
[154]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-1/igt@xe_module_load@load.html
[155]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-6/igt@xe_module_load@load.html
[156]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-7/igt@xe_module_load@load.html
[157]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-4/igt@xe_module_load@load.html
[158]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-4/igt@xe_module_load@load.html
[159]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-3/igt@xe_module_load@load.html
[160]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-3/igt@xe_module_load@load.html
[161]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-6/igt@xe_module_load@load.html
[162]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@xe_module_load@load.html
[163]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-2/igt@xe_module_load@load.html
[164]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@xe_module_load@load.html
[165]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-9/igt@xe_module_load@load.html
[166]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-10/igt@xe_module_load@load.html
[167]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-9/igt@xe_module_load@load.html
[168]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-8/igt@xe_module_load@load.html
[169]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-8/igt@xe_module_load@load.html
[170]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-1/igt@xe_module_load@load.html
[171]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-7/igt@xe_module_load@load.html
[172]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-7/igt@xe_module_load@load.html
[173]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-8/igt@xe_module_load@load.html
* igt@xe_pm@s3-basic-exec:
- shard-bmg: [INCOMPLETE][174] ([Intel XE#8175]) -> [PASS][175]
[174]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-6/igt@xe_pm@s3-basic-exec.html
[175]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-5/igt@xe_pm@s3-basic-exec.html
#### Warnings ####
* igt@xe_exec_reset@gt-reset-fault-injection:
- shard-bmg: [DMESG-WARN][176] ([Intel XE#9130]) -> [ABORT][177] ([Intel XE#9131] / [Intel XE#9145])
[176]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-6/igt@xe_exec_reset@gt-reset-fault-injection.html
[177]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/shard-bmg-9/igt@xe_exec_reset@gt-reset-fault-injection.html
[Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
[Intel XE#1125]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1125
[Intel XE#1127]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1127
[Intel XE#1128]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1128
[Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
[Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
[Intel XE#1397]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1397
[Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
[Intel XE#1407]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1407
[Intel XE#1421]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1421
[Intel XE#1424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1424
[Intel XE#1439]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1439
[Intel XE#1467]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1467
[Intel XE#1470]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1470
[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#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503
[Intel XE#1745]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1745
[Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
[Intel XE#2245]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2245
[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#2321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2321
[Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
[Intel XE#2370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2370
[Intel XE#2413]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2413
[Intel XE#2457]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2457
[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#2893]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2893
[Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
[Intel XE#306]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/306
[Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
[Intel XE#3279]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3279
[Intel XE#3304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3304
[Intel XE#3414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3414
[Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
[Intel XE#3658]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3658
[Intel XE#366]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/366
[Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
[Intel XE#3718]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3718
[Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
[Intel XE#3904]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3904
[Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
[Intel XE#4354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4354
[Intel XE#4596]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4596
[Intel XE#4608]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4608
[Intel XE#5100]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5100
[Intel XE#5813]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5813
[Intel XE#5854]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5854
[Intel XE#5882]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5882
[Intel XE#599]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/599
[Intel XE#607]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/607
[Intel XE#6078]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6078
[Intel XE#6312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6312
[Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
[Intel XE#6540]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6540
[Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
[Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688
[Intel XE#6886]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6886
[Intel XE#6964]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6964
[Intel XE#6969]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6969
[Intel XE#7059]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7059
[Intel XE#7061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7061
[Intel XE#7084]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7084
[Intel XE#7085]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7085
[Intel XE#7174]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7174
[Intel XE#7178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7178
[Intel XE#7179]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7179
[Intel XE#7283]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7283
[Intel XE#7304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7304
[Intel XE#7312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7312
[Intel XE#7322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7322
[Intel XE#7342]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7342
[Intel XE#7343]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7343
[Intel XE#7351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7351
[Intel XE#7355]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7355
[Intel XE#7356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7356
[Intel XE#7358]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7358
[Intel XE#7360]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7360
[Intel XE#7361]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7361
[Intel XE#7367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7367
[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#7374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7374
[Intel XE#7385]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7385
[Intel XE#7402]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7402
[Intel XE#7405]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7405
[Intel XE#7408]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7408
[Intel XE#7413]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7413
[Intel XE#7482]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7482
[Intel XE#7590]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7590
[Intel XE#7591]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7591
[Intel XE#7599]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7599
[Intel XE#7642]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7642
[Intel XE#7679]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7679
[Intel XE#7772]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7772
[Intel XE#7793]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7793
[Intel XE#7865]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7865
[Intel XE#7892]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7892
[Intel XE#7905]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7905
[Intel XE#7935]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7935
[Intel XE#7954]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7954
[Intel XE#7992]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7992
[Intel XE#8007]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8007
[Intel XE#8150]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8150
[Intel XE#8175]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8175
[Intel XE#8265]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8265
[Intel XE#8339]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8339
[Intel XE#836]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/836
[Intel XE#8364]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8364
[Intel XE#8369]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8369
[Intel XE#8370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8370
[Intel XE#8374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8374
[Intel XE#8378]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8378
[Intel XE#8415]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8415
[Intel XE#8608]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8608
[Intel XE#8866]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8866
[Intel XE#8963]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8963
[Intel XE#9003]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9003
[Intel XE#9115]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9115
[Intel XE#9130]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9130
[Intel XE#9131]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9131
[Intel XE#9140]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9140
[Intel XE#9144]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9144
[Intel XE#9145]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9145
[Intel XE#9202]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9202
[Intel XE#9271]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9271
[Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
Build changes
-------------
* Linux: xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8 -> xe-pw-156416v6
IGT_9098: 9098
xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8: 0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8
xe-pw-156416v6: 156416v6
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156416v6/index.html
[-- Attachment #2: Type: text/html, Size: 57734 bytes --]
^ permalink raw reply [flat|nested] 32+ messages in thread
end of thread, other threads:[~2026-09-16 1:55 UTC | newest]
Thread overview: 32+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-15 18:04 [PATCH v6 00/18] Enable DP2.1 alpm Animesh Manna
2026-09-15 18:04 ` [PATCH v6 01/18] drm/i915/alpm: Add DPCD definition for DP2.1 ALPM capability Animesh Manna
2026-09-15 18:04 ` [PATCH v6 02/18] drm/i915/alpm: Move alpm sink capability readout into a separate function Animesh Manna
2026-09-15 18:04 ` [PATCH v6 03/18] drm/i915/alpm: alpm_init() for DP2.1 Animesh Manna
2026-09-15 18:57 ` sashiko-bot
2026-09-15 18:04 ` [PATCH v6 04/18] drm/i915/alpm: Enable debugfs " Animesh Manna
2026-09-15 18:04 ` [PATCH v6 05/18] drm/i915/alpm: Refactor Auxless wake time calculation Animesh Manna
2026-09-15 18:04 ` [PATCH v6 06/18] drm/i915/alpm: Auxless wake time calculation for Xe3p Animesh Manna
2026-09-15 18:04 ` [PATCH v6 07/18] drm/i915/alpm: Modify AUX_LESS_WAKE_TIME bitfield for xe3lpd Animesh Manna
2026-09-15 18:46 ` sashiko-bot
2026-09-15 18:04 ` [PATCH v6 08/18] drm/i915/alpm: table based establishment period Animesh Manna
2026-09-15 18:04 ` [PATCH v6 09/18] drm/i915/alpm: Half LFPS cycle calculation Animesh Manna
2026-09-15 18:53 ` sashiko-bot
2026-09-15 18:04 ` [PATCH v6 10/18] drm/i915/alpm: Modify LFPS cycle count for DP ALPM Animesh Manna
2026-09-15 18:04 ` [PATCH v6 11/18] drm/i915/alpm: Modify LFPS_CYCLE_COUNT bitfield for xe3lpd Animesh Manna
2026-09-15 18:04 ` [PATCH v6 12/18] drm/i915/alpm: Program LTTPR count for DP 2.1 ALPM Animesh Manna
2026-09-15 18:56 ` sashiko-bot
2026-09-15 18:04 ` [PATCH v6 13/18] drm/i915/alpm: Enable MAC Transmitting LFPS for LT PHY Animesh Manna
2026-09-15 18:04 ` [PATCH v6 14/18] drm/i915/alpm: Replace is_edp() with alpm_is_possible() Animesh Manna
2026-09-15 18:57 ` sashiko-bot
2026-09-15 18:04 ` [PATCH v6 15/18] drm/i915/alpm: Introduce has_alpm to decouple from pr/psr2/lobf Animesh Manna
2026-09-15 19:01 ` sashiko-bot
2026-09-15 18:04 ` [PATCH v6 16/18] drm/i915/alpm: Compute and program switch to active latency Animesh Manna
2026-09-15 18:55 ` sashiko-bot
2026-09-15 18:04 ` [PATCH v6 17/18] drm/i915/alpm: Program zero-based LFPS half cycle duration Animesh Manna
2026-09-15 19:02 ` sashiko-bot
2026-09-15 18:04 ` [PATCH v6 18/18] drm/i915/alpm: Disallow ALPM for UHBR link rate Animesh Manna
2026-09-15 19:01 ` sashiko-bot
2026-09-15 18:50 ` ✗ CI.checkpatch: warning for Enable DP2.1 alpm (rev6) Patchwork
2026-09-15 18:52 ` ✓ CI.KUnit: success " Patchwork
2026-09-15 19:29 ` ✓ Xe.CI.BAT: " Patchwork
2026-09-16 1:55 ` ✓ 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;
as well as URLs for NNTP newsgroup(s).