Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/5] drm/xe/hwmon: Update hwmon thermal mailbox handling
@ 2026-09-02 17:55 Karthik Poosa
  2026-09-02 17:55 ` [PATCH v2 1/5] drm/xe/hwmon: Detect unavailable temperature sensors Karthik Poosa
                   ` (7 more replies)
  0 siblings, 8 replies; 15+ messages in thread
From: Karthik Poosa @ 2026-09-02 17:55 UTC (permalink / raw)
  To: intel-xe
  Cc: rodrigo.vivi, anshuman.gupta, badal.nilawar, raag.jadav,
	riana.tauro, sk.anirban, mallesh.koujalagi, soham.purkait,
	Karthik Poosa

This series adds CRI-specific temperature sensor handling to the Xe
hwmon implementation.

CRI platforms may report unavailable temperature sensors and support
a variable number of VRAM temperature channels depending on platform
configuration. This series adds the required sensor presence checks and
uses platform-reported thermal configuration data to expose only valid
temperature-related hwmon attributes.

The series also corrects the telemetry group selection used for memory
controller temperature reporting.

v2:
 - Address review comments from Sashiko, Badal and Raag.
 - Enable IEEE 754 temperature decoding for MMIO temperature registers.
 - Temporarily disable memory controller and PCIe temperatures on CRI.

Karthik Poosa (5):
  drm/xe/hwmon: Detect unavailable temperature sensors
  drm/xe/hwmon: Use VRAM temperature sensor count from thermal config on
    CRI
  drm/xe/hwmon: Correct group selection for memory controller
    temperature
  drm/xe/hwmon: Decode CRI temperature registers as IEEE-754
  drm/xe/hwmon: Disable memory controller and PCIe temperatures on CRI

 drivers/gpu/drm/xe/xe_hwmon.c     | 295 ++++++++++++++++++++++++------
 drivers/gpu/drm/xe/xe_pcode_api.h |   1 +
 2 files changed, 244 insertions(+), 52 deletions(-)

-- 
2.25.1


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

* [PATCH v2 1/5] drm/xe/hwmon: Detect unavailable temperature sensors
  2026-09-02 17:55 [PATCH v2 0/5] drm/xe/hwmon: Update hwmon thermal mailbox handling Karthik Poosa
@ 2026-09-02 17:55 ` Karthik Poosa
  2026-09-02 17:55 ` [PATCH v2 2/5] drm/xe/hwmon: Use VRAM temperature sensor count from thermal config on CRI Karthik Poosa
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 15+ messages in thread
From: Karthik Poosa @ 2026-09-02 17:55 UTC (permalink / raw)
  To: intel-xe
  Cc: rodrigo.vivi, anshuman.gupta, badal.nilawar, raag.jadav,
	riana.tauro, sk.anirban, mallesh.koujalagi, soham.purkait,
	Karthik Poosa

Add is_temp_available() to validate sensor presence.
A temperature reading of 0xFFFFFFF on MMIO and 0xFF from mailbox on CRI
platforms indicates that the corresponding sensor is not present and
should be treated as unavailable.

Use this check from xe_hwmon_temp_is_visible() callback so that attributes
for unavailable sensors are not exposed during hwmon device registration.

Signed-off-by: Karthik Poosa <karthik.poosa@intel.com>
---
v2:
 - Address review comments from sashiko-bot@kernel.org.
 - Address review comments for Badal, Raag.
 - Update is_temp_valid() to check values based on mailbox or MMIO.
 - Add is_temp_is_visible().
 - Update is_vram_ch_available() to is_temp_available() to check if sensor
   is present.

 drivers/gpu/drm/xe/xe_hwmon.c | 102 ++++++++++++++++++++++++----------
 1 file changed, 73 insertions(+), 29 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_hwmon.c b/drivers/gpu/drm/xe/xe_hwmon.c
index 5284cab6703d..9433b47a19c8 100644
--- a/drivers/gpu/drm/xe/xe_hwmon.c
+++ b/drivers/gpu/drm/xe/xe_hwmon.c
@@ -813,12 +813,20 @@ static int xe_hwmon_pcode_read_thermal_info(struct xe_hwmon *hwmon)
 	return ret;
 }
 
+static inline bool is_temp_valid(const struct xe_hwmon *hwmon, u32 value, bool is_mmio)
+{
+	if (hwmon->xe->info.platform >= XE_CRESCENTISLAND)
+		return value != (is_mmio ? U32_MAX : U8_MAX);
+
+	return value != 0;
+}
+
 static int get_mc_temp(struct xe_hwmon *hwmon, long *val)
 {
 	struct xe_tile *root_tile = xe_device_get_root_tile(hwmon->xe);
 	u32 *dword = (u32 *)hwmon->temp.value;
+	int ret, i, count = 0;
 	s32 average = 0;
-	int ret, i;
 
 	for (i = 0; i < DIV_ROUND_UP(TEMP_LIMIT_MAX, sizeof(u32)); i++) {
 		ret = xe_pcode_read(root_tile, PCODE_MBOX(PCODE_THERMAL_INFO, READ_THERMAL_DATA, i),
@@ -828,11 +836,23 @@ static int get_mc_temp(struct xe_hwmon *hwmon, long *val)
 		drm_dbg(&hwmon->xe->drm, "thermal data for group %d val 0x%x\n", i, dword[i]);
 	}
 
-	for (i = TEMP_INDEX_MCTRL; i < hwmon->temp.count - 1; i++)
+	for (i = TEMP_INDEX_MCTRL; i < hwmon->temp.count - 1; i++) {
+		if (!is_temp_valid(hwmon, hwmon->temp.value[i], false))
+			continue;
 		average += hwmon->temp.value[i];
+		count++;
+	}
+
+	if (!count) {
+		drm_dbg(&hwmon->xe->drm, "Memory controller temperature unavailable!\n");
+		return -ENXIO;
+	}
+
+	average /= count;
+
+	if (val)
+		*val = average * MILLIDEGREE_PER_DEGREE;
 
-	average /= (hwmon->temp.count - TEMP_INDEX_MCTRL - 1);
-	*val = average * MILLIDEGREE_PER_DEGREE;
 	return 0;
 }
 
@@ -852,7 +872,13 @@ static int get_pcie_temp(struct xe_hwmon *hwmon, long *val)
 		data = REG_FIELD_GET(PCIE_SENSOR_MASK, data);
 
 	data = REG_FIELD_GET(TEMP_MASK, data);
-	*val = (s8)data * MILLIDEGREE_PER_DEGREE;
+	if (!is_temp_valid(hwmon, data, false)) {
+		drm_dbg(&hwmon->xe->drm, "PCIe temperature not available\n");
+		return -ENXIO;
+	}
+
+	if (val)
+		*val = (s8)data * MILLIDEGREE_PER_DEGREE;
 
 	return 0;
 }
@@ -951,19 +977,41 @@ static void xe_hwmon_get_voltage(struct xe_hwmon *hwmon, int channel, long *valu
 	*value = DIV_ROUND_CLOSEST(REG_FIELD_GET(VOLTAGE_MASK, reg_val) * 2500, SF_VOLTAGE);
 }
 
-static inline bool is_vram_ch_available(struct xe_hwmon *hwmon, int channel)
+static bool is_temp_available(struct xe_hwmon *hwmon, int channel)
 {
 	struct xe_mmio *mmio = xe_root_tile_mmio(hwmon->xe);
-	int vram_id = channel - CHANNEL_VRAM_N;
-	struct xe_reg vram_reg;
+	struct xe_reg reg;
+	u32 reg_val;
 
-	vram_reg = xe_hwmon_get_reg(hwmon, REG_TEMP, channel);
-	if (!xe_reg_is_valid(vram_reg) || !xe_mmio_read32(mmio, vram_reg))
-		return false;
+	switch (channel) {
+	case CHANNEL_PKG:
+	case CHANNEL_VRAM:
+	case CHANNEL_VRAM_N...CHANNEL_VRAM_N_MAX:
+		reg = xe_hwmon_get_reg(hwmon, REG_TEMP, channel);
+		if (!xe_reg_is_valid(reg))
+			return false;
 
-	/* Create label only for available vram channel */
-	sprintf(hwmon->temp.vram_label[vram_id], "vram_ch_%d", vram_id);
-	return true;
+		reg_val = xe_mmio_read32(mmio, reg);
+		if (!is_temp_valid(hwmon, reg_val, true)) {
+			if (channel >= CHANNEL_VRAM_N)
+				drm_dbg(&hwmon->xe->drm,
+					"vram channel %d unavailable, val 0x%x\n",
+					channel - CHANNEL_VRAM_N, reg_val);
+			return false;
+		}
+
+		if (channel >= CHANNEL_VRAM_N)
+			sprintf(hwmon->temp.vram_label[channel - CHANNEL_VRAM_N],
+				"vram_ch_%d", channel - CHANNEL_VRAM_N);
+
+		return true;
+	case CHANNEL_MCTRL:
+		return hwmon->temp.count && !get_mc_temp(hwmon, NULL);
+	case CHANNEL_PCIE:
+		return hwmon->temp.count && !get_pcie_temp(hwmon, NULL);
+	default:
+		return false;
+	}
 }
 
 static umode_t
@@ -973,14 +1021,13 @@ xe_hwmon_temp_is_visible(struct xe_hwmon *hwmon, u32 attr, int channel)
 	case hwmon_temp_emergency:
 		switch (channel) {
 		case CHANNEL_PKG:
-			return hwmon->temp.limit[TEMP_LIMIT_PKG_SHUTDOWN] ? 0444 : 0;
-		case CHANNEL_VRAM:
-			return hwmon->temp.limit[TEMP_LIMIT_MEM_SHUTDOWN] ? 0444 : 0;
 		case CHANNEL_MCTRL:
 		case CHANNEL_PCIE:
-			return hwmon->temp.count ? 0444 : 0;
+			return (is_temp_available(hwmon, channel) &&
+				hwmon->temp.limit[TEMP_LIMIT_PKG_SHUTDOWN]) ? 0444 : 0;
+		case CHANNEL_VRAM:
 		case CHANNEL_VRAM_N...CHANNEL_VRAM_N_MAX:
-			return (is_vram_ch_available(hwmon, channel) &&
+			return (is_temp_available(hwmon, channel) &&
 				hwmon->temp.limit[TEMP_LIMIT_MEM_SHUTDOWN]) ? 0444 : 0;
 		default:
 			return 0;
@@ -988,14 +1035,13 @@ xe_hwmon_temp_is_visible(struct xe_hwmon *hwmon, u32 attr, int channel)
 	case hwmon_temp_crit:
 		switch (channel) {
 		case CHANNEL_PKG:
-			return hwmon->temp.limit[TEMP_LIMIT_PKG_CRIT] ? 0444 : 0;
-		case CHANNEL_VRAM:
-			return hwmon->temp.limit[TEMP_LIMIT_MEM_CRIT] ? 0444 : 0;
 		case CHANNEL_MCTRL:
 		case CHANNEL_PCIE:
-			return hwmon->temp.count ? 0444 : 0;
+			return (is_temp_available(hwmon, channel) &&
+				hwmon->temp.limit[TEMP_LIMIT_PKG_CRIT]) ? 0444 : 0;
+		case CHANNEL_VRAM:
 		case CHANNEL_VRAM_N...CHANNEL_VRAM_N_MAX:
-			return (is_vram_ch_available(hwmon, channel) &&
+			return (is_temp_available(hwmon, channel) &&
 				hwmon->temp.limit[TEMP_LIMIT_MEM_CRIT]) ? 0444 : 0;
 		default:
 			return 0;
@@ -1003,7 +1049,8 @@ xe_hwmon_temp_is_visible(struct xe_hwmon *hwmon, u32 attr, int channel)
 	case hwmon_temp_max:
 		switch (channel) {
 		case CHANNEL_PKG:
-			return hwmon->temp.limit[TEMP_LIMIT_PKG_MAX] ? 0444 : 0;
+			return (is_temp_available(hwmon, channel) &&
+				hwmon->temp.limit[TEMP_LIMIT_PKG_MAX]) ? 0444 : 0;
 		default:
 			return 0;
 		}
@@ -1012,13 +1059,10 @@ xe_hwmon_temp_is_visible(struct xe_hwmon *hwmon, u32 attr, int channel)
 		switch (channel) {
 		case CHANNEL_PKG:
 		case CHANNEL_VRAM:
-			return xe_reg_is_valid(xe_hwmon_get_reg(hwmon, REG_TEMP,
-								channel)) ? 0444 : 0;
 		case CHANNEL_MCTRL:
 		case CHANNEL_PCIE:
-			return hwmon->temp.count ? 0444 : 0;
 		case CHANNEL_VRAM_N...CHANNEL_VRAM_N_MAX:
-			return is_vram_ch_available(hwmon, channel) ? 0444 : 0;
+			return is_temp_available(hwmon, channel) ? 0444 : 0;
 		default:
 			return 0;
 		}
-- 
2.25.1


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

* [PATCH v2 2/5] drm/xe/hwmon: Use VRAM temperature sensor count from thermal config on CRI
  2026-09-02 17:55 [PATCH v2 0/5] drm/xe/hwmon: Update hwmon thermal mailbox handling Karthik Poosa
  2026-09-02 17:55 ` [PATCH v2 1/5] drm/xe/hwmon: Detect unavailable temperature sensors Karthik Poosa
@ 2026-09-02 17:55 ` Karthik Poosa
  2026-09-02 18:10   ` sashiko-bot
  2026-09-02 18:43   ` Rodrigo Vivi
  2026-09-02 17:55 ` [PATCH v2 3/5] drm/xe/hwmon: Correct group selection for memory controller temperature Karthik Poosa
                   ` (5 subsequent siblings)
  7 siblings, 2 replies; 15+ messages in thread
From: Karthik Poosa @ 2026-09-02 17:55 UTC (permalink / raw)
  To: intel-xe
  Cc: rodrigo.vivi, anshuman.gupta, badal.nilawar, raag.jadav,
	riana.tauro, sk.anirban, mallesh.koujalagi, soham.purkait,
	Karthik Poosa

Read the number of VRAM temperature sensor channels from the second byte
of READ_THERMAL_CONFIG on CRI platforms. Use the reported count to avoid
exposing hwmon attributes for unavailable VRAM temperature sensors, while
retaining the maximum supported channel count on non-CRI platforms.

Signed-off-by: Karthik Poosa <karthik.poosa@intel.com>
---
v2:
 - Address review comments from sashiko-bot@kernel.org.
 - Address review comments from Badal and Raag.
 - Update HWMON_CHANNEL_INFO() to supports maximum VRAM channels of CRI.

 drivers/gpu/drm/xe/xe_hwmon.c     | 102 ++++++++++++++++++++++++++++--
 drivers/gpu/drm/xe/xe_pcode_api.h |   1 +
 2 files changed, 96 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_hwmon.c b/drivers/gpu/drm/xe/xe_hwmon.c
index 9433b47a19c8..a7c04c25e1c2 100644
--- a/drivers/gpu/drm/xe/xe_hwmon.c
+++ b/drivers/gpu/drm/xe/xe_hwmon.c
@@ -39,7 +39,8 @@ enum xe_hwmon_reg_operation {
 	REG_READ64,
 };
 
-#define MAX_VRAM_CHANNELS      (16)
+#define XE_MAX_VRAM_CHANNELS	(80)
+#define BMG_MAX_VRAM_CHANNELS	(16)
 
 enum xe_hwmon_channel {
 	CHANNEL_CARD,
@@ -48,7 +49,8 @@ enum xe_hwmon_channel {
 	CHANNEL_MCTRL,
 	CHANNEL_PCIE,
 	CHANNEL_VRAM_N,
-	CHANNEL_VRAM_N_MAX = CHANNEL_VRAM_N + MAX_VRAM_CHANNELS - 1,
+	/* Compile-time upper bound; actual channel count is hwmon->temp.vram_count */
+	CHANNEL_VRAM_N_MAX = CHANNEL_VRAM_N + XE_MAX_VRAM_CHANNELS - 1,
 	CHANNEL_MAX,
 };
 
@@ -142,12 +144,14 @@ struct xe_hwmon_thermal_info {
 		/** @data: temperature limits in dwords */
 		u32 data[DIV_ROUND_UP(TEMP_LIMIT_MAX, sizeof(u32))];
 	};
-	/** @count: no of temperature sensors available for the platform */
+	/** @count: temperature sensors count from READ_THERMAL_CONFIG */
 	u8 count;
+	/** @vram_count: number of VRAM temperature sensors available for the platform */
+	u8 vram_count;
 	/** @value: signed value from each sensor */
 	s8 value[U8_MAX];
-	/** @vram_label: vram label names */
-	char vram_label[MAX_VRAM_CHANNELS][MAX_LABEL_SIZE];
+	/** @vram_label: vram label names, dynamically allocated based on vram_count */
+	char (*vram_label)[MAX_LABEL_SIZE];
 };
 
 /**
@@ -271,7 +275,7 @@ static struct xe_reg xe_hwmon_get_reg(struct xe_hwmon *hwmon, enum xe_hwmon_reg
 				return BMG_PACKAGE_TEMPERATURE;
 			else if (channel == CHANNEL_VRAM)
 				return BMG_VRAM_TEMPERATURE;
-			else if (in_range(channel, CHANNEL_VRAM_N, MAX_VRAM_CHANNELS))
+			else if (in_range(channel, CHANNEL_VRAM_N, hwmon->temp.vram_count))
 				return BMG_VRAM_TEMPERATURE_N(channel - CHANNEL_VRAM_N);
 		} else if (xe->info.platform == XE_DG2) {
 			if (channel == CHANNEL_PKG)
@@ -777,6 +781,70 @@ static const struct hwmon_channel_info * const hwmon_info[] = {
 			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
 			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
 			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
+			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
 			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL),
 	HWMON_CHANNEL_INFO(power, HWMON_P_MAX | HWMON_P_RATED_MAX | HWMON_P_LABEL | HWMON_P_CRIT |
 			   HWMON_P_CAP,
@@ -810,6 +878,17 @@ static int xe_hwmon_pcode_read_thermal_info(struct xe_hwmon *hwmon)
 	drm_dbg(&hwmon->xe->drm, "thermal config count 0x%x\n", config);
 	hwmon->temp.count = REG_FIELD_GET(TEMP_MASK, config);
 
+	if (hwmon->xe->info.platform >= XE_CRESCENTISLAND) {
+		hwmon->temp.vram_count = REG_FIELD_GET(VRAM_COUNT_MASK, config);
+		if (hwmon->temp.vram_count > XE_MAX_VRAM_CHANNELS) {
+			drm_warn(&hwmon->xe->drm, "VRAM channel count %d exceeds max %d, clamping\n",
+				 hwmon->temp.vram_count, XE_MAX_VRAM_CHANNELS);
+			hwmon->temp.vram_count = XE_MAX_VRAM_CHANNELS;
+		}
+	} else {
+		hwmon->temp.vram_count = BMG_MAX_VRAM_CHANNELS;
+	}
+
 	return ret;
 }
 
@@ -1507,7 +1586,7 @@ static int xe_hwmon_read_label(struct device *dev,
 			*str = "mctrl";
 		else if (channel == CHANNEL_PCIE)
 			*str = "pcie";
-		else if (in_range(channel, CHANNEL_VRAM_N, MAX_VRAM_CHANNELS))
+		else if (in_range(channel, CHANNEL_VRAM_N, hwmon->temp.vram_count))
 			*str = hwmon->temp.vram_label[channel - CHANNEL_VRAM_N];
 		return 0;
 	case hwmon_power:
@@ -1636,6 +1715,15 @@ int xe_hwmon_register(struct xe_device *xe)
 
 	xe_hwmon_get_preregistration_info(hwmon);
 
+	if (hwmon->temp.vram_count) {
+		hwmon->temp.vram_label = devm_kcalloc(dev, hwmon->temp.vram_count,
+						      MAX_LABEL_SIZE, GFP_KERNEL);
+		if (!hwmon->temp.vram_label) {
+			xe->hwmon = NULL;
+			return -ENOMEM;
+		}
+	}
+
 	drm_dbg(&xe->drm, "Register xe hwmon interface\n");
 
 	/*  hwmon_dev points to device hwmon<i> */
diff --git a/drivers/gpu/drm/xe/xe_pcode_api.h b/drivers/gpu/drm/xe/xe_pcode_api.h
index 94575c476e3d..e1079eff72c6 100644
--- a/drivers/gpu/drm/xe/xe_pcode_api.h
+++ b/drivers/gpu/drm/xe/xe_pcode_api.h
@@ -57,6 +57,7 @@
 #define   PCODE_THERMAL_INFO			0x25
 #define     READ_THERMAL_LIMITS			0x0
 #define     READ_THERMAL_CONFIG			0x1
+#define       VRAM_COUNT_MASK			REG_GENMASK(15, 8)
 #define     READ_THERMAL_DATA			0x2
 #define       PCIE_SENSOR_GROUP_ID		0x2
 #define       PCIE_SENSOR_MASK			REG_GENMASK(31, 16)
-- 
2.25.1


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

* [PATCH v2 3/5] drm/xe/hwmon: Correct group selection for memory controller temperature
  2026-09-02 17:55 [PATCH v2 0/5] drm/xe/hwmon: Update hwmon thermal mailbox handling Karthik Poosa
  2026-09-02 17:55 ` [PATCH v2 1/5] drm/xe/hwmon: Detect unavailable temperature sensors Karthik Poosa
  2026-09-02 17:55 ` [PATCH v2 2/5] drm/xe/hwmon: Use VRAM temperature sensor count from thermal config on CRI Karthik Poosa
@ 2026-09-02 17:55 ` Karthik Poosa
  2026-09-02 18:17   ` sashiko-bot
  2026-09-02 17:55 ` [PATCH v2 4/5] drm/xe/hwmon: Decode CRI temperature registers as IEEE-754 Karthik Poosa
                   ` (4 subsequent siblings)
  7 siblings, 1 reply; 15+ messages in thread
From: Karthik Poosa @ 2026-09-02 17:55 UTC (permalink / raw)
  To: intel-xe
  Cc: rodrigo.vivi, anshuman.gupta, badal.nilawar, raag.jadav,
	riana.tauro, sk.anirban, mallesh.koujalagi, soham.purkait,
	Karthik Poosa

Read all the necessary groups when reading memory controller
temperature in get_mc_temp().

Signed-off-by: Karthik Poosa <karthik.poosa@intel.com>
Fixes: 3a0cb885e111 ("drm/xe/hwmon: Expose memory controller temperature")
---

v2:
 - Address review comment from sashiko.
 - Change the hwmon->temp.value[] size from U8_MAX to U8_MAX+1.

 drivers/gpu/drm/xe/xe_hwmon.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_hwmon.c b/drivers/gpu/drm/xe/xe_hwmon.c
index a7c04c25e1c2..2a5d91fa3afa 100644
--- a/drivers/gpu/drm/xe/xe_hwmon.c
+++ b/drivers/gpu/drm/xe/xe_hwmon.c
@@ -149,7 +149,7 @@ struct xe_hwmon_thermal_info {
 	/** @vram_count: number of VRAM temperature sensors available for the platform */
 	u8 vram_count;
 	/** @value: signed value from each sensor */
-	s8 value[U8_MAX];
+	s8 value[U8_MAX + 1];
 	/** @vram_label: vram label names, dynamically allocated based on vram_count */
 	char (*vram_label)[MAX_LABEL_SIZE];
 };
@@ -907,7 +907,7 @@ static int get_mc_temp(struct xe_hwmon *hwmon, long *val)
 	int ret, i, count = 0;
 	s32 average = 0;
 
-	for (i = 0; i < DIV_ROUND_UP(TEMP_LIMIT_MAX, sizeof(u32)); i++) {
+	for (i = 0; i < DIV_ROUND_UP(hwmon->temp.count, sizeof(u32)); i++) {
 		ret = xe_pcode_read(root_tile, PCODE_MBOX(PCODE_THERMAL_INFO, READ_THERMAL_DATA, i),
 				    (dword + i), NULL);
 		if (ret)
-- 
2.25.1


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

* [PATCH v2 4/5] drm/xe/hwmon: Decode CRI temperature registers as IEEE-754
  2026-09-02 17:55 [PATCH v2 0/5] drm/xe/hwmon: Update hwmon thermal mailbox handling Karthik Poosa
                   ` (2 preceding siblings ...)
  2026-09-02 17:55 ` [PATCH v2 3/5] drm/xe/hwmon: Correct group selection for memory controller temperature Karthik Poosa
@ 2026-09-02 17:55 ` Karthik Poosa
  2026-09-02 18:08   ` sashiko-bot
  2026-09-02 17:55 ` [PATCH v2 5/5] drm/xe/hwmon: Disable memory controller and PCIe temperatures on CRI Karthik Poosa
                   ` (3 subsequent siblings)
  7 siblings, 1 reply; 15+ messages in thread
From: Karthik Poosa @ 2026-09-02 17:55 UTC (permalink / raw)
  To: intel-xe
  Cc: rodrigo.vivi, anshuman.gupta, badal.nilawar, raag.jadav,
	riana.tauro, sk.anirban, mallesh.koujalagi, soham.purkait,
	Karthik Poosa

CRI temperature registers encode package and VRAM temperatures as
IEEE-754 floating-point values. Decode these values before exposing
them through hwmon.
 
Use integer-based IEEE-754 decoding since kernel code does not use
floating-point operations and hwmon reports integer temperatures.

Signed-off-by: Karthik Poosa <karthik.poosa@intel.com>
Assisted-by: GitHub Copilot; Model: MAI-Code-1.1-Flash
---
 drivers/gpu/drm/xe/xe_hwmon.c | 81 +++++++++++++++++++++++++++++------
 1 file changed, 67 insertions(+), 14 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_hwmon.c b/drivers/gpu/drm/xe/xe_hwmon.c
index 2a5d91fa3afa..639fdb09ab3e 100644
--- a/drivers/gpu/drm/xe/xe_hwmon.c
+++ b/drivers/gpu/drm/xe/xe_hwmon.c
@@ -1150,6 +1150,58 @@ xe_hwmon_temp_is_visible(struct xe_hwmon *hwmon, u32 attr, int channel)
 	}
 }
 
+/**
+ * xe_hwmon_temperature_decode - Decode an IEEE-754 temperature register value
+ * @reg_val: The raw register value to decode
+ *
+ * IEEE-754 single-precision format:
+ *
+ *  31 30                         23 22                         0
+ * +--+-----------------------------+----------------------------+
+ * | S|          exponent           |          fraction          |
+ * +--+-----------------------------+----------------------------+
+ *
+ * value = (-1)^S * 1.fraction * 2^(exponent - 127)
+ *
+ * Return: 0 on success or an error if @reg_val is non-finite or cannot be
+ * represented in millidegrees Celsius.
+ */
+static int xe_hwmon_temperature_decode(u32 reg_val, long *temperature)
+{
+	u32 exponent = (reg_val >> 23) & 0xff;
+	u32 mantissa = reg_val & 0x7fffff;
+	s64 value;
+	int shift;
+
+	/* Exponent 0xff encodes infinity or NaN. */
+	if (exponent == 0xff)
+		return -EINVAL;
+
+	/* Subnormal values are smaller than one millidegree Celsius. */
+	if (!exponent) {
+		*temperature = 0;
+		return 0;
+	}
+
+	value = (s64)(mantissa | BIT(23)) * MILLIDEGREE_PER_DEGREE;
+	shift = exponent - 150;
+	if (shift >= 0) {
+		if (shift >= BITS_PER_LONG || value > (LONG_MAX >> shift))
+			return -ERANGE;
+		value <<= shift;
+	} else if (shift > -64) {
+		value >>= -shift;
+	} else {
+		value = 0;
+	}
+
+	if (reg_val & BIT(31))
+		value = -value;
+
+	*temperature = value;
+	return 0;
+}
+
 static int
 xe_hwmon_temp_read(struct xe_hwmon *hwmon, u32 attr, int channel, long *val)
 {
@@ -1159,26 +1211,27 @@ xe_hwmon_temp_read(struct xe_hwmon *hwmon, u32 attr, int channel, long *val)
 	switch (attr) {
 	case hwmon_temp_input:
 		switch (channel) {
-		case CHANNEL_PKG:
-		case CHANNEL_VRAM:
-			reg_val = xe_mmio_read32(mmio, xe_hwmon_get_reg(hwmon, REG_TEMP, channel));
-
-			/* HW register value is in degrees Celsius, convert to millidegrees. */
-			*val = REG_FIELD_GET(TEMP_MASK, reg_val) * MILLIDEGREE_PER_DEGREE;
-			return 0;
 		case CHANNEL_MCTRL:
 			return get_mc_temp(hwmon, val);
 		case CHANNEL_PCIE:
 			return get_pcie_temp(hwmon, val);
+		case CHANNEL_PKG:
+		case CHANNEL_VRAM:
 		case CHANNEL_VRAM_N...CHANNEL_VRAM_N_MAX:
 			reg_val = xe_mmio_read32(mmio, xe_hwmon_get_reg(hwmon, REG_TEMP, channel));
-			/*
-			 * This temperature format is 24 bit [31:8] signed integer and 8 bit
-			 * [7:0] fraction.
-			 */
-			*val = (s32)(REG_FIELD_GET(TEMP_MASK_VRAM_N, reg_val)) *
-				(REG_FIELD_GET(TEMP_SIGN_MASK, reg_val) ? -1 : 1) *
-				 MILLIDEGREE_PER_DEGREE;
+			if (hwmon->xe->info.platform >= XE_CRESCENTISLAND) {
+				return xe_hwmon_temperature_decode((u32)reg_val, val);
+			} else if (channel >= CHANNEL_VRAM_N) {
+				/*
+				 * This temperature format is 24 bit [31:8] signed integer and 8 bit
+				 * [7:0] fraction for platforms before CRI.
+				 */
+				*val = (s32)REG_FIELD_GET(TEMP_MASK_VRAM_N, reg_val) *
+					(REG_FIELD_GET(TEMP_SIGN_MASK, reg_val) ? -1 : 1) *
+					MILLIDEGREE_PER_DEGREE;
+			} else {
+				*val = REG_FIELD_GET(TEMP_MASK, reg_val) * MILLIDEGREE_PER_DEGREE;
+			}
 			return 0;
 		default:
 			return -EOPNOTSUPP;
-- 
2.25.1


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

* [PATCH v2 5/5] drm/xe/hwmon: Disable memory controller and PCIe temperatures on CRI
  2026-09-02 17:55 [PATCH v2 0/5] drm/xe/hwmon: Update hwmon thermal mailbox handling Karthik Poosa
                   ` (3 preceding siblings ...)
  2026-09-02 17:55 ` [PATCH v2 4/5] drm/xe/hwmon: Decode CRI temperature registers as IEEE-754 Karthik Poosa
@ 2026-09-02 17:55 ` Karthik Poosa
  2026-09-02 18:07   ` sashiko-bot
  2026-09-02 18:28 ` ✓ CI.KUnit: success for drm/xe/hwmon: Update hwmon thermal mailbox handling (rev2) Patchwork
                   ` (2 subsequent siblings)
  7 siblings, 1 reply; 15+ messages in thread
From: Karthik Poosa @ 2026-09-02 17:55 UTC (permalink / raw)
  To: intel-xe
  Cc: rodrigo.vivi, anshuman.gupta, badal.nilawar, raag.jadav,
	riana.tauro, sk.anirban, mallesh.koujalagi, soham.purkait,
	Karthik Poosa

Temporarily disable memory controller and PCIe temperature reporting on
CRI platforms.
 
The definitions and interpretation of these temperature sources are not
yet sufficiently clear, which may result in inaccurate reporting.
Disable them until the hardware interface and corresponding definitions
are fully validated.

Signed-off-by: Karthik Poosa <karthik.poosa@intel.com>
---
 drivers/gpu/drm/xe/xe_hwmon.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/gpu/drm/xe/xe_hwmon.c b/drivers/gpu/drm/xe/xe_hwmon.c
index 639fdb09ab3e..79a3f081ee9e 100644
--- a/drivers/gpu/drm/xe/xe_hwmon.c
+++ b/drivers/gpu/drm/xe/xe_hwmon.c
@@ -1085,8 +1085,14 @@ static bool is_temp_available(struct xe_hwmon *hwmon, int channel)
 
 		return true;
 	case CHANNEL_MCTRL:
+		if (hwmon->xe->info.platform >= XE_CRESCENTISLAND)
+			return false;
+
 		return hwmon->temp.count && !get_mc_temp(hwmon, NULL);
 	case CHANNEL_PCIE:
+		if (hwmon->xe->info.platform >= XE_CRESCENTISLAND)
+			return false;
+
 		return hwmon->temp.count && !get_pcie_temp(hwmon, NULL);
 	default:
 		return false;
-- 
2.25.1


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

* Re: [PATCH v2 5/5] drm/xe/hwmon: Disable memory controller and PCIe temperatures on CRI
  2026-09-02 17:55 ` [PATCH v2 5/5] drm/xe/hwmon: Disable memory controller and PCIe temperatures on CRI Karthik Poosa
@ 2026-09-02 18:07   ` sashiko-bot
  2026-09-03  6:11     ` Poosa, Karthik
  0 siblings, 1 reply; 15+ messages in thread
From: sashiko-bot @ 2026-09-02 18:07 UTC (permalink / raw)
  To: Karthik Poosa; +Cc: intel-xe

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] The patch uses an enum ordering check that inadvertently disables memory controller and PCIe temperatures on Nova Lake P, splitting the Novalake platform family.
--

commit 91ec5832293666790affd1f3a6202739f54f4e49
Author: Karthik Poosa <karthik.poosa@intel.com>

    drm/xe/hwmon: Disable memory controller and PCIe temperatures on CRI

    Temporarily disable memory controller and PCIe temperature reporting on
    CRI platforms. The definitions and interpretation of these temperature
    sources are not yet sufficiently clear, which may result in inaccurate
    reporting.

> diff --git a/drivers/gpu/drm/xe/xe_hwmon.c b/drivers/gpu/drm/xe/xe_hwmon.c
> index c2b8d4c79783a..5b2cef292ffcc 100644
> --- a/drivers/gpu/drm/xe/xe_hwmon.c
> +++ b/drivers/gpu/drm/xe/xe_hwmon.c
> @@ -1061,8 +1061,14 @@ static bool is_temp_available(struct xe_hwmon *hwmon, int channel)
>  
>  		return true;
>  	case CHANNEL_MCTRL:
> +		if (hwmon->xe->info.platform >= XE_CRESCENTISLAND)
> +			return false;
> +
>  		return hwmon->temp.count && !get_mc_temp(hwmon, NULL);
>  	case CHANNEL_PCIE:
> +		if (hwmon->xe->info.platform >= XE_CRESCENTISLAND)
> +			return false;
> +

[Severity: Medium]
Does this check inadvertently affect Nova Lake P?

Looking at the enum definition in xe_platform_types.h, XE_NOVALAKE_P is
defined after XE_CRESCENTISLAND, while XE_NOVALAKE_S is defined before it:

	XE_NOVALAKE_S,
	XE_CRESCENTISLAND,
	XE_NOVALAKE_P,

Using the >= operator will disable memory controller and PCIe temperatures on
Nova Lake P, while they remain enabled for Nova Lake S. This seems to
contradict the commit message which states this disables temperatures on CRI
platforms.

Should these checks use == XE_CRESCENTISLAND instead to avoid splitting the
Novalake family?

>  		return hwmon->temp.count && !get_pcie_temp(hwmon, NULL);
>  	default:
>  		return false;

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260902175507.3910573-1-karthik.poosa@intel.com?part=5

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

* Re: [PATCH v2 4/5] drm/xe/hwmon: Decode CRI temperature registers as IEEE-754
  2026-09-02 17:55 ` [PATCH v2 4/5] drm/xe/hwmon: Decode CRI temperature registers as IEEE-754 Karthik Poosa
@ 2026-09-02 18:08   ` sashiko-bot
  0 siblings, 0 replies; 15+ messages in thread
From: sashiko-bot @ 2026-09-02 18:08 UTC (permalink / raw)
  To: Karthik Poosa; +Cc: intel-xe

Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Medium] Missing bounds check for negative shift values leads to integer overflow on 32-bit systems.
- [Medium] Missing REG_TEMP register definitions for XE_CRESCENTISLAND causes temperature attributes to be hidden and new decoding logic to be dead code.
--

commit 0e96a51c64ab3a240ac604df829dbc789366c5c7
Author: Karthik Poosa <karthik.poosa@intel.com>
Subject: drm/xe/hwmon: Decode CRI temperature registers as IEEE-754

This commit adds support for decoding Crescent Island (CRI) hardware
temperature registers, which encode package and VRAM temperatures as
IEEE-754 floating-point values. It introduces an integer-based decoder
to properly convert and expose these values through the hwmon subsystem.

> diff --git a/drivers/gpu/drm/xe/xe_hwmon.c b/drivers/gpu/drm/xe/xe_hwmon.c
> index 3a675d7b6758b..c2b8d4c79783a 100644
> --- a/drivers/gpu/drm/xe/xe_hwmon.c
> +++ b/drivers/gpu/drm/xe/xe_hwmon.c
[ ... ]
> +static int xe_hwmon_temperature_decode(u32 reg_val, long *temperature)
> +{
> +	u32 exponent = (reg_val >> 23) & 0xff;
> +	u32 mantissa = reg_val & 0x7fffff;
> +	s64 value;
> +	int shift;
[ ... ]
> +	value = (s64)(mantissa | BIT(23)) * MILLIDEGREE_PER_DEGREE;
> +	shift = exponent - 150;
> +	if (shift >= 0) {
> +		if (shift >= BITS_PER_LONG || value > (LONG_MAX >> shift))
> +			return -ERANGE;
> +		value <<= shift;
> +	} else if (shift > -64) {
> +		value >>= -shift;

[Severity: Medium]
Does this negative shift path need bounds checking for 32-bit systems?

Since long is 32 bits on those systems, the computed value before the
shift might require up to 34 bits. If the exponent is 148 or 149
(resulting in a shift of -2 or -1), the right-shifted value can still
take 32 or 33 bits, exceeding LONG_MAX. 

This would cause the value to silently overflow when assigned to 
long *temperature, resulting in a wrapped negative temperature instead of
returning an error.

> +	} else {
> +		value = 0;
> +	}
> +
> +	if (reg_val & BIT(31))
> +		value = -value;
> +
> +	*temperature = value;
> +	return 0;
> +}
[ ... ]
> @@ -1135,26 +1187,27 @@ xe_hwmon_temp_read(struct xe_hwmon *hwmon, u32 attr, int channel, long *val)
>  	switch (attr) {
>  	case hwmon_temp_input:
>  		switch (channel) {
[ ... ]
>  		case CHANNEL_VRAM_N...CHANNEL_VRAM_N_MAX:
>  			reg_val = xe_mmio_read32(mmio, xe_hwmon_get_reg(hwmon, REG_TEMP, channel));
> +			if (hwmon->xe->info.platform >= XE_CRESCENTISLAND) {
> +				return xe_hwmon_temperature_decode((u32)reg_val, val);

[Severity: Medium]
Will this new decoding logic for XE_CRESCENTISLAND ever be reached?

When the hwmon subsystem initializes and calls xe_hwmon_temp_is_visible(),
it checks is_temp_available(), which in turn calls 
xe_hwmon_get_reg(..., REG_TEMP, channel). 

Currently, xe_hwmon_get_reg() only defines REG_TEMP for BATTLEMAGE and DG2,
meaning it falls through and returns an invalid XE_REG(0) for Crescent
Island. Because the register is invalid, is_temp_available() will return
false, making the sysfs temperature attributes invisible and leaving this
decoding logic as dead code. 

Should xe_hwmon_get_reg() be updated to include Crescent Island?

> +			} else if (channel >= CHANNEL_VRAM_N) {
> +				/*
> +				 * This temperature format is 24 bit [31:8] signed integer and 8 bit
> +				 * [7:0] fraction for platforms before CRI.
> +				 */
[ ... ]

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260902175507.3910573-1-karthik.poosa@intel.com?part=4

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

* Re: [PATCH v2 2/5] drm/xe/hwmon: Use VRAM temperature sensor count from thermal config on CRI
  2026-09-02 17:55 ` [PATCH v2 2/5] drm/xe/hwmon: Use VRAM temperature sensor count from thermal config on CRI Karthik Poosa
@ 2026-09-02 18:10   ` sashiko-bot
  2026-09-02 18:43   ` Rodrigo Vivi
  1 sibling, 0 replies; 15+ messages in thread
From: sashiko-bot @ 2026-09-02 18:10 UTC (permalink / raw)
  To: Karthik Poosa; +Cc: intel-xe

Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Medium] VRAM temperature sensors will not be exposed on Crescent Island (CRI) platforms because `xe_hwmon_get_reg()` lacks `REG_TEMP` support for `XE_CRESCENTISLAND`.
- [Medium] On Battlemage (BMG) platforms, all VRAM temperature sensors will be silently hidden if the thermal PCODE mailbox initialization fails.
--

commit 426a936975a4587d5003554dc21e461abf340940
Author: Karthik Poosa <karthik.poosa@intel.com>

drm/xe/hwmon: Use VRAM temperature sensor count from thermal config on CRI
    
Read the number of VRAM temperature sensor channels from the second byte
of READ_THERMAL_CONFIG on CRI platforms. Use the reported count to avoid
exposing hwmon attributes for unavailable VRAM temperature sensors, while
retaining the maximum supported channel count on non-CRI platforms.

> diff --git a/drivers/gpu/drm/xe/xe_hwmon.c b/drivers/gpu/drm/xe/xe_hwmon.c
> index 768f6d68b2916..51a6664eec485 100644
> --- a/drivers/gpu/drm/xe/xe_hwmon.c
> +++ b/drivers/gpu/drm/xe/xe_hwmon.c
[ ... ]
> @@ -271,7 +275,7 @@ static struct xe_reg xe_hwmon_get_reg(struct xe_hwmon *hwmon, enum xe_hwmon_reg
>  				return BMG_PACKAGE_TEMPERATURE;
>  			else if (channel == CHANNEL_VRAM)
>  				return BMG_VRAM_TEMPERATURE;
> -			else if (in_range(channel, CHANNEL_VRAM_N, MAX_VRAM_CHANNELS))
> +			else if (in_range(channel, CHANNEL_VRAM_N, hwmon->temp.vram_count))
>  				return BMG_VRAM_TEMPERATURE_N(channel - CHANNEL_VRAM_N);
>  		} else if (xe->info.platform == XE_DG2) {
>  			if (channel == CHANNEL_PKG)

[Severity: Medium]
Will VRAM temperature sensors be exposed on XE_CRESCENTISLAND platforms?

When checking sysfs attribute visibility, is_temp_available() queries
xe_hwmon_get_reg() for REG_TEMP. Since xe_hwmon_get_reg() only has branches
for XE_BATTLEMAGE and XE_DG2, it returns an invalid register (XE_REG(0)) for
XE_CRESCENTISLAND platforms.

This causes is_temp_available() to unconditionally return false. Does this
code need a branch for XE_CRESCENTISLAND to return the correct VRAM
temperature registers?

[ ... ]
> @@ -786,6 +854,17 @@ static int xe_hwmon_pcode_read_thermal_info(struct xe_hwmon *hwmon)
>  	drm_dbg(&hwmon->xe->drm, "thermal config count 0x%x\n", config);
>  	hwmon->temp.count = REG_FIELD_GET(TEMP_MASK, config);
>  
> +	if (hwmon->xe->info.platform >= XE_CRESCENTISLAND) {
> +		hwmon->temp.vram_count = REG_FIELD_GET(VRAM_COUNT_MASK, config);
> +		if (hwmon->temp.vram_count > XE_MAX_VRAM_CHANNELS) {
> +			drm_warn(&hwmon->xe->drm, "VRAM channel count %d exceeds max %d, clamping\n",
> +				 hwmon->temp.vram_count, XE_MAX_VRAM_CHANNELS);
> +			hwmon->temp.vram_count = XE_MAX_VRAM_CHANNELS;
> +		}
> +	} else {
> +		hwmon->temp.vram_count = BMG_MAX_VRAM_CHANNELS;
> +	}
> +
>  	return ret;
>  }

[Severity: Medium]
Will this silently hide all VRAM temperature sensors on Battlemage (BMG)
platforms if the thermal PCODE mailbox initialization fails?

If xe_hwmon_pcode_read_thermal_info() encounters a failure (such as an error
reading READ_THERMAL_LIMITS or READ_THERMAL_CONFIG earlier in the function),
it returns early. This skips the fallback assignment of hwmon->temp.vram_count
at the end of the function.

Because hwmon->temp.vram_count is 0-initialized, the in_range() check will
subsequently evaluate to false in xe_hwmon_get_reg(), returning an invalid
register and hiding the sensors. Previously, this path fell back to a
hardcoded MAX_VRAM_CHANNELS value, preserving visibility.

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260902175507.3910573-1-karthik.poosa@intel.com?part=2

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

* Re: [PATCH v2 3/5] drm/xe/hwmon: Correct group selection for memory controller temperature
  2026-09-02 17:55 ` [PATCH v2 3/5] drm/xe/hwmon: Correct group selection for memory controller temperature Karthik Poosa
@ 2026-09-02 18:17   ` sashiko-bot
  0 siblings, 0 replies; 15+ messages in thread
From: sashiko-bot @ 2026-09-02 18:17 UTC (permalink / raw)
  To: Karthik Poosa; +Cc: intel-xe

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:

Pre-existing issues:
- [High] Unaligned memory access due to misaligned pointer cast.
--

commit bce6aebc01fe7736c7ce377f855345b461ab89e3
Author: Karthik Poosa <karthik.poosa@intel.com>

drm/xe/hwmon: Correct group selection for memory controller temperature
    
Read all the necessary groups when reading memory controller
temperature in get_mc_temp().

> diff --git a/drivers/gpu/drm/xe/xe_hwmon.c b/drivers/gpu/drm/xe/xe_hwmon.c
> index 51a6664eec485..3a675d7b6758b 100644
> --- a/drivers/gpu/drm/xe/xe_hwmon.c
> +++ b/drivers/gpu/drm/xe/xe_hwmon.c
[ ... ]
> @@ -883,7 +883,7 @@ static int get_mc_temp(struct xe_hwmon *hwmon, long *val)
>  	int ret, i, count = 0;
>  	s32 average = 0;
>  
> -	for (i = 0; i < DIV_ROUND_UP(TEMP_LIMIT_MAX, sizeof(u32)); i++) {
> +	for (i = 0; i < DIV_ROUND_UP(hwmon->temp.count, sizeof(u32)); i++) {
>  		ret = xe_pcode_read(root_tile, PCODE_MBOX(PCODE_THERMAL_INFO, READ_THERMAL_DATA, i),
>  				    (dword + i), NULL);

[Severity: High]
This is a pre-existing issue, but does this code create an unaligned memory
access?

In get_mc_temp(), the variable dword is initialized as:

    u32 *dword = (u32 *)hwmon->temp.value;

Since the value array is located at offset 10 in struct
xe_hwmon_thermal_info, this cast creates a misaligned 32-bit pointer.

When (dword + i) is passed to xe_pcode_read(), an unaligned 32-bit store
occurs. On strict-alignment architectures, this could cause an alignment
fault and kernel panic.

Because the temp1_input sysfs attribute is world-readable, could this allow
an unprivileged local user to trigger a denial of service?

>  		if (ret)

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260902175507.3910573-1-karthik.poosa@intel.com?part=3

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

* ✓ CI.KUnit: success for drm/xe/hwmon: Update hwmon thermal mailbox handling (rev2)
  2026-09-02 17:55 [PATCH v2 0/5] drm/xe/hwmon: Update hwmon thermal mailbox handling Karthik Poosa
                   ` (4 preceding siblings ...)
  2026-09-02 17:55 ` [PATCH v2 5/5] drm/xe/hwmon: Disable memory controller and PCIe temperatures on CRI Karthik Poosa
@ 2026-09-02 18:28 ` Patchwork
  2026-09-02 19:22 ` ✗ Xe.CI.BAT: failure " Patchwork
  2026-09-03  9:37 ` ✗ Xe.CI.FULL: " Patchwork
  7 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2026-09-02 18:28 UTC (permalink / raw)
  To: Karthik Poosa; +Cc: intel-xe

== Series Details ==

Series: drm/xe/hwmon: Update hwmon thermal mailbox handling (rev2)
URL   : https://patchwork.freedesktop.org/series/172689/
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:25:59] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[18:26:03] 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:26:24] Starting KUnit Kernel (1/1)...
[18:26:24] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[18:26:24] ============= refcount_interrupt (4 subtests) ==============
[18:26:24] [PASSED] test_single_irq_change
[18:26:24] [PASSED] test_nested_irq_change
[18:26:24] [PASSED] test_multiple_irq_change
[18:26:24] [PASSED] test_irq_save
[18:26:24] =============== [PASSED] refcount_interrupt ================
[18:26:24] ================= gpu_buddy (14 subtests) ==================
[18:26:24] [PASSED] gpu_test_buddy_alloc_limit
[18:26:24] [PASSED] gpu_test_buddy_alloc_optimistic
[18:26:24] [PASSED] gpu_test_buddy_alloc_pessimistic
[18:26:24] [PASSED] gpu_test_buddy_alloc_pathological
[18:26:24] [PASSED] gpu_test_buddy_alloc_contiguous
[18:26:24] [PASSED] gpu_test_buddy_alloc_clear
[18:26:24] [PASSED] gpu_test_buddy_alloc_range
[18:26:24] [PASSED] gpu_test_buddy_alloc_range_bias
[18:26:25] [PASSED] gpu_test_buddy_fragmentation_performance
[18:26:26] [PASSED] gpu_test_buddy_dirty_tracker_performance
[18:26:26] [PASSED] gpu_test_buddy_alloc_exceeds_max_order
[18:26:26] [PASSED] gpu_test_buddy_offset_aligned_allocation
[18:26:26] [PASSED] gpu_test_buddy_subtree_offset_alignment_stress
[18:26:26] [PASSED] gpu_test_buddy_addr_to_block
[18:26:26] ==================== [PASSED] gpu_buddy ====================
[18:26:26] ============================================================
[18:26:26] Testing complete. Ran 18 tests: passed: 18
[18:26:26] Elapsed time: 26.811s total, 4.342s configuring, 20.501s building, 1.916s 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:26:26] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[18:26:28] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[18:27:02] Starting KUnit Kernel (1/1)...
[18:27:02] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[18:27:03] ============= refcount_interrupt (4 subtests) ==============
[18:27:03] [PASSED] test_single_irq_change
[18:27:03] [PASSED] test_nested_irq_change
[18:27:03] [PASSED] test_multiple_irq_change
[18:27:03] [PASSED] test_irq_save
[18:27:03] =============== [PASSED] refcount_interrupt ================
[18:27:03] ================== guc_buf (11 subtests) ===================
[18:27:03] [PASSED] test_smallest
[18:27:03] [PASSED] test_largest
[18:27:03] [PASSED] test_granular
[18:27:03] [PASSED] test_unique
[18:27:03] [PASSED] test_overlap
[18:27:03] [PASSED] test_reusable
[18:27:03] [PASSED] test_too_big
[18:27:03] [PASSED] test_flush
[18:27:03] [PASSED] test_lookup
[18:27:03] [PASSED] test_data
[18:27:03] [PASSED] test_class
[18:27:03] ===================== [PASSED] guc_buf =====================
[18:27:03] =================== guc_dbm (7 subtests) ===================
[18:27:03] [PASSED] test_empty
[18:27:03] [PASSED] test_default
[18:27:03] ======================== test_size  ========================
[18:27:03] [PASSED] 4
[18:27:03] [PASSED] 8
[18:27:03] [PASSED] 32
[18:27:03] [PASSED] 256
[18:27:03] ==================== [PASSED] test_size ====================
[18:27:03] ======================= test_reuse  ========================
[18:27:03] [PASSED] 4
[18:27:03] [PASSED] 8
[18:27:03] [PASSED] 32
[18:27:03] [PASSED] 256
[18:27:03] =================== [PASSED] test_reuse ====================
[18:27:03] =================== test_range_overlap  ====================
[18:27:03] [PASSED] 4
[18:27:03] [PASSED] 8
[18:27:03] [PASSED] 32
[18:27:03] [PASSED] 256
[18:27:03] =============== [PASSED] test_range_overlap ================
[18:27:03] =================== test_range_compact  ====================
[18:27:03] [PASSED] 4
[18:27:03] [PASSED] 8
[18:27:03] [PASSED] 32
[18:27:03] [PASSED] 256
[18:27:03] =============== [PASSED] test_range_compact ================
[18:27:03] ==================== test_range_spare  =====================
[18:27:03] [PASSED] 4
[18:27:03] [PASSED] 8
[18:27:03] [PASSED] 32
[18:27:03] [PASSED] 256
[18:27:03] ================ [PASSED] test_range_spare =================
[18:27:03] ===================== [PASSED] guc_dbm =====================
[18:27:03] =================== guc_idm (6 subtests) ===================
[18:27:03] [PASSED] bad_init
[18:27:03] [PASSED] no_init
[18:27:03] [PASSED] init_fini
[18:27:03] [PASSED] check_used
[18:27:03] [PASSED] check_quota
[18:27:03] [PASSED] check_all
[18:27:03] ===================== [PASSED] guc_idm =====================
[18:27:03] =============== guc_klv_helpers (9 subtests) ===============
[18:27:03] [PASSED] test_count
[18:27:03] [PASSED] test_encode_u32
[18:27:03] [PASSED] test_encode_u64
[18:27:03] [PASSED] test_encode_string
[18:27:03] [PASSED] test_encode_object_raw
[18:27:03] [PASSED] test_encode_object_klv
[18:27:03] [PASSED] test_encode_object_nested
[18:27:03] [PASSED] test_encode_object_basic
[18:27:03] [PASSED] test_print
[18:27:03] ================= [PASSED] guc_klv_helpers =================
[18:27:03] =================== xe_log (4 subtests) ====================
[18:27:03] [PASSED] demo_cper
[18:27:03] [PASSED] demo_dmesg
[18:27:03] ======================= test_dmesg  ========================
[18:27:03] [PASSED] test_fatal
[18:27:03] [PASSED] test_fatal_tile
[18:27:03] [PASSED] test_fatal_gt
[18:27:03] [PASSED] test_fatal_comp
[18:27:03] [PASSED] test_fatal_comp_tile
[18:27:03] [PASSED] test_fatal_comp_gt
[18:27:03] [PASSED] test_fatal_all
[18:27:03] [PASSED] test_recoverable
[18:27:03] [PASSED] test_recoverable_tile
[18:27:03] [PASSED] test_recoverable_gt
[18:27:03] [PASSED] test_recoverable_comp
[18:27:03] [PASSED] test_recoverable_comp_tile
[18:27:03] [PASSED] test_recoverable_comp_gt
[18:27:03] [PASSED] test_recoverable_all
[18:27:03] [PASSED] test_info
[18:27:03] [PASSED] test_info_tile
[18:27:03] [PASSED] test_info_gt
[18:27:03] [PASSED] test_info_err
[18:27:03] [PASSED] test_info_comp
[18:27:03] [PASSED] test_info_comp_tile
[18:27:03] [PASSED] test_info_comp_gt
[18:27:03] [PASSED] test_info_all
[18:27:03] [PASSED] test_hw_fatal
[18:27:03] [PASSED] test_hw_recoverable
[18:27:03] [PASSED] test_hw_corrected
[18:27:03] [PASSED] test_hw_informational
[18:27:03] =================== [PASSED] test_dmesg ====================
[18:27:03] ====================== test_invalid  =======================
[18:27:03] [SKIPPED] no-component no-location no-warn (requires CONFIG_DRM_XE_DEBUG)
[18:27:03] [SKIPPED] reserved location (requires CONFIG_DRM_XE_DEBUG)
[18:27:03] [SKIPPED] unknown location (requires CONFIG_DRM_XE_DEBUG)
[18:27:03] [SKIPPED] nonzero-device-id location (requires CONFIG_DRM_XE_DEBUG)
[18:27:03] [SKIPPED] invalid-tile-id location (requires CONFIG_DRM_XE_DEBUG)
[18:27:03] [SKIPPED] invalid-gt-id location (requires CONFIG_DRM_XE_DEBUG)
[18:27:03] [SKIPPED] unknown component class (requires CONFIG_DRM_XE_DEBUG)
[18:27:03] [SKIPPED] unknown system component (requires CONFIG_DRM_XE_DEBUG)
[18:27:03] [SKIPPED] unknown hardware component (requires CONFIG_DRM_XE_DEBUG)
[18:27:03] [SKIPPED] unknown component and location (requires CONFIG_DRM_XE_DEBUG)
[18:27:03] ================== [SKIPPED] test_invalid ==================
[18:27:03] ===================== [PASSED] xe_log ======================
[18:27:03] ================== no_relay (3 subtests) ===================
[18:27:03] [PASSED] xe_drops_guc2pf_if_not_ready
[18:27:03] [PASSED] xe_drops_guc2vf_if_not_ready
[18:27:03] [PASSED] xe_rejects_send_if_not_ready
[18:27:03] ==================== [PASSED] no_relay =====================
[18:27:03] ================== pf_relay (14 subtests) ==================
[18:27:03] [PASSED] pf_rejects_guc2pf_too_short
[18:27:03] [PASSED] pf_rejects_guc2pf_too_long
[18:27:03] [PASSED] pf_rejects_guc2pf_no_payload
[18:27:03] [PASSED] pf_fails_no_payload
[18:27:03] [PASSED] pf_fails_bad_origin
[18:27:03] [PASSED] pf_fails_bad_type
[18:27:03] [PASSED] pf_txn_reports_error
[18:27:03] [PASSED] pf_txn_sends_pf2guc
[18:27:03] [PASSED] pf_sends_pf2guc
[18:27:03] [SKIPPED] pf_loopback_nop (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[18:27:03] [SKIPPED] pf_loopback_echo (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[18:27:03] [SKIPPED] pf_loopback_fail (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[18:27:03] [SKIPPED] pf_loopback_busy (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[18:27:03] [SKIPPED] pf_loopback_retry (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[18:27:03] ==================== [PASSED] pf_relay =====================
[18:27:03] ================== vf_relay (3 subtests) ===================
[18:27:03] [PASSED] vf_rejects_guc2vf_too_short
[18:27:03] [PASSED] vf_rejects_guc2vf_too_long
[18:27:03] [PASSED] vf_rejects_guc2vf_no_payload
[18:27:03] ==================== [PASSED] vf_relay =====================
[18:27:03] ================ pf_gt_config (9 subtests) =================
[18:27:03] [PASSED] fair_contexts_1vf
[18:27:03] [PASSED] fair_doorbells_1vf
[18:27:03] [PASSED] fair_ggtt_1vf
[18:27:03] ====================== fair_vram_1vf  ======================
[18:27:03] [PASSED] 3.50 GiB
[18:27:03] [PASSED] 11.5 GiB
[18:27:03] [PASSED] 15.5 GiB
[18:27:03] [PASSED] 31.5 GiB
[18:27:03] [PASSED] 63.5 GiB
[18:27:03] [PASSED] 1.91 GiB
[18:27:03] ================== [PASSED] fair_vram_1vf ==================
[18:27:03] ================ fair_vram_1vf_admin_only  =================
[18:27:03] [PASSED] 3.50 GiB
[18:27:03] [PASSED] 11.5 GiB
[18:27:03] [PASSED] 15.5 GiB
[18:27:03] [PASSED] 31.5 GiB
[18:27:03] [PASSED] 63.5 GiB
[18:27:03] [PASSED] 1.91 GiB
[18:27:03] ============ [PASSED] fair_vram_1vf_admin_only =============
[18:27:03] ====================== fair_contexts  ======================
[18:27:03] [PASSED] 1 VF
[18:27:03] [PASSED] 2 VFs
[18:27:03] [PASSED] 3 VFs
[18:27:03] [PASSED] 4 VFs
[18:27:03] [PASSED] 5 VFs
[18:27:03] [PASSED] 6 VFs
[18:27:03] [PASSED] 7 VFs
[18:27:03] [PASSED] 8 VFs
[18:27:03] [PASSED] 9 VFs
[18:27:03] [PASSED] 10 VFs
[18:27:03] [PASSED] 11 VFs
[18:27:03] [PASSED] 12 VFs
[18:27:03] [PASSED] 13 VFs
[18:27:03] [PASSED] 14 VFs
[18:27:03] [PASSED] 15 VFs
[18:27:03] [PASSED] 16 VFs
[18:27:03] [PASSED] 17 VFs
[18:27:03] [PASSED] 18 VFs
[18:27:03] [PASSED] 19 VFs
[18:27:03] [PASSED] 20 VFs
[18:27:03] [PASSED] 21 VFs
[18:27:03] [PASSED] 22 VFs
[18:27:03] [PASSED] 23 VFs
[18:27:03] [PASSED] 24 VFs
[18:27:03] [PASSED] 25 VFs
[18:27:03] [PASSED] 26 VFs
[18:27:03] [PASSED] 27 VFs
[18:27:03] [PASSED] 28 VFs
[18:27:03] [PASSED] 29 VFs
[18:27:03] [PASSED] 30 VFs
[18:27:03] [PASSED] 31 VFs
[18:27:03] [PASSED] 32 VFs
[18:27:03] [PASSED] 33 VFs
[18:27:03] [PASSED] 34 VFs
[18:27:03] [PASSED] 35 VFs
[18:27:03] [PASSED] 36 VFs
[18:27:03] [PASSED] 37 VFs
[18:27:03] [PASSED] 38 VFs
[18:27:03] [PASSED] 39 VFs
[18:27:03] [PASSED] 40 VFs
[18:27:03] [PASSED] 41 VFs
[18:27:03] [PASSED] 42 VFs
[18:27:03] [PASSED] 43 VFs
[18:27:03] [PASSED] 44 VFs
[18:27:03] [PASSED] 45 VFs
[18:27:03] [PASSED] 46 VFs
[18:27:03] [PASSED] 47 VFs
[18:27:03] [PASSED] 48 VFs
[18:27:03] [PASSED] 49 VFs
[18:27:03] [PASSED] 50 VFs
[18:27:03] [PASSED] 51 VFs
[18:27:03] [PASSED] 52 VFs
[18:27:03] [PASSED] 53 VFs
[18:27:03] [PASSED] 54 VFs
[18:27:03] [PASSED] 55 VFs
[18:27:03] [PASSED] 56 VFs
[18:27:03] [PASSED] 57 VFs
[18:27:03] [PASSED] 58 VFs
[18:27:03] [PASSED] 59 VFs
[18:27:03] [PASSED] 60 VFs
[18:27:03] [PASSED] 61 VFs
[18:27:03] [PASSED] 62 VFs
[18:27:03] [PASSED] 63 VFs
[18:27:03] ================== [PASSED] fair_contexts ==================
[18:27:03] ===================== fair_doorbells  ======================
[18:27:03] [PASSED] 1 VF
[18:27:03] [PASSED] 2 VFs
[18:27:03] [PASSED] 3 VFs
[18:27:03] [PASSED] 4 VFs
[18:27:03] [PASSED] 5 VFs
[18:27:03] [PASSED] 6 VFs
[18:27:03] [PASSED] 7 VFs
[18:27:03] [PASSED] 8 VFs
[18:27:03] [PASSED] 9 VFs
[18:27:03] [PASSED] 10 VFs
[18:27:03] [PASSED] 11 VFs
[18:27:03] [PASSED] 12 VFs
[18:27:03] [PASSED] 13 VFs
[18:27:03] [PASSED] 14 VFs
[18:27:03] [PASSED] 15 VFs
[18:27:03] [PASSED] 16 VFs
[18:27:03] [PASSED] 17 VFs
[18:27:03] [PASSED] 18 VFs
[18:27:03] [PASSED] 19 VFs
[18:27:03] [PASSED] 20 VFs
[18:27:03] [PASSED] 21 VFs
[18:27:03] [PASSED] 22 VFs
[18:27:03] [PASSED] 23 VFs
[18:27:03] [PASSED] 24 VFs
[18:27:03] [PASSED] 25 VFs
[18:27:03] [PASSED] 26 VFs
[18:27:03] [PASSED] 27 VFs
[18:27:03] [PASSED] 28 VFs
[18:27:03] [PASSED] 29 VFs
[18:27:03] [PASSED] 30 VFs
[18:27:03] [PASSED] 31 VFs
[18:27:03] [PASSED] 32 VFs
[18:27:03] [PASSED] 33 VFs
[18:27:03] [PASSED] 34 VFs
[18:27:03] [PASSED] 35 VFs
[18:27:03] [PASSED] 36 VFs
[18:27:03] [PASSED] 37 VFs
[18:27:03] [PASSED] 38 VFs
[18:27:03] [PASSED] 39 VFs
[18:27:03] [PASSED] 40 VFs
[18:27:03] [PASSED] 41 VFs
[18:27:03] [PASSED] 42 VFs
[18:27:03] [PASSED] 43 VFs
[18:27:03] [PASSED] 44 VFs
[18:27:03] [PASSED] 45 VFs
[18:27:03] [PASSED] 46 VFs
[18:27:03] [PASSED] 47 VFs
[18:27:03] [PASSED] 48 VFs
[18:27:03] [PASSED] 49 VFs
[18:27:03] [PASSED] 50 VFs
[18:27:03] [PASSED] 51 VFs
[18:27:03] [PASSED] 52 VFs
[18:27:03] [PASSED] 53 VFs
[18:27:03] [PASSED] 54 VFs
[18:27:03] [PASSED] 55 VFs
[18:27:03] [PASSED] 56 VFs
[18:27:03] [PASSED] 57 VFs
[18:27:03] [PASSED] 58 VFs
[18:27:03] [PASSED] 59 VFs
[18:27:03] [PASSED] 60 VFs
[18:27:03] [PASSED] 61 VFs
[18:27:03] [PASSED] 62 VFs
[18:27:03] [PASSED] 63 VFs
[18:27:03] ================= [PASSED] fair_doorbells ==================
[18:27:03] ======================== fair_ggtt  ========================
[18:27:03] [PASSED] 1 VF
[18:27:03] [PASSED] 2 VFs
[18:27:03] [PASSED] 3 VFs
[18:27:03] [PASSED] 4 VFs
[18:27:03] [PASSED] 5 VFs
[18:27:03] [PASSED] 6 VFs
[18:27:03] [PASSED] 7 VFs
[18:27:03] [PASSED] 8 VFs
[18:27:03] [PASSED] 9 VFs
[18:27:03] [PASSED] 10 VFs
[18:27:03] [PASSED] 11 VFs
[18:27:03] [PASSED] 12 VFs
[18:27:03] [PASSED] 13 VFs
[18:27:03] [PASSED] 14 VFs
[18:27:03] [PASSED] 15 VFs
[18:27:03] [PASSED] 16 VFs
[18:27:03] [PASSED] 17 VFs
[18:27:03] [PASSED] 18 VFs
[18:27:03] [PASSED] 19 VFs
[18:27:03] [PASSED] 20 VFs
[18:27:03] [PASSED] 21 VFs
[18:27:03] [PASSED] 22 VFs
[18:27:03] [PASSED] 23 VFs
[18:27:03] [PASSED] 24 VFs
[18:27:03] [PASSED] 25 VFs
[18:27:03] [PASSED] 26 VFs
[18:27:03] [PASSED] 27 VFs
[18:27:03] [PASSED] 28 VFs
[18:27:03] [PASSED] 29 VFs
[18:27:03] [PASSED] 30 VFs
[18:27:03] [PASSED] 31 VFs
[18:27:03] [PASSED] 32 VFs
[18:27:03] [PASSED] 33 VFs
[18:27:03] [PASSED] 34 VFs
[18:27:03] [PASSED] 35 VFs
[18:27:03] [PASSED] 36 VFs
[18:27:03] [PASSED] 37 VFs
[18:27:03] [PASSED] 38 VFs
[18:27:03] [PASSED] 39 VFs
[18:27:03] [PASSED] 40 VFs
[18:27:03] [PASSED] 41 VFs
[18:27:03] [PASSED] 42 VFs
[18:27:03] [PASSED] 43 VFs
[18:27:03] [PASSED] 44 VFs
[18:27:03] [PASSED] 45 VFs
[18:27:03] [PASSED] 46 VFs
[18:27:03] [PASSED] 47 VFs
[18:27:03] [PASSED] 48 VFs
[18:27:03] [PASSED] 49 VFs
[18:27:03] [PASSED] 50 VFs
[18:27:03] [PASSED] 51 VFs
[18:27:03] [PASSED] 52 VFs
[18:27:03] [PASSED] 53 VFs
[18:27:03] [PASSED] 54 VFs
[18:27:03] [PASSED] 55 VFs
[18:27:03] [PASSED] 56 VFs
[18:27:03] [PASSED] 57 VFs
[18:27:03] [PASSED] 58 VFs
[18:27:03] [PASSED] 59 VFs
[18:27:03] [PASSED] 60 VFs
[18:27:03] [PASSED] 61 VFs
[18:27:03] [PASSED] 62 VFs
[18:27:03] [PASSED] 63 VFs
[18:27:03] ==================== [PASSED] fair_ggtt ====================
[18:27:03] ======================== fair_vram  ========================
[18:27:03] [PASSED] 1 VF
[18:27:03] [PASSED] 2 VFs
[18:27:03] [PASSED] 3 VFs
[18:27:03] [PASSED] 4 VFs
[18:27:03] [PASSED] 5 VFs
[18:27:03] [PASSED] 6 VFs
[18:27:03] [PASSED] 7 VFs
[18:27:03] [PASSED] 8 VFs
[18:27:03] [PASSED] 9 VFs
[18:27:03] [PASSED] 10 VFs
[18:27:03] [PASSED] 11 VFs
[18:27:03] [PASSED] 12 VFs
[18:27:03] [PASSED] 13 VFs
[18:27:03] [PASSED] 14 VFs
[18:27:03] [PASSED] 15 VFs
[18:27:03] [PASSED] 16 VFs
[18:27:03] [PASSED] 17 VFs
[18:27:03] [PASSED] 18 VFs
[18:27:03] [PASSED] 19 VFs
[18:27:03] [PASSED] 20 VFs
[18:27:03] [PASSED] 21 VFs
[18:27:03] [PASSED] 22 VFs
[18:27:03] [PASSED] 23 VFs
[18:27:03] [PASSED] 24 VFs
[18:27:03] [PASSED] 25 VFs
[18:27:03] [PASSED] 26 VFs
[18:27:03] [PASSED] 27 VFs
[18:27:03] [PASSED] 28 VFs
[18:27:03] [PASSED] 29 VFs
[18:27:03] [PASSED] 30 VFs
[18:27:03] [PASSED] 31 VFs
[18:27:03] [PASSED] 32 VFs
[18:27:03] [PASSED] 33 VFs
[18:27:03] [PASSED] 34 VFs
[18:27:03] [PASSED] 35 VFs
[18:27:03] [PASSED] 36 VFs
[18:27:03] [PASSED] 37 VFs
[18:27:03] [PASSED] 38 VFs
[18:27:03] [PASSED] 39 VFs
[18:27:03] [PASSED] 40 VFs
[18:27:03] [PASSED] 41 VFs
[18:27:03] [PASSED] 42 VFs
[18:27:03] [PASSED] 43 VFs
[18:27:03] [PASSED] 44 VFs
[18:27:03] [PASSED] 45 VFs
[18:27:03] [PASSED] 46 VFs
[18:27:03] [PASSED] 47 VFs
[18:27:03] [PASSED] 48 VFs
[18:27:03] [PASSED] 49 VFs
[18:27:03] [PASSED] 50 VFs
[18:27:03] [PASSED] 51 VFs
[18:27:03] [PASSED] 52 VFs
[18:27:03] [PASSED] 53 VFs
[18:27:03] [PASSED] 54 VFs
[18:27:03] [PASSED] 55 VFs
[18:27:03] [PASSED] 56 VFs
[18:27:03] [PASSED] 57 VFs
[18:27:03] [PASSED] 58 VFs
[18:27:03] [PASSED] 59 VFs
[18:27:03] [PASSED] 60 VFs
[18:27:03] [PASSED] 61 VFs
[18:27:03] [PASSED] 62 VFs
[18:27:03] [PASSED] 63 VFs
[18:27:03] ==================== [PASSED] fair_vram ====================
[18:27:03] ================== [PASSED] pf_gt_config ===================
[18:27:03] ===================== lmtt (1 subtest) =====================
[18:27:03] ======================== test_ops  =========================
[18:27:03] [PASSED] 2-level
[18:27:03] [PASSED] multi-level
[18:27:03] ==================== [PASSED] test_ops =====================
[18:27:03] ====================== [PASSED] lmtt =======================
[18:27:03] ================= sriov_packet (1 subtest) =================
[18:27:03] [PASSED] test_descriptor_init
[18:27:03] ================== [PASSED] sriov_packet ===================
[18:27:03] ================= pf_service (11 subtests) =================
[18:27:03] [PASSED] pf_negotiate_any
[18:27:03] [PASSED] pf_negotiate_base_match
[18:27:03] [PASSED] pf_negotiate_base_newer
[18:27:03] [PASSED] pf_negotiate_base_next
[18:27:03] [SKIPPED] pf_negotiate_base_older (no older minor)
[18:27:03] [PASSED] pf_negotiate_base_prev
[18:27:03] [PASSED] pf_negotiate_latest_match
[18:27:03] [PASSED] pf_negotiate_latest_newer
[18:27:03] [PASSED] pf_negotiate_latest_next
[18:27:03] [SKIPPED] pf_negotiate_latest_older (no older minor)
[18:27:03] [SKIPPED] pf_negotiate_latest_prev (no prev major)
[18:27:03] =================== [PASSED] pf_service ====================
[18:27:03] ================= xe_guc_g2g (2 subtests) ==================
[18:27:03] ============== xe_live_guc_g2g_kunit_default  ==============
[18:27:03] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[18:27:03] ============== xe_live_guc_g2g_kunit_allmem  ===============
[18:27:03] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[18:27:03] =================== [SKIPPED] xe_guc_g2g ===================
[18:27:03] =================== xe_mocs (2 subtests) ===================
[18:27:03] ================ xe_live_mocs_kernel_kunit  ================
[18:27:03] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[18:27:03] ================ xe_live_mocs_reset_kunit  =================
[18:27:03] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[18:27:03] ==================== [SKIPPED] xe_mocs =====================
[18:27:03] ================= xe_migrate (2 subtests) ==================
[18:27:03] ================= xe_migrate_sanity_kunit  =================
[18:27:03] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[18:27:03] ================== xe_validate_ccs_kunit  ==================
[18:27:03] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[18:27:03] =================== [SKIPPED] xe_migrate ===================
[18:27:03] ================== xe_dma_buf (1 subtest) ==================
[18:27:03] ==================== xe_dma_buf_kunit  =====================
[18:27:03] ================ [SKIPPED] xe_dma_buf_kunit ================
[18:27:03] =================== [SKIPPED] xe_dma_buf ===================
[18:27:03] ================= xe_bo_shrink (1 subtest) =================
[18:27:03] =================== xe_bo_shrink_kunit  ====================
[18:27:03] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[18:27:03] ================== [SKIPPED] xe_bo_shrink ==================
[18:27:03] ==================== xe_bo (2 subtests) ====================
[18:27:03] ================== xe_ccs_migrate_kunit  ===================
[18:27:03] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[18:27:03] ==================== xe_bo_evict_kunit  ====================
[18:27:03] =============== [SKIPPED] xe_bo_evict_kunit ================
[18:27:03] ===================== [SKIPPED] xe_bo ======================
[18:27:03] =================== xe_any (9 subtests) ====================
[18:27:03] [PASSED] test_to_xe
[18:27:03] [PASSED] test_to_dev
[18:27:03] [PASSED] test_to_pdev
[18:27:03] [PASSED] test_to_drm
[18:27:03] [PASSED] test_if_pdev
[18:27:03] [PASSED] test_if_xe
[18:27:03] [PASSED] test_if_tile
[18:27:03] [PASSED] test_if_gt
[18:27:03] [PASSED] test_to_id
[18:27:03] ===================== [PASSED] xe_any ======================
[18:27:03] ==================== args (13 subtests) ====================
[18:27:03] [PASSED] count_args_test
[18:27:03] [PASSED] call_args_example
[18:27:03] [PASSED] call_args_test
[18:27:03] [PASSED] drop_first_arg_example
[18:27:03] [PASSED] drop_first_arg_test
[18:27:03] [PASSED] first_arg_example
[18:27:03] [PASSED] first_arg_test
[18:27:03] [PASSED] last_arg_example
[18:27:03] [PASSED] last_arg_test
[18:27:03] [PASSED] pick_arg_example
[18:27:03] [PASSED] if_args_example
[18:27:03] [PASSED] if_args_test
[18:27:03] [PASSED] sep_comma_example
[18:27:03] ====================== [PASSED] args =======================
[18:27:03] =================== xe_pci (3 subtests) ====================
[18:27:03] ==================== check_graphics_ip  ====================
[18:27:03] [PASSED] 12.00 Xe_LP
[18:27:03] [PASSED] 12.10 Xe_LP+
[18:27:03] [PASSED] 12.55 Xe_HPG
[18:27:03] [PASSED] 12.60 Xe_HPC
[18:27:03] [PASSED] 12.70 Xe_LPG
[18:27:03] [PASSED] 12.71 Xe_LPG
[18:27:03] [PASSED] 12.74 Xe_LPG+
[18:27:03] [PASSED] 20.01 Xe2_HPG
[18:27:03] [PASSED] 20.02 Xe2_HPG
[18:27:03] [PASSED] 20.04 Xe2_LPG
[18:27:03] [PASSED] 30.00 Xe3_LPG
[18:27:03] [PASSED] 30.01 Xe3_LPG
[18:27:03] [PASSED] 30.03 Xe3_LPG
[18:27:03] [PASSED] 30.04 Xe3_LPG
[18:27:03] [PASSED] 30.05 Xe3_LPG
[18:27:03] [PASSED] 35.10 Xe3p_LPG
[18:27:03] [PASSED] 35.11 Xe3p_XPC
[18:27:03] ================ [PASSED] check_graphics_ip ================
[18:27:03] ===================== check_media_ip  ======================
[18:27:03] [PASSED] 12.00 Xe_M
[18:27:03] [PASSED] 12.55 Xe_HPM
[18:27:03] [PASSED] 13.00 Xe_LPM+
[18:27:03] [PASSED] 13.01 Xe2_HPM
[18:27:03] [PASSED] 20.00 Xe2_LPM
[18:27:03] [PASSED] 30.00 Xe3_LPM
[18:27:03] [PASSED] 30.02 Xe3_LPM
[18:27:03] [PASSED] 35.00 Xe3p_LPM
[18:27:03] [PASSED] 35.03 Xe3p_HPM
[18:27:03] ================= [PASSED] check_media_ip ==================
[18:27:03] =================== check_platform_desc  ===================
[18:27:03] [PASSED] 0x9A60 (TIGERLAKE)
[18:27:03] [PASSED] 0x9A68 (TIGERLAKE)
[18:27:03] [PASSED] 0x9A70 (TIGERLAKE)
[18:27:03] [PASSED] 0x9A40 (TIGERLAKE)
[18:27:03] [PASSED] 0x9A49 (TIGERLAKE)
[18:27:03] [PASSED] 0x9A59 (TIGERLAKE)
[18:27:03] [PASSED] 0x9A78 (TIGERLAKE)
[18:27:03] [PASSED] 0x9AC0 (TIGERLAKE)
[18:27:03] [PASSED] 0x9AC9 (TIGERLAKE)
[18:27:03] [PASSED] 0x9AD9 (TIGERLAKE)
[18:27:03] [PASSED] 0x9AF8 (TIGERLAKE)
[18:27:03] [PASSED] 0x4C80 (ROCKETLAKE)
[18:27:03] [PASSED] 0x4C8A (ROCKETLAKE)
[18:27:03] [PASSED] 0x4C8B (ROCKETLAKE)
[18:27:03] [PASSED] 0x4C8C (ROCKETLAKE)
[18:27:03] [PASSED] 0x4C90 (ROCKETLAKE)
[18:27:03] [PASSED] 0x4C9A (ROCKETLAKE)
[18:27:03] [PASSED] 0x4680 (ALDERLAKE_S)
[18:27:03] [PASSED] 0x4682 (ALDERLAKE_S)
[18:27:03] [PASSED] 0x4688 (ALDERLAKE_S)
[18:27:03] [PASSED] 0x468A (ALDERLAKE_S)
[18:27:03] [PASSED] 0x468B (ALDERLAKE_S)
[18:27:03] [PASSED] 0x4690 (ALDERLAKE_S)
[18:27:03] [PASSED] 0x4692 (ALDERLAKE_S)
[18:27:03] [PASSED] 0x4693 (ALDERLAKE_S)
[18:27:03] [PASSED] 0x46A0 (ALDERLAKE_P)
[18:27:03] [PASSED] 0x46A1 (ALDERLAKE_P)
[18:27:03] [PASSED] 0x46A2 (ALDERLAKE_P)
[18:27:03] [PASSED] 0x46A3 (ALDERLAKE_P)
[18:27:03] [PASSED] 0x46A6 (ALDERLAKE_P)
[18:27:03] [PASSED] 0x46A8 (ALDERLAKE_P)
[18:27:03] [PASSED] 0x46AA (ALDERLAKE_P)
[18:27:03] [PASSED] 0x462A (ALDERLAKE_P)
[18:27:03] [PASSED] 0x4626 (ALDERLAKE_P)
[18:27:03] [PASSED] 0x4628 (ALDERLAKE_P)
[18:27:03] [PASSED] 0x46B0 (ALDERLAKE_P)
[18:27:03] [PASSED] 0x46B1 (ALDERLAKE_P)
[18:27:03] [PASSED] 0x46B2 (ALDERLAKE_P)
[18:27:03] [PASSED] 0x46B3 (ALDERLAKE_P)
[18:27:03] [PASSED] 0x46C0 (ALDERLAKE_P)
[18:27:03] [PASSED] 0x46C1 (ALDERLAKE_P)
[18:27:03] [PASSED] 0x46C2 (ALDERLAKE_P)
[18:27:03] [PASSED] 0x46C3 (ALDERLAKE_P)
[18:27:03] [PASSED] 0x46D0 (ALDERLAKE_N)
[18:27:03] [PASSED] 0x46D1 (ALDERLAKE_N)
[18:27:03] [PASSED] 0x46D2 (ALDERLAKE_N)
[18:27:03] [PASSED] 0x46D3 (ALDERLAKE_N)
[18:27:03] [PASSED] 0x46D4 (ALDERLAKE_N)
[18:27:03] [PASSED] 0xA721 (ALDERLAKE_P)
[18:27:03] [PASSED] 0xA7A1 (ALDERLAKE_P)
[18:27:03] [PASSED] 0xA7A9 (ALDERLAKE_P)
[18:27:03] [PASSED] 0xA7AC (ALDERLAKE_P)
[18:27:03] [PASSED] 0xA7AD (ALDERLAKE_P)
[18:27:03] [PASSED] 0xA720 (ALDERLAKE_P)
[18:27:03] [PASSED] 0xA7A0 (ALDERLAKE_P)
[18:27:03] [PASSED] 0xA7A8 (ALDERLAKE_P)
[18:27:03] [PASSED] 0xA7AA (ALDERLAKE_P)
[18:27:03] [PASSED] 0xA7AB (ALDERLAKE_P)
[18:27:03] [PASSED] 0xA780 (ALDERLAKE_S)
[18:27:03] [PASSED] 0xA781 (ALDERLAKE_S)
[18:27:03] [PASSED] 0xA782 (ALDERLAKE_S)
[18:27:03] [PASSED] 0xA783 (ALDERLAKE_S)
[18:27:03] [PASSED] 0xA788 (ALDERLAKE_S)
[18:27:03] [PASSED] 0xA789 (ALDERLAKE_S)
[18:27:03] [PASSED] 0xA78A (ALDERLAKE_S)
[18:27:03] [PASSED] 0xA78B (ALDERLAKE_S)
[18:27:03] [PASSED] 0x4905 (DG1)
[18:27:03] [PASSED] 0x4906 (DG1)
[18:27:03] [PASSED] 0x4907 (DG1)
[18:27:03] [PASSED] 0x4908 (DG1)
[18:27:03] [PASSED] 0x4909 (DG1)
[18:27:03] [PASSED] 0x56C0 (DG2)
[18:27:03] [PASSED] 0x56C2 (DG2)
[18:27:03] [PASSED] 0x56C1 (DG2)
[18:27:03] [PASSED] 0x7D51 (METEORLAKE)
[18:27:03] [PASSED] 0x7DD1 (METEORLAKE)
[18:27:03] [PASSED] 0x7D41 (METEORLAKE)
[18:27:03] [PASSED] 0x7D67 (METEORLAKE)
[18:27:03] [PASSED] 0xB640 (METEORLAKE)
[18:27:03] [PASSED] 0x56A0 (DG2)
[18:27:03] [PASSED] 0x56A1 (DG2)
[18:27:03] [PASSED] 0x56A2 (DG2)
[18:27:03] [PASSED] 0x56BE (DG2)
[18:27:03] [PASSED] 0x56BF (DG2)
[18:27:03] [PASSED] 0x5690 (DG2)
[18:27:03] [PASSED] 0x5691 (DG2)
[18:27:03] [PASSED] 0x5692 (DG2)
[18:27:03] [PASSED] 0x56A5 (DG2)
[18:27:03] [PASSED] 0x56A6 (DG2)
[18:27:03] [PASSED] 0x56B0 (DG2)
[18:27:03] [PASSED] 0x56B1 (DG2)
[18:27:03] [PASSED] 0x56BA (DG2)
[18:27:03] [PASSED] 0x56BB (DG2)
[18:27:03] [PASSED] 0x56BC (DG2)
[18:27:03] [PASSED] 0x56BD (DG2)
[18:27:03] [PASSED] 0x5693 (DG2)
[18:27:03] [PASSED] 0x5694 (DG2)
[18:27:03] [PASSED] 0x5695 (DG2)
[18:27:03] [PASSED] 0x56A3 (DG2)
[18:27:03] [PASSED] 0x56A4 (DG2)
[18:27:03] [PASSED] 0x56B2 (DG2)
[18:27:03] [PASSED] 0x56B3 (DG2)
[18:27:03] [PASSED] 0x5696 (DG2)
[18:27:03] [PASSED] 0x5697 (DG2)
[18:27:03] [PASSED] 0xB69 (PVC)
[18:27:03] [PASSED] 0xB6E (PVC)
[18:27:03] [PASSED] 0xBD4 (PVC)
[18:27:03] [PASSED] 0xBD5 (PVC)
[18:27:03] [PASSED] 0xBD6 (PVC)
[18:27:03] [PASSED] 0xBD7 (PVC)
[18:27:03] [PASSED] 0xBD8 (PVC)
[18:27:03] [PASSED] 0xBD9 (PVC)
[18:27:03] [PASSED] 0xBDA (PVC)
[18:27:03] [PASSED] 0xBDB (PVC)
[18:27:03] [PASSED] 0xBE0 (PVC)
[18:27:03] [PASSED] 0xBE1 (PVC)
[18:27:03] [PASSED] 0xBE5 (PVC)
[18:27:03] [PASSED] 0x7D40 (METEORLAKE)
[18:27:03] [PASSED] 0x7D45 (METEORLAKE)
[18:27:03] [PASSED] 0x7D55 (METEORLAKE)
[18:27:03] [PASSED] 0x7D60 (METEORLAKE)
[18:27:03] [PASSED] 0x7DD5 (METEORLAKE)
[18:27:03] [PASSED] 0x6420 (LUNARLAKE)
[18:27:03] [PASSED] 0x64A0 (LUNARLAKE)
[18:27:03] [PASSED] 0x64B0 (LUNARLAKE)
[18:27:03] [PASSED] 0xE202 (BATTLEMAGE)
[18:27:03] [PASSED] 0xE209 (BATTLEMAGE)
[18:27:03] [PASSED] 0xE20B (BATTLEMAGE)
[18:27:03] [PASSED] 0xE20C (BATTLEMAGE)
[18:27:03] [PASSED] 0xE20D (BATTLEMAGE)
[18:27:03] [PASSED] 0xE210 (BATTLEMAGE)
[18:27:03] [PASSED] 0xE211 (BATTLEMAGE)
[18:27:03] [PASSED] 0xE212 (BATTLEMAGE)
[18:27:03] [PASSED] 0xE216 (BATTLEMAGE)
[18:27:03] [PASSED] 0xE220 (BATTLEMAGE)
[18:27:03] [PASSED] 0xE221 (BATTLEMAGE)
[18:27:03] [PASSED] 0xE222 (BATTLEMAGE)
[18:27:03] [PASSED] 0xE223 (BATTLEMAGE)
[18:27:03] [PASSED] 0xB080 (PANTHERLAKE)
[18:27:03] [PASSED] 0xB081 (PANTHERLAKE)
[18:27:03] [PASSED] 0xB082 (PANTHERLAKE)
[18:27:03] [PASSED] 0xB083 (PANTHERLAKE)
[18:27:03] [PASSED] 0xB084 (PANTHERLAKE)
[18:27:03] [PASSED] 0xB085 (PANTHERLAKE)
[18:27:03] [PASSED] 0xB086 (PANTHERLAKE)
[18:27:03] [PASSED] 0xB087 (PANTHERLAKE)
[18:27:03] [PASSED] 0xB08F (PANTHERLAKE)
[18:27:03] [PASSED] 0xB090 (PANTHERLAKE)
[18:27:03] [PASSED] 0xB0A0 (PANTHERLAKE)
[18:27:03] [PASSED] 0xB0B0 (PANTHERLAKE)
[18:27:03] [PASSED] 0xFD80 (PANTHERLAKE)
[18:27:03] [PASSED] 0xFD81 (PANTHERLAKE)
[18:27:03] [PASSED] 0xD740 (NOVALAKE_S)
[18:27:03] [PASSED] 0xD741 (NOVALAKE_S)
[18:27:03] [PASSED] 0xD742 (NOVALAKE_S)
[18:27:03] [PASSED] 0xD743 (NOVALAKE_S)
[18:27:03] [PASSED] 0xD745 (NOVALAKE_S)
[18:27:03] [PASSED] 0xD74A (NOVALAKE_S)
[18:27:03] [PASSED] 0xD74B (NOVALAKE_S)
[18:27:03] [PASSED] 0x674C (CRESCENTISLAND)
[18:27:03] [PASSED] 0x674D (CRESCENTISLAND)
[18:27:03] [PASSED] 0x674E (CRESCENTISLAND)
[18:27:03] [PASSED] 0x674F (CRESCENTISLAND)
[18:27:03] [PASSED] 0x6750 (CRESCENTISLAND)
[18:27:03] [PASSED] 0xD750 (NOVALAKE_P)
[18:27:03] [PASSED] 0xD751 (NOVALAKE_P)
[18:27:03] [PASSED] 0xD752 (NOVALAKE_P)
[18:27:03] [PASSED] 0xD753 (NOVALAKE_P)
[18:27:03] [PASSED] 0xD754 (NOVALAKE_P)
[18:27:03] [PASSED] 0xD755 (NOVALAKE_P)
[18:27:03] [PASSED] 0xD756 (NOVALAKE_P)
[18:27:03] [PASSED] 0xD757 (NOVALAKE_P)
[18:27:03] [PASSED] 0xD75F (NOVALAKE_P)
[18:27:03] =============== [PASSED] check_platform_desc ===============
[18:27:03] ===================== [PASSED] xe_pci ======================
[18:27:03] ============= xe_rtp_tables_test (5 subtests) ==============
[18:27:03] ================== xe_rtp_table_gt_test  ===================
[18:27:03] [PASSED] gt_was/14011060649
[18:27:03] [PASSED] gt_was/14011059788
[18:27:03] [PASSED] gt_was/14015795083
[18:27:03] [PASSED] gt_was/16021867713
[18:27:03] [PASSED] gt_was/14019449301
[18:27:03] [PASSED] gt_was/16028005424
[18:27:03] [PASSED] gt_was/14026578760
[18:27:03] [PASSED] gt_was/1409420604
[18:27:03] [PASSED] gt_was/1408615072
[18:27:03] [PASSED] gt_was/22010523718
[18:27:03] [PASSED] gt_was/14011006942
[18:27:03] [PASSED] gt_was/14014830051
[18:27:03] [PASSED] gt_was/18018781329
[18:27:03] [PASSED] gt_was/1509235366
[18:27:03] [PASSED] gt_was/18018781329
[18:27:03] [PASSED] gt_was/16016694945
[18:27:03] [PASSED] gt_was/14018575942
[18:27:03] [PASSED] gt_was/22016670082
[18:27:03] [PASSED] gt_was/22016670082
[18:27:03] [PASSED] gt_was/14017421178
[18:27:03] [PASSED] gt_was/16025250150
[18:27:03] [PASSED] gt_was/14021871409
[18:27:03] [PASSED] gt_was/16021865536
[18:27:03] [PASSED] gt_was/14021486841
[18:27:03] [PASSED] gt_was/14025160223
[18:27:03] [PASSED] gt_was/14026144927, 16029437861, 14026127056
[18:27:03] [PASSED] gt_was/14025635424
[18:27:03] [PASSED] gt_was/16028005424
[18:27:03] ============== [PASSED] xe_rtp_table_gt_test ===============
[18:27:03] ================== xe_rtp_table_gt_test  ===================
[18:27:03] [PASSED] gt_tunings/Tuning: Blend Fill Caching Optimization Disable
[18:27:03] [PASSED] gt_tunings/Tuning: 32B Access Enable
[18:27:03] [PASSED] gt_tunings/Tuning: L3 cache
[18:27:03] [PASSED] gt_tunings/Tuning: L3 cache - media
[18:27:03] [PASSED] gt_tunings/Tuning: Compression Overfetch
[18:27:03] [PASSED] gt_tunings/Tuning: Compression Overfetch - media
[18:27:03] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3
[18:27:03] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3 - media
[18:27:03] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only
[18:27:03] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only - media
[18:27:03] [PASSED] gt_tunings/Tuning: Stateless compression control
[18:27:03] [PASSED] gt_tunings/Tuning: Stateless compression control - media
[18:27:03] [PASSED] gt_tunings/Tuning: L3 RW flush all Cache
[18:27:03] [PASSED] gt_tunings/Tuning: L3 RW flush all cache - media
[18:27:03] [PASSED] gt_tunings/Tuning: Set STLB Bank Hash Mode to 4KB
[18:27:03] ============== [PASSED] xe_rtp_table_gt_test ===============
[18:27:03] ================== xe_rtp_table_oob_test  ==================
[18:27:03] [PASSED] oob_was/1607983814
[18:27:03] [PASSED] oob_was/16010904313
[18:27:03] [PASSED] oob_was/18022495364
[18:27:03] [PASSED] oob_was/22012773006
[18:27:03] [PASSED] oob_was/14014475959
[18:27:03] [PASSED] oob_was/22011391025
[18:27:03] [PASSED] oob_was/22012727170
[18:27:03] [PASSED] oob_was/22012727685
[18:27:03] [PASSED] oob_was/22016596838
[18:27:03] [PASSED] oob_was/18020744125
[18:27:03] [PASSED] oob_was/1409600907
[18:27:03] [PASSED] oob_was/22014953428
[18:27:03] [PASSED] oob_was/16017236439
[18:27:03] [PASSED] oob_was/14019821291
[18:27:03] [PASSED] oob_was/14015076503
[18:27:03] [PASSED] oob_was/14018913170
[18:27:03] [PASSED] oob_was/14018094691
[18:27:03] [PASSED] oob_was/18024947630
[18:27:03] [PASSED] oob_was/16022287689
[18:27:03] [PASSED] oob_was/13011645652
[18:27:03] [PASSED] oob_was/14022293748
[18:27:03] [PASSED] oob_was/22019794406
[18:27:03] [PASSED] oob_was/22019338487
[18:27:03] [PASSED] oob_was/16023588340
[18:27:03] [PASSED] oob_was/14019789679
[18:27:03] [PASSED] oob_was/14022866841
[18:27:03] [PASSED] oob_was/16021333562
[18:27:03] [PASSED] oob_was/14016712196
[18:27:03] [PASSED] oob_was/14015568240
[18:27:03] [PASSED] oob_was/18013179988
[18:27:03] [PASSED] oob_was/1508761755
[18:27:03] [PASSED] oob_was/16023105232
[18:27:03] [PASSED] oob_was/16026508708
[18:27:03] [PASSED] oob_was/14020001231
[18:27:03] [PASSED] oob_was/16023683509
[18:27:03] [PASSED] oob_was/14025515070
[18:27:03] [PASSED] oob_was/15015404425_disable
[18:27:03] [PASSED] oob_was/16026007364
[18:27:03] [PASSED] oob_was/14020316580
[18:27:03] [PASSED] oob_was/14025883347
[18:27:03] [PASSED] oob_was/16029380221
[18:27:03] [PASSED] oob_was/22022079272
[18:27:03] [PASSED] oob_was/16029897822
[18:27:03] [PASSED] oob_was/14027054324
[18:27:03] ============== [PASSED] xe_rtp_table_oob_test ==============
[18:27:03] ================ xe_rtp_table_dev_oob_test  ================
[18:27:03] [PASSED] device_oob_was/22010954014
[18:27:03] [PASSED] device_oob_was/15015404425
[18:27:03] [PASSED] device_oob_was/22019338487_display
[18:27:03] [PASSED] device_oob_was/14022085890
[18:27:03] [PASSED] device_oob_was/14026539277
[18:27:03] [PASSED] device_oob_was/14026633728
[18:27:03] [PASSED] device_oob_was/14026746987
[18:27:03] [PASSED] device_oob_was/14026779378
[18:27:03] ============ [PASSED] xe_rtp_table_dev_oob_test ============
[18:27:03] ========== xe_rtp_table_missing_upper_bound_test  ==========
[18:27:03] [PASSED] register_whitelist/WaAllowPMDepthAndInvocationCountAccessFromUMD, 1408556865
[18:27:03] [PASSED] register_whitelist/1508744258, 14012131227, 1808121037
[18:27:03] [PASSED] register_whitelist/1806527549
[18:27:03] [PASSED] register_whitelist/allow_read_ctx_timestamp
[18:27:03] [PASSED] register_whitelist/allow_read_queue_timestamp
[18:27:03] [PASSED] register_whitelist/16014440446
[18:27:03] [PASSED] register_whitelist/16017236439
[18:27:03] [PASSED] register_whitelist/16020183090
[18:27:03] [PASSED] register_whitelist/14024997852
[18:27:03] [PASSED] register_whitelist/14024997852
[18:27:03] ====== [PASSED] xe_rtp_table_missing_upper_bound_test ======
[18:27:03] =============== [PASSED] xe_rtp_tables_test ================
[18:27:03] =================== xe_rtp (3 subtests) ====================
[18:27:03] =================== xe_rtp_rules_tests  ====================
[18:27:03] [PASSED] no
[18:27:03] [PASSED] yes
[18:27:03] [PASSED] no-and-no
[18:27:03] [PASSED] no-and-yes
[18:27:03] [PASSED] yes-and-no
[18:27:03] [PASSED] yes-and-yes
[18:27:03] [PASSED] no-or-no
[18:27:03] [PASSED] no-or-yes
[18:27:03] [PASSED] yes-or-no
[18:27:03] [PASSED] yes-or-yes
[18:27:03] [PASSED] no-yes-or-yes-no
[18:27:03] [PASSED] no-yes-or-yes-yes
[18:27:03] [PASSED] yes-yes-or-no-yes
[18:27:03] [PASSED] yes-yes-or-yes-yes
[18:27:03] [PASSED] no-no-or-yes-or-no
[18:27:03] [PASSED] or
[18:27:03] [PASSED] or-yes
[18:27:03] [PASSED] or-no
[18:27:03] [PASSED] yes-or
[18:27:03] [PASSED] no-or
[18:27:03] [PASSED] no-or-or-yes
[18:27:03] [PASSED] yes-or-or-no
[18:27:03] [PASSED] no-or-or-no
[18:27:03] [PASSED] missing-context-engine-class
[18:27:03] [PASSED] missing-context-engine-class-or-yes
[18:27:03] [PASSED] missing-context-engine-class-or-or-yes
[18:27:03] =============== [PASSED] xe_rtp_rules_tests ================
[18:27:03] =============== xe_rtp_process_to_sr_tests  ================
[18:27:03] [PASSED] coalesce-same-reg
[18:27:03] [PASSED] coalesce-same-reg-literal-and-func
[18:27:03] [PASSED] no-match-no-add
[18:27:03] [PASSED] two-regs-two-entries
[18:27:03] [PASSED] clr-one-set-other
[18:27:03] [PASSED] set-field
[18:27:03] [PASSED] conflict-duplicate
[18:27:03] [PASSED] conflict-not-disjoint
[18:27:03] [PASSED] conflict-not-disjoint-literal-and-func
[18:27:03] [PASSED] conflict-reg-type
[18:27:03] [PASSED] bad-mcr-reg-forced-to-regular
[18:27:03] [PASSED] bad-regular-reg-forced-to-mcr
[18:27:03] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[18:27:03] ================== xe_rtp_process_tests  ===================
[18:27:03] [PASSED] active1
[18:27:03] [PASSED] active2
[18:27:03] [PASSED] active-inactive
[18:27:03] [PASSED] inactive-active
[18:27:03] [PASSED] inactive-active-inactive
[18:27:03] [PASSED] inactive-inactive-inactive
[18:27:03] ============== [PASSED] xe_rtp_process_tests ===============
[18:27:03] ===================== [PASSED] xe_rtp ======================
[18:27:03] ==================== xe_wa (1 subtest) =====================
[18:27:03] ======================== xe_wa_gt  =========================
[18:27:03] [PASSED] TIGERLAKE B0
[18:27:03] [PASSED] DG1 A0
[18:27:03] [PASSED] DG1 B0
[18:27:03] [PASSED] ALDERLAKE_S A0
[18:27:03] [PASSED] ALDERLAKE_S B0
[18:27:03] [PASSED] ALDERLAKE_S C0
[18:27:03] [PASSED] ALDERLAKE_S D0
[18:27:03] [PASSED] ALDERLAKE_P A0
[18:27:03] [PASSED] ALDERLAKE_P B0
[18:27:03] [PASSED] ALDERLAKE_P C0
[18:27:03] [PASSED] ALDERLAKE_S RPLS D0
[18:27:03] [PASSED] ALDERLAKE_P RPLU E0
[18:27:03] [PASSED] DG2 G10 C0
[18:27:03] [PASSED] DG2 G11 B1
[18:27:03] [PASSED] DG2 G12 A1
[18:27:03] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[18:27:03] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[18:27:03] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[18:27:03] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[18:27:03] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[18:27:03] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[18:27:03] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[18:27:03] ==================== [PASSED] xe_wa_gt =====================
[18:27:03] ====================== [PASSED] xe_wa ======================
[18:27:03] ============================================================
[18:27:03] Testing complete. Ran 793 tests: passed: 765, skipped: 28
[18:27:03] Elapsed time: 36.993s total, 1.806s configuring, 34.471s building, 0.692s 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:27:03] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[18:27:05] 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:27:30] Starting KUnit Kernel (1/1)...
[18:27:30] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[18:27:30] ============= refcount_interrupt (4 subtests) ==============
[18:27:30] [PASSED] test_single_irq_change
[18:27:30] [PASSED] test_nested_irq_change
[18:27:30] [PASSED] test_multiple_irq_change
[18:27:30] [PASSED] test_irq_save
[18:27:30] =============== [PASSED] refcount_interrupt ================
[18:27:30] ============ drm_test_pick_cmdline (2 subtests) ============
[18:27:30] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[18:27:30] =============== drm_test_pick_cmdline_named  ===============
[18:27:30] [PASSED] NTSC
[18:27:30] [PASSED] NTSC-J
[18:27:30] [PASSED] PAL
[18:27:30] [PASSED] PAL-M
[18:27:30] =========== [PASSED] drm_test_pick_cmdline_named ===========
[18:27:30] ============== [PASSED] drm_test_pick_cmdline ==============
[18:27:30] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[18:27:30] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[18:27:30] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[18:27:30] =========== drm_validate_clone_mode (2 subtests) ===========
[18:27:30] ============== drm_test_check_in_clone_mode  ===============
[18:27:30] [PASSED] in_clone_mode
[18:27:30] [PASSED] not_in_clone_mode
[18:27:30] ========== [PASSED] drm_test_check_in_clone_mode ===========
[18:27:30] =============== drm_test_check_valid_clones  ===============
[18:27:30] [PASSED] not_in_clone_mode
[18:27:30] [PASSED] valid_clone
[18:27:30] [PASSED] invalid_clone
[18:27:30] =========== [PASSED] drm_test_check_valid_clones ===========
[18:27:30] ============= [PASSED] drm_validate_clone_mode =============
[18:27:30] ============= drm_validate_modeset (1 subtest) =============
[18:27:30] [PASSED] drm_test_check_connector_changed_modeset
[18:27:30] ============== [PASSED] drm_validate_modeset ===============
[18:27:30] ====== drm_test_bridge_get_current_state (1 subtest) =======
[18:27:30] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[18:27:30] ======== [PASSED] drm_test_bridge_get_current_state ========
[18:27:30] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[18:27:30] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[18:27:30] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[18:27:30] [PASSED] drm_test_drm_bridge_helper_hdmi_output_bus_fmts
[18:27:30] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[18:27:30] ============== drm_bridge_alloc (2 subtests) ===============
[18:27:30] [PASSED] drm_test_drm_bridge_alloc_basic
[18:27:30] [PASSED] drm_test_drm_bridge_alloc_get_put
[18:27:30] ================ [PASSED] drm_bridge_alloc =================
[18:27:30] ============= drm_bridge_bus_fmt (5 subtests) ==============
[18:27:30] [PASSED] drm_test_bridge_rgb_yuv_rgb
[18:27:30] [PASSED] drm_test_bridge_must_convert_to_yuv444
[18:27:30] [PASSED] drm_test_bridge_hdmi_auto_rgb
[18:27:30] [PASSED] drm_test_bridge_auto_first
[18:27:30] [PASSED] drm_test_bridge_rgb_yuv_no_path
[18:27:30] =============== [PASSED] drm_bridge_bus_fmt ================
[18:27:30] ============= drm_cmdline_parser (40 subtests) =============
[18:27:30] [PASSED] drm_test_cmdline_force_d_only
[18:27:30] [PASSED] drm_test_cmdline_force_D_only_dvi
[18:27:30] [PASSED] drm_test_cmdline_force_D_only_hdmi
[18:27:30] [PASSED] drm_test_cmdline_force_D_only_not_digital
[18:27:30] [PASSED] drm_test_cmdline_force_e_only
[18:27:30] [PASSED] drm_test_cmdline_res
[18:27:30] [PASSED] drm_test_cmdline_res_vesa
[18:27:30] [PASSED] drm_test_cmdline_res_vesa_rblank
[18:27:30] [PASSED] drm_test_cmdline_res_rblank
[18:27:30] [PASSED] drm_test_cmdline_res_bpp
[18:27:30] [PASSED] drm_test_cmdline_res_refresh
[18:27:30] [PASSED] drm_test_cmdline_res_bpp_refresh
[18:27:30] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[18:27:30] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[18:27:30] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[18:27:30] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[18:27:30] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[18:27:30] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[18:27:30] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[18:27:30] [PASSED] drm_test_cmdline_res_margins_force_on
[18:27:30] [PASSED] drm_test_cmdline_res_vesa_margins
[18:27:30] [PASSED] drm_test_cmdline_name
[18:27:30] [PASSED] drm_test_cmdline_name_bpp
[18:27:30] [PASSED] drm_test_cmdline_name_option
[18:27:30] [PASSED] drm_test_cmdline_name_bpp_option
[18:27:30] [PASSED] drm_test_cmdline_rotate_0
[18:27:30] [PASSED] drm_test_cmdline_rotate_90
[18:27:30] [PASSED] drm_test_cmdline_rotate_180
[18:27:30] [PASSED] drm_test_cmdline_rotate_270
[18:27:30] [PASSED] drm_test_cmdline_hmirror
[18:27:30] [PASSED] drm_test_cmdline_vmirror
[18:27:30] [PASSED] drm_test_cmdline_margin_options
[18:27:30] [PASSED] drm_test_cmdline_multiple_options
[18:27:30] [PASSED] drm_test_cmdline_bpp_extra_and_option
[18:27:30] [PASSED] drm_test_cmdline_extra_and_option
[18:27:30] [PASSED] drm_test_cmdline_freestanding_options
[18:27:30] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[18:27:30] [PASSED] drm_test_cmdline_panel_orientation
[18:27:30] ================ drm_test_cmdline_invalid  =================
[18:27:30] [PASSED] margin_only
[18:27:30] [PASSED] interlace_only
[18:27:30] [PASSED] res_missing_x
[18:27:30] [PASSED] res_missing_y
[18:27:30] [PASSED] res_bad_y
[18:27:30] [PASSED] res_missing_y_bpp
[18:27:30] [PASSED] res_bad_bpp
[18:27:30] [PASSED] res_bad_refresh
[18:27:30] [PASSED] res_bpp_refresh_force_on_off
[18:27:30] [PASSED] res_invalid_mode
[18:27:30] [PASSED] res_bpp_wrong_place_mode
[18:27:30] [PASSED] name_bpp_refresh
[18:27:30] [PASSED] name_refresh
[18:27:30] [PASSED] name_refresh_wrong_mode
[18:27:30] [PASSED] name_refresh_invalid_mode
[18:27:30] [PASSED] rotate_multiple
[18:27:30] [PASSED] rotate_invalid_val
[18:27:30] [PASSED] rotate_truncated
[18:27:30] [PASSED] invalid_option
[18:27:30] [PASSED] invalid_tv_option
[18:27:30] [PASSED] truncated_tv_option
[18:27:30] ============ [PASSED] drm_test_cmdline_invalid =============
[18:27:30] =============== drm_test_cmdline_tv_options  ===============
[18:27:30] [PASSED] NTSC
[18:27:30] [PASSED] NTSC_443
[18:27:30] [PASSED] NTSC_J
[18:27:30] [PASSED] PAL
[18:27:30] [PASSED] PAL_M
[18:27:30] [PASSED] PAL_N
[18:27:30] [PASSED] SECAM
[18:27:30] [PASSED] MONO_525
[18:27:30] [PASSED] MONO_625
[18:27:30] =========== [PASSED] drm_test_cmdline_tv_options ===========
[18:27:30] =============== [PASSED] drm_cmdline_parser ================
[18:27:30] ========== drmm_connector_hdmi_init (20 subtests) ==========
[18:27:30] [PASSED] drm_test_connector_hdmi_init_valid
[18:27:30] [PASSED] drm_test_connector_hdmi_init_bpc_8
[18:27:30] [PASSED] drm_test_connector_hdmi_init_bpc_10
[18:27:30] [PASSED] drm_test_connector_hdmi_init_bpc_12
[18:27:30] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[18:27:30] [PASSED] drm_test_connector_hdmi_init_bpc_null
[18:27:30] [PASSED] drm_test_connector_hdmi_init_formats_empty
[18:27:30] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[18:27:30] === drm_test_connector_hdmi_init_formats_yuv420_allowed  ===
[18:27:30] [PASSED] supported_formats=0x9 yuv420_allowed=1
[18:27:30] [PASSED] supported_formats=0x9 yuv420_allowed=0
[18:27:30] [PASSED] supported_formats=0x5 yuv420_allowed=1
[18:27:30] [PASSED] supported_formats=0x5 yuv420_allowed=0
[18:27:30] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[18:27:30] [PASSED] drm_test_connector_hdmi_init_null_ddc
[18:27:30] [PASSED] drm_test_connector_hdmi_init_null_product
[18:27:30] [PASSED] drm_test_connector_hdmi_init_null_vendor
[18:27:30] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[18:27:30] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[18:27:30] [PASSED] drm_test_connector_hdmi_init_product_valid
[18:27:30] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[18:27:30] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[18:27:30] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[18:27:30] ========= drm_test_connector_hdmi_init_type_valid  =========
[18:27:30] [PASSED] HDMI-A
[18:27:30] [PASSED] HDMI-B
[18:27:30] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[18:27:30] ======== drm_test_connector_hdmi_init_type_invalid  ========
[18:27:30] [PASSED] Unknown
[18:27:30] [PASSED] VGA
[18:27:30] [PASSED] DVI-I
[18:27:30] [PASSED] DVI-D
[18:27:30] [PASSED] DVI-A
[18:27:30] [PASSED] Composite
[18:27:30] [PASSED] SVIDEO
[18:27:30] [PASSED] LVDS
[18:27:30] [PASSED] Component
[18:27:30] [PASSED] DIN
[18:27:30] [PASSED] DP
[18:27:30] [PASSED] TV
[18:27:30] [PASSED] eDP
[18:27:30] [PASSED] Virtual
[18:27:30] [PASSED] DSI
[18:27:30] [PASSED] DPI
[18:27:30] [PASSED] Writeback
[18:27:30] [PASSED] SPI
[18:27:30] [PASSED] USB
[18:27:30] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[18:27:30] ============ [PASSED] drmm_connector_hdmi_init =============
[18:27:30] ============= drmm_connector_init (3 subtests) =============
[18:27:30] [PASSED] drm_test_drmm_connector_init
[18:27:30] [PASSED] drm_test_drmm_connector_init_null_ddc
[18:27:30] ========= drm_test_drmm_connector_init_type_valid  =========
[18:27:30] [PASSED] Unknown
[18:27:30] [PASSED] VGA
[18:27:30] [PASSED] DVI-I
[18:27:30] [PASSED] DVI-D
[18:27:30] [PASSED] DVI-A
[18:27:30] [PASSED] Composite
[18:27:30] [PASSED] SVIDEO
[18:27:30] [PASSED] LVDS
[18:27:30] [PASSED] Component
[18:27:30] [PASSED] DIN
[18:27:30] [PASSED] DP
[18:27:30] [PASSED] HDMI-A
[18:27:30] [PASSED] HDMI-B
[18:27:30] [PASSED] TV
[18:27:30] [PASSED] eDP
[18:27:30] [PASSED] Virtual
[18:27:30] [PASSED] DSI
[18:27:30] [PASSED] DPI
[18:27:30] [PASSED] Writeback
[18:27:30] [PASSED] SPI
[18:27:30] [PASSED] USB
[18:27:30] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[18:27:30] =============== [PASSED] drmm_connector_init ===============
[18:27:30] ========= drm_connector_dynamic_init (6 subtests) ==========
[18:27:30] [PASSED] drm_test_drm_connector_dynamic_init
[18:27:30] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[18:27:30] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[18:27:30] [PASSED] drm_test_drm_connector_dynamic_init_properties
[18:27:30] ===== drm_test_drm_connector_dynamic_init_type_valid  ======
[18:27:30] [PASSED] Unknown
[18:27:30] [PASSED] VGA
[18:27:30] [PASSED] DVI-I
[18:27:30] [PASSED] DVI-D
[18:27:30] [PASSED] DVI-A
[18:27:30] [PASSED] Composite
[18:27:30] [PASSED] SVIDEO
[18:27:30] [PASSED] LVDS
[18:27:30] [PASSED] Component
[18:27:30] [PASSED] DIN
[18:27:30] [PASSED] DP
[18:27:30] [PASSED] HDMI-A
[18:27:30] [PASSED] HDMI-B
[18:27:30] [PASSED] TV
[18:27:30] [PASSED] eDP
[18:27:30] [PASSED] Virtual
[18:27:30] [PASSED] DSI
[18:27:30] [PASSED] DPI
[18:27:30] [PASSED] Writeback
[18:27:30] [PASSED] SPI
[18:27:30] [PASSED] USB
[18:27:30] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[18:27:30] ======== drm_test_drm_connector_dynamic_init_name  =========
[18:27:30] [PASSED] Unknown
[18:27:30] [PASSED] VGA
[18:27:30] [PASSED] DVI-I
[18:27:30] [PASSED] DVI-D
[18:27:30] [PASSED] DVI-A
[18:27:30] [PASSED] Composite
[18:27:30] [PASSED] SVIDEO
[18:27:30] [PASSED] LVDS
[18:27:30] [PASSED] Component
[18:27:30] [PASSED] DIN
[18:27:30] [PASSED] DP
[18:27:30] [PASSED] HDMI-A
[18:27:30] [PASSED] HDMI-B
[18:27:30] [PASSED] TV
[18:27:30] [PASSED] eDP
[18:27:30] [PASSED] Virtual
[18:27:30] [PASSED] DSI
[18:27:30] [PASSED] DPI
[18:27:30] [PASSED] Writeback
[18:27:30] [PASSED] SPI
[18:27:30] [PASSED] USB
[18:27:30] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[18:27:30] =========== [PASSED] drm_connector_dynamic_init ============
[18:27:30] ==== drm_connector_dynamic_register_early (4 subtests) =====
[18:27:30] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[18:27:30] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[18:27:30] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[18:27:30] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[18:27:30] ====== [PASSED] drm_connector_dynamic_register_early =======
[18:27:30] ======= drm_connector_dynamic_register (7 subtests) ========
[18:27:30] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[18:27:30] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[18:27:30] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[18:27:30] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[18:27:30] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[18:27:30] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[18:27:30] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[18:27:30] ========= [PASSED] drm_connector_dynamic_register ==========
[18:27:30] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[18:27:30] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[18:27:30] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[18:27:30] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[18:27:30] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[18:27:30] ========== drm_test_get_tv_mode_from_name_valid  ===========
[18:27:30] [PASSED] NTSC
[18:27:30] [PASSED] NTSC-443
[18:27:30] [PASSED] NTSC-J
[18:27:30] [PASSED] PAL
[18:27:30] [PASSED] PAL-M
[18:27:30] [PASSED] PAL-N
[18:27:30] [PASSED] SECAM
[18:27:30] [PASSED] Mono
[18:27:30] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[18:27:30] [PASSED] drm_test_get_tv_mode_from_name_truncated
[18:27:30] ============ [PASSED] drm_get_tv_mode_from_name ============
[18:27:30] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[18:27:30] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[18:27:30] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[18:27:30] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[18:27:30] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[18:27:30] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[18:27:30] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[18:27:30] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid  =
[18:27:30] [PASSED] VIC 96
[18:27:30] [PASSED] VIC 97
[18:27:30] [PASSED] VIC 101
[18:27:30] [PASSED] VIC 102
[18:27:30] [PASSED] VIC 106
[18:27:30] [PASSED] VIC 107
[18:27:30] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[18:27:30] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[18:27:30] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[18:27:30] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[18:27:30] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[18:27:30] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[18:27:30] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[18:27:30] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[18:27:30] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name  ====
[18:27:30] [PASSED] Automatic
[18:27:30] [PASSED] Full
[18:27:30] [PASSED] Limited 16:235
[18:27:30] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[18:27:30] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[18:27:30] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[18:27:30] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[18:27:30] === drm_test_drm_hdmi_connector_get_output_format_name  ====
[18:27:30] [PASSED] RGB
[18:27:30] [PASSED] YUV 4:2:0
[18:27:30] [PASSED] YUV 4:2:2
[18:27:30] [PASSED] YUV 4:4:4
[18:27:30] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[18:27:30] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[18:27:30] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[18:27:30] ============= drm_damage_helper (21 subtests) ==============
[18:27:30] [PASSED] drm_test_damage_iter_no_damage
[18:27:30] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[18:27:30] [PASSED] drm_test_damage_iter_no_damage_src_moved
[18:27:30] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[18:27:30] [PASSED] drm_test_damage_iter_no_damage_not_visible
[18:27:30] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[18:27:30] [PASSED] drm_test_damage_iter_no_damage_no_fb
[18:27:30] [PASSED] drm_test_damage_iter_simple_damage
[18:27:30] [PASSED] drm_test_damage_iter_single_damage
[18:27:30] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[18:27:30] [PASSED] drm_test_damage_iter_single_damage_outside_src
[18:27:30] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[18:27:30] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[18:27:30] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[18:27:30] [PASSED] drm_test_damage_iter_single_damage_src_moved
[18:27:30] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[18:27:30] [PASSED] drm_test_damage_iter_damage
[18:27:30] [PASSED] drm_test_damage_iter_damage_one_intersect
[18:27:30] [PASSED] drm_test_damage_iter_damage_one_outside
[18:27:30] [PASSED] drm_test_damage_iter_damage_src_moved
[18:27:30] [PASSED] drm_test_damage_iter_damage_not_visible
[18:27:30] ================ [PASSED] drm_damage_helper ================
[18:27:30] ============== drm_dp_mst_helper (3 subtests) ==============
[18:27:30] ============== drm_test_dp_mst_calc_pbn_mode  ==============
[18:27:30] [PASSED] Clock 154000 BPP 30 DSC disabled
[18:27:30] [PASSED] Clock 234000 BPP 30 DSC disabled
[18:27:30] [PASSED] Clock 297000 BPP 24 DSC disabled
[18:27:30] [PASSED] Clock 332880 BPP 24 DSC enabled
[18:27:30] [PASSED] Clock 324540 BPP 24 DSC enabled
[18:27:30] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[18:27:30] ============== drm_test_dp_mst_calc_pbn_div  ===============
[18:27:30] [PASSED] Link rate 2000000 lane count 4
[18:27:30] [PASSED] Link rate 2000000 lane count 2
[18:27:30] [PASSED] Link rate 2000000 lane count 1
[18:27:30] [PASSED] Link rate 1350000 lane count 4
[18:27:30] [PASSED] Link rate 1350000 lane count 2
[18:27:30] [PASSED] Link rate 1350000 lane count 1
[18:27:30] [PASSED] Link rate 1000000 lane count 4
[18:27:30] [PASSED] Link rate 1000000 lane count 2
[18:27:30] [PASSED] Link rate 1000000 lane count 1
[18:27:30] [PASSED] Link rate 810000 lane count 4
[18:27:30] [PASSED] Link rate 810000 lane count 2
[18:27:30] [PASSED] Link rate 810000 lane count 1
[18:27:30] [PASSED] Link rate 540000 lane count 4
[18:27:30] [PASSED] Link rate 540000 lane count 2
[18:27:30] [PASSED] Link rate 540000 lane count 1
[18:27:30] [PASSED] Link rate 270000 lane count 4
[18:27:30] [PASSED] Link rate 270000 lane count 2
[18:27:30] [PASSED] Link rate 270000 lane count 1
[18:27:30] [PASSED] Link rate 162000 lane count 4
[18:27:30] [PASSED] Link rate 162000 lane count 2
[18:27:30] [PASSED] Link rate 162000 lane count 1
[18:27:30] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[18:27:30] ========= drm_test_dp_mst_sideband_msg_req_decode  =========
[18:27:30] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[18:27:30] [PASSED] DP_POWER_UP_PHY with port number
[18:27:30] [PASSED] DP_POWER_DOWN_PHY with port number
[18:27:30] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[18:27:30] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[18:27:30] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[18:27:30] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[18:27:30] [PASSED] DP_QUERY_PAYLOAD with port number
[18:27:30] [PASSED] DP_QUERY_PAYLOAD with VCPI
[18:27:30] [PASSED] DP_REMOTE_DPCD_READ with port number
[18:27:30] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[18:27:30] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[18:27:30] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[18:27:30] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[18:27:30] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[18:27:30] [PASSED] DP_REMOTE_I2C_READ with port number
[18:27:30] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[18:27:30] [PASSED] DP_REMOTE_I2C_READ with transactions array
[18:27:30] [PASSED] DP_REMOTE_I2C_WRITE with port number
[18:27:30] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[18:27:30] [PASSED] DP_REMOTE_I2C_WRITE with data array
[18:27:30] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[18:27:30] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[18:27:30] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[18:27:30] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[18:27:30] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[18:27:30] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[18:27:30] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[18:27:30] ================ [PASSED] drm_dp_mst_helper ================
[18:27:30] ================== drm_exec (7 subtests) ===================
[18:27:30] [PASSED] sanitycheck
[18:27:30] [PASSED] test_lock
[18:27:30] [PASSED] test_lock_unlock
[18:27:30] [PASSED] test_duplicates
[18:27:30] [PASSED] test_prepare
[18:27:30] [PASSED] test_prepare_array
[18:27:30] [PASSED] test_multiple_loops
[18:27:30] ==================== [PASSED] drm_exec =====================
[18:27:30] =========== drm_format_helper_test (17 subtests) ===========
[18:27:30] ============== drm_test_fb_xrgb8888_to_gray8  ==============
[18:27:30] [PASSED] single_pixel_source_buffer
[18:27:30] [PASSED] single_pixel_clip_rectangle
[18:27:30] [PASSED] well_known_colors
[18:27:30] [PASSED] destination_pitch
[18:27:30] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[18:27:30] ============= drm_test_fb_xrgb8888_to_rgb332  ==============
[18:27:30] [PASSED] single_pixel_source_buffer
[18:27:30] [PASSED] single_pixel_clip_rectangle
[18:27:30] [PASSED] well_known_colors
[18:27:30] [PASSED] destination_pitch
[18:27:30] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[18:27:30] ============= drm_test_fb_xrgb8888_to_rgb565  ==============
[18:27:30] [PASSED] single_pixel_source_buffer
[18:27:30] [PASSED] single_pixel_clip_rectangle
[18:27:30] [PASSED] well_known_colors
[18:27:30] [PASSED] destination_pitch
[18:27:30] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[18:27:30] ============ drm_test_fb_xrgb8888_to_xrgb1555  =============
[18:27:30] [PASSED] single_pixel_source_buffer
[18:27:30] [PASSED] single_pixel_clip_rectangle
[18:27:30] [PASSED] well_known_colors
[18:27:30] [PASSED] destination_pitch
[18:27:30] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[18:27:30] ============ drm_test_fb_xrgb8888_to_argb1555  =============
[18:27:30] [PASSED] single_pixel_source_buffer
[18:27:30] [PASSED] single_pixel_clip_rectangle
[18:27:30] [PASSED] well_known_colors
[18:27:30] [PASSED] destination_pitch
[18:27:30] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[18:27:30] ============ drm_test_fb_xrgb8888_to_rgba5551  =============
[18:27:30] [PASSED] single_pixel_source_buffer
[18:27:30] [PASSED] single_pixel_clip_rectangle
[18:27:30] [PASSED] well_known_colors
[18:27:30] [PASSED] destination_pitch
[18:27:30] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[18:27:30] ============= drm_test_fb_xrgb8888_to_rgb888  ==============
[18:27:30] [PASSED] single_pixel_source_buffer
[18:27:30] [PASSED] single_pixel_clip_rectangle
[18:27:30] [PASSED] well_known_colors
[18:27:30] [PASSED] destination_pitch
[18:27:30] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[18:27:30] ============= drm_test_fb_xrgb8888_to_bgr888  ==============
[18:27:30] [PASSED] single_pixel_source_buffer
[18:27:30] [PASSED] single_pixel_clip_rectangle
[18:27:30] [PASSED] well_known_colors
[18:27:30] [PASSED] destination_pitch
[18:27:30] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[18:27:30] ============ drm_test_fb_xrgb8888_to_argb8888  =============
[18:27:30] [PASSED] single_pixel_source_buffer
[18:27:30] [PASSED] single_pixel_clip_rectangle
[18:27:30] [PASSED] well_known_colors
[18:27:30] [PASSED] destination_pitch
[18:27:30] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[18:27:30] =========== drm_test_fb_xrgb8888_to_xrgb2101010  ===========
[18:27:30] [PASSED] single_pixel_source_buffer
[18:27:30] [PASSED] single_pixel_clip_rectangle
[18:27:30] [PASSED] well_known_colors
[18:27:30] [PASSED] destination_pitch
[18:27:30] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[18:27:30] =========== drm_test_fb_xrgb8888_to_argb2101010  ===========
[18:27:30] [PASSED] single_pixel_source_buffer
[18:27:30] [PASSED] single_pixel_clip_rectangle
[18:27:30] [PASSED] well_known_colors
[18:27:30] [PASSED] destination_pitch
[18:27:30] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[18:27:30] ============== drm_test_fb_xrgb8888_to_mono  ===============
[18:27:30] [PASSED] single_pixel_source_buffer
[18:27:30] [PASSED] single_pixel_clip_rectangle
[18:27:30] [PASSED] well_known_colors
[18:27:30] [PASSED] destination_pitch
[18:27:30] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[18:27:30] ==================== drm_test_fb_swab  =====================
[18:27:30] [PASSED] single_pixel_source_buffer
[18:27:30] [PASSED] single_pixel_clip_rectangle
[18:27:30] [PASSED] well_known_colors
[18:27:30] [PASSED] destination_pitch
[18:27:30] ================ [PASSED] drm_test_fb_swab =================
[18:27:30] ============ drm_test_fb_xrgb8888_to_xbgr8888  =============
[18:27:30] [PASSED] single_pixel_source_buffer
[18:27:30] [PASSED] single_pixel_clip_rectangle
[18:27:30] [PASSED] well_known_colors
[18:27:30] [PASSED] destination_pitch
[18:27:30] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[18:27:30] ============ drm_test_fb_xrgb8888_to_abgr8888  =============
[18:27:30] [PASSED] single_pixel_source_buffer
[18:27:30] [PASSED] single_pixel_clip_rectangle
[18:27:30] [PASSED] well_known_colors
[18:27:30] [PASSED] destination_pitch
[18:27:30] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[18:27:30] ================= drm_test_fb_clip_offset  =================
[18:27:30] [PASSED] pass through
[18:27:30] [PASSED] horizontal offset
[18:27:30] [PASSED] vertical offset
[18:27:30] [PASSED] horizontal and vertical offset
[18:27:30] [PASSED] horizontal offset (custom pitch)
[18:27:30] [PASSED] vertical offset (custom pitch)
[18:27:30] [PASSED] horizontal and vertical offset (custom pitch)
[18:27:30] ============= [PASSED] drm_test_fb_clip_offset =============
[18:27:30] =================== drm_test_fb_memcpy  ====================
[18:27:30] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[18:27:30] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[18:27:30] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[18:27:30] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[18:27:30] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[18:27:30] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[18:27:30] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[18:27:30] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[18:27:30] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[18:27:30] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[18:27:30] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[18:27:30] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[18:27:30] =============== [PASSED] drm_test_fb_memcpy ================
[18:27:30] ============= [PASSED] drm_format_helper_test ==============
[18:27:30] ================= drm_format (18 subtests) =================
[18:27:30] [PASSED] drm_test_format_block_width_invalid
[18:27:30] [PASSED] drm_test_format_block_width_one_plane
[18:27:30] [PASSED] drm_test_format_block_width_two_plane
[18:27:30] [PASSED] drm_test_format_block_width_three_plane
[18:27:30] [PASSED] drm_test_format_block_width_tiled
[18:27:30] [PASSED] drm_test_format_block_height_invalid
[18:27:30] [PASSED] drm_test_format_block_height_one_plane
[18:27:30] [PASSED] drm_test_format_block_height_two_plane
[18:27:30] [PASSED] drm_test_format_block_height_three_plane
[18:27:30] [PASSED] drm_test_format_block_height_tiled
[18:27:30] [PASSED] drm_test_format_min_pitch_invalid
[18:27:30] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[18:27:30] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[18:27:30] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[18:27:30] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[18:27:30] [PASSED] drm_test_format_min_pitch_two_plane
[18:27:30] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[18:27:30] [PASSED] drm_test_format_min_pitch_tiled
[18:27:30] =================== [PASSED] drm_format ====================
[18:27:30] ============== drm_framebuffer (10 subtests) ===============
[18:27:30] ========== drm_test_framebuffer_check_src_coords  ==========
[18:27:30] [PASSED] Success: source fits into fb
[18:27:30] [PASSED] Fail: overflowing fb with x-axis coordinate
[18:27:30] [PASSED] Fail: overflowing fb with y-axis coordinate
[18:27:30] [PASSED] Fail: overflowing fb with source width
[18:27:30] [PASSED] Fail: overflowing fb with source height
[18:27:30] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[18:27:30] [PASSED] drm_test_framebuffer_cleanup
[18:27:30] =============== drm_test_framebuffer_create  ===============
[18:27:30] [PASSED] ABGR8888 normal sizes
[18:27:30] [PASSED] ABGR8888 max sizes
[18:27:30] [PASSED] ABGR8888 pitch greater than min required
[18:27:30] [PASSED] ABGR8888 pitch less than min required
[18:27:30] [PASSED] ABGR8888 Invalid width
[18:27:30] [PASSED] ABGR8888 Invalid buffer handle
[18:27:30] [PASSED] No pixel format
[18:27:30] [PASSED] ABGR8888 Width 0
[18:27:30] [PASSED] ABGR8888 Height 0
[18:27:30] [PASSED] ABGR8888 Out of bound height * pitch combination
[18:27:30] [PASSED] ABGR8888 Large buffer offset
[18:27:30] [PASSED] ABGR8888 Buffer offset for inexistent plane
[18:27:30] [PASSED] ABGR8888 Invalid flag
[18:27:30] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[18:27:30] [PASSED] ABGR8888 Valid buffer modifier
[18:27:30] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[18:27:30] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[18:27:30] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[18:27:30] [PASSED] NV12 Normal sizes
[18:27:30] [PASSED] NV12 Max sizes
[18:27:30] [PASSED] NV12 Invalid pitch
[18:27:30] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[18:27:30] [PASSED] NV12 different  modifier per-plane
[18:27:30] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[18:27:30] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[18:27:30] [PASSED] NV12 Modifier for inexistent plane
[18:27:30] [PASSED] NV12 Handle for inexistent plane
[18:27:30] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[18:27:30] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[18:27:30] [PASSED] YVU420 Normal sizes
[18:27:30] [PASSED] YVU420 Max sizes
[18:27:30] [PASSED] YVU420 Invalid pitch
[18:27:30] [PASSED] YVU420 Different pitches
[18:27:30] [PASSED] YVU420 Different buffer offsets/pitches
[18:27:30] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[18:27:30] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[18:27:30] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[18:27:30] [PASSED] YVU420 Valid modifier
[18:27:30] [PASSED] YVU420 Different modifiers per plane
[18:27:30] [PASSED] YVU420 Modifier for inexistent plane
[18:27:30] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[18:27:30] [PASSED] X0L2 Normal sizes
[18:27:30] [PASSED] X0L2 Max sizes
[18:27:30] [PASSED] X0L2 Invalid pitch
[18:27:30] [PASSED] X0L2 Pitch greater than minimum required
[18:27:30] [PASSED] X0L2 Handle for inexistent plane
[18:27:30] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[18:27:30] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[18:27:30] [PASSED] X0L2 Valid modifier
[18:27:30] [PASSED] X0L2 Modifier for inexistent plane
[18:27:30] =========== [PASSED] drm_test_framebuffer_create ===========
[18:27:30] [PASSED] drm_test_framebuffer_free
[18:27:30] [PASSED] drm_test_framebuffer_init
[18:27:30] [PASSED] drm_test_framebuffer_init_bad_format
[18:27:30] [PASSED] drm_test_framebuffer_init_dev_mismatch
[18:27:30] [PASSED] drm_test_framebuffer_lookup
[18:27:30] [PASSED] drm_test_framebuffer_lookup_inexistent
[18:27:30] [PASSED] drm_test_framebuffer_modifiers_not_supported
[18:27:30] ================= [PASSED] drm_framebuffer =================
[18:27:30] ================ drm_gem_shmem (8 subtests) ================
[18:27:30] [PASSED] drm_gem_shmem_test_obj_create
[18:27:30] [PASSED] drm_gem_shmem_test_obj_create_private
[18:27:30] [PASSED] drm_gem_shmem_test_pin_pages
[18:27:30] [PASSED] drm_gem_shmem_test_vmap
[18:27:30] [PASSED] drm_gem_shmem_test_get_sg_table
[18:27:30] [PASSED] drm_gem_shmem_test_get_pages_sgt
[18:27:30] [PASSED] drm_gem_shmem_test_madvise
[18:27:30] [PASSED] drm_gem_shmem_test_purge
[18:27:30] ================== [PASSED] drm_gem_shmem ==================
[18:27:30] === drm_atomic_helper_connector_hdmi_check (29 subtests) ===
[18:27:30] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[18:27:30] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[18:27:30] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[18:27:30] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[18:27:30] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[18:27:30] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[18:27:30] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420  =======
[18:27:30] [PASSED] Automatic
[18:27:30] [PASSED] Full
[18:27:30] [PASSED] Limited 16:235
[18:27:30] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[18:27:30] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[18:27:30] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[18:27:30] [PASSED] drm_test_check_disable_connector
[18:27:30] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[18:27:30] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[18:27:30] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[18:27:30] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[18:27:30] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[18:27:30] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[18:27:30] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[18:27:30] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[18:27:30] [PASSED] drm_test_check_output_bpc_dvi
[18:27:30] [PASSED] drm_test_check_output_bpc_format_vic_1
[18:27:30] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[18:27:30] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[18:27:30] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[18:27:30] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[18:27:30] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[18:27:30] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[18:27:30] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[18:27:30] ============ drm_test_check_hdmi_color_format  =============
[18:27:30] [PASSED] AUTO -> RGB
[18:27:30] [PASSED] YCBCR422 -> YUV422
[18:27:30] [PASSED] YCBCR420 -> YUV420
[18:27:30] [PASSED] YCBCR444 -> YUV444
[18:27:30] [PASSED] RGB -> RGB
[18:27:30] ======== [PASSED] drm_test_check_hdmi_color_format =========
[18:27:30] ======== drm_test_check_hdmi_color_format_420_only  ========
[18:27:30] [PASSED] RGB should fail
[18:27:30] [PASSED] YUV444 should fail
[18:27:30] [PASSED] YUV422 should fail
[18:27:30] [PASSED] YUV420 should work
[18:27:30] ==== [PASSED] drm_test_check_hdmi_color_format_420_only ====
[18:27:30] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[18:27:30] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[18:27:30] [PASSED] drm_test_check_broadcast_rgb_value
[18:27:30] [PASSED] drm_test_check_bpc_8_value
[18:27:30] [PASSED] drm_test_check_bpc_10_value
[18:27:30] [PASSED] drm_test_check_bpc_12_value
[18:27:30] [PASSED] drm_test_check_format_value
[18:27:30] [PASSED] drm_test_check_tmds_char_value
[18:27:30] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[18:27:30] = drm_atomic_helper_connector_hdmi_mode_valid (7 subtests) =
[18:27:30] [PASSED] drm_test_check_mode_valid
[18:27:30] [PASSED] drm_test_check_mode_valid_reject
[18:27:30] [PASSED] drm_test_check_mode_valid_reject_rate
[18:27:30] [PASSED] drm_test_check_mode_valid_reject_max_clock
[18:27:30] [PASSED] drm_test_check_mode_valid_yuv420_only_max_clock
[18:27:30] [PASSED] drm_test_check_mode_valid_reject_yuv420_only_connector
[18:27:30] [PASSED] drm_test_check_mode_valid_accept_yuv420_also_connector_rgb
[18:27:30] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[18:27:30] = drm_atomic_helper_connector_hdmi_infoframes (5 subtests) =
[18:27:30] [PASSED] drm_test_check_infoframes
[18:27:30] [PASSED] drm_test_check_reject_avi_infoframe
[18:27:30] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_8
[18:27:30] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_10
[18:27:30] [PASSED] drm_test_check_reject_audio_infoframe
[18:27:30] === [PASSED] drm_atomic_helper_connector_hdmi_infoframes ===
[18:27:30] ================= drm_managed (2 subtests) =================
[18:27:30] [PASSED] drm_test_managed_release_action
[18:27:30] [PASSED] drm_test_managed_run_action
[18:27:30] =================== [PASSED] drm_managed ===================
[18:27:30] =================== drm_mm (6 subtests) ====================
[18:27:30] [PASSED] drm_test_mm_init
[18:27:30] [PASSED] drm_test_mm_debug
[18:27:30] [PASSED] drm_test_mm_align32
[18:27:30] [PASSED] drm_test_mm_align64
[18:27:30] [PASSED] drm_test_mm_lowest
[18:27:30] [PASSED] drm_test_mm_highest
[18:27:30] ===================== [PASSED] drm_mm ======================
[18:27:30] ============= drm_modes_analog_tv (5 subtests) =============
[18:27:30] [PASSED] drm_test_modes_analog_tv_mono_576i
[18:27:30] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[18:27:30] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[18:27:30] [PASSED] drm_test_modes_analog_tv_pal_576i
[18:27:30] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[18:27:30] =============== [PASSED] drm_modes_analog_tv ===============
[18:27:30] ============== drm_plane_helper (2 subtests) ===============
[18:27:30] =============== drm_test_check_plane_state  ================
[18:27:30] [PASSED] clipping_simple
[18:27:30] [PASSED] clipping_rotate_reflect
[18:27:30] [PASSED] positioning_simple
[18:27:30] [PASSED] upscaling
[18:27:30] [PASSED] downscaling
[18:27:30] [PASSED] rounding1
[18:27:30] [PASSED] rounding2
[18:27:30] [PASSED] rounding3
[18:27:30] [PASSED] rounding4
[18:27:30] =========== [PASSED] drm_test_check_plane_state ============
[18:27:30] =========== drm_test_check_invalid_plane_state  ============
[18:27:30] [PASSED] positioning_invalid
[18:27:30] [PASSED] upscaling_invalid
[18:27:30] [PASSED] downscaling_invalid
[18:27:30] ======= [PASSED] drm_test_check_invalid_plane_state ========
[18:27:30] ================ [PASSED] drm_plane_helper =================
[18:27:30] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[18:27:30] ====== drm_test_connector_helper_tv_get_modes_check  =======
[18:27:30] [PASSED] None
[18:27:30] [PASSED] PAL
[18:27:30] [PASSED] NTSC
[18:27:30] [PASSED] Both, NTSC Default
[18:27:30] [PASSED] Both, PAL Default
[18:27:30] [PASSED] Both, NTSC Default, with PAL on command-line
[18:27:30] [PASSED] Both, PAL Default, with NTSC on command-line
[18:27:30] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[18:27:30] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[18:27:30] ================== drm_rect (9 subtests) ===================
[18:27:30] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[18:27:30] [PASSED] drm_test_rect_clip_scaled_not_clipped
[18:27:30] [PASSED] drm_test_rect_clip_scaled_clipped
[18:27:30] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[18:27:30] ================= drm_test_rect_intersect  =================
[18:27:30] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[18:27:30] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[18:27:30] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[18:27:30] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[18:27:30] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[18:27:30] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[18:27:30] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[18:27:30] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[18:27:30] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[18:27:30] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[18:27:30] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[18:27:30] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[18:27:30] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[18:27:30] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[18:27:30] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[18:27:30] ============= [PASSED] drm_test_rect_intersect =============
[18:27:30] ================ drm_test_rect_calc_hscale  ================
[18:27:30] [PASSED] normal use
[18:27:30] [PASSED] out of max range
[18:27:30] [PASSED] out of min range
[18:27:30] [PASSED] zero dst
[18:27:30] [PASSED] negative src
[18:27:30] [PASSED] negative dst
[18:27:30] ============ [PASSED] drm_test_rect_calc_hscale ============
[18:27:30] ================ drm_test_rect_calc_vscale  ================
[18:27:30] [PASSED] normal use
[18:27:30] [PASSED] out of max range
[18:27:30] [PASSED] out of min range
[18:27:30] [PASSED] zero dst
[18:27:30] [PASSED] negative src
[18:27:30] [PASSED] negative dst
[18:27:30] ============ [PASSED] drm_test_rect_calc_vscale ============
[18:27:30] ================== drm_test_rect_rotate  ===================
[18:27:30] [PASSED] reflect-x
[18:27:30] [PASSED] reflect-y
[18:27:30] [PASSED] rotate-0
[18:27:30] [PASSED] rotate-90
[18:27:30] [PASSED] rotate-180
[18:27:30] [PASSED] rotate-270
[18:27:30] ============== [PASSED] drm_test_rect_rotate ===============
[18:27:30] ================ drm_test_rect_rotate_inv  =================
[18:27:30] [PASSED] reflect-x
[18:27:30] [PASSED] reflect-y
[18:27:30] [PASSED] rotate-0
[18:27:30] [PASSED] rotate-90
[18:27:30] [PASSED] rotate-180
[18:27:30] [PASSED] rotate-270
[18:27:30] ============ [PASSED] drm_test_rect_rotate_inv =============
[18:27:30] ==================== [PASSED] drm_rect =====================
[18:27:30] ============ drm_sysfb_modeset_test (1 subtest) ============
[18:27:30] ============ drm_test_sysfb_build_fourcc_list  =============
[18:27:30] [PASSED] no native formats
[18:27:30] [PASSED] XRGB8888 as native format
[18:27:30] [PASSED] remove duplicates
[18:27:30] [PASSED] convert alpha formats
[18:27:30] [PASSED] random formats
[18:27:30] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[18:27:30] ============= [PASSED] drm_sysfb_modeset_test ==============
[18:27:30] ================== drm_fixp (2 subtests) ===================
[18:27:30] [PASSED] drm_test_int2fixp
[18:27:30] [PASSED] drm_test_sm2fixp
[18:27:30] ==================== [PASSED] drm_fixp =====================
[18:27:30] ============================================================
[18:27:30] Testing complete. Ran 641 tests: passed: 641
[18:27:30] Elapsed time: 27.247s total, 1.834s configuring, 25.243s building, 0.150s 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:27:31] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[18:27:32] 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:27:42] Starting KUnit Kernel (1/1)...
[18:27:42] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[18:27:42] ============= refcount_interrupt (4 subtests) ==============
[18:27:42] [PASSED] test_single_irq_change
[18:27:42] [PASSED] test_nested_irq_change
[18:27:42] [PASSED] test_multiple_irq_change
[18:27:42] [PASSED] test_irq_save
[18:27:42] =============== [PASSED] refcount_interrupt ================
[18:27:42] ================= ttm_device (5 subtests) ==================
[18:27:42] [PASSED] ttm_device_init_basic
[18:27:42] [PASSED] ttm_device_init_multiple
[18:27:42] [PASSED] ttm_device_fini_basic
[18:27:42] [PASSED] ttm_device_init_no_vma_man
[18:27:42] ================== ttm_device_init_pools  ==================
[18:27:42] [PASSED] No DMA allocations, no DMA32 required
[18:27:42] [PASSED] DMA allocations, DMA32 required
[18:27:42] [PASSED] No DMA allocations, DMA32 required
[18:27:42] [PASSED] DMA allocations, no DMA32 required
[18:27:42] ============== [PASSED] ttm_device_init_pools ==============
[18:27:42] =================== [PASSED] ttm_device ====================
[18:27:42] ================== ttm_pool (8 subtests) ===================
[18:27:42] ================== ttm_pool_alloc_basic  ===================
[18:27:42] [PASSED] One page
[18:27:42] [PASSED] More than one page
[18:27:42] [PASSED] Above the allocation limit
[18:27:42] [PASSED] One page, with coherent DMA mappings enabled
[18:27:42] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[18:27:42] ============== [PASSED] ttm_pool_alloc_basic ===============
[18:27:42] ============== ttm_pool_alloc_basic_dma_addr  ==============
[18:27:42] [PASSED] One page
[18:27:42] [PASSED] More than one page
[18:27:42] [PASSED] Above the allocation limit
[18:27:43] [PASSED] One page, with coherent DMA mappings enabled
[18:27:43] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[18:27:43] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[18:27:43] [PASSED] ttm_pool_alloc_order_caching_match
[18:27:43] [PASSED] ttm_pool_alloc_caching_mismatch
[18:27:43] [PASSED] ttm_pool_alloc_order_mismatch
[18:27:43] [PASSED] ttm_pool_free_dma_alloc
[18:27:43] [PASSED] ttm_pool_free_no_dma_alloc
[18:27:43] [PASSED] ttm_pool_fini_basic
[18:27:43] ==================== [PASSED] ttm_pool =====================
[18:27:43] ================ ttm_resource (8 subtests) =================
[18:27:43] ================= ttm_resource_init_basic  =================
[18:27:43] [PASSED] Init resource in TTM_PL_SYSTEM
[18:27:43] [PASSED] Init resource in TTM_PL_VRAM
[18:27:43] [PASSED] Init resource in a private placement
[18:27:43] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[18:27:43] ============= [PASSED] ttm_resource_init_basic =============
[18:27:43] [PASSED] ttm_resource_init_pinned
[18:27:43] [PASSED] ttm_resource_fini_basic
[18:27:43] [PASSED] ttm_resource_manager_init_basic
[18:27:43] [PASSED] ttm_resource_manager_usage_basic
[18:27:43] [PASSED] ttm_resource_manager_set_used_basic
[18:27:43] [PASSED] ttm_sys_man_alloc_basic
[18:27:43] [PASSED] ttm_sys_man_free_basic
[18:27:43] ================== [PASSED] ttm_resource ===================
[18:27:43] =================== ttm_tt (15 subtests) ===================
[18:27:43] ==================== ttm_tt_init_basic  ====================
[18:27:43] [PASSED] Page-aligned size
[18:27:43] [PASSED] Extra pages requested
[18:27:43] ================ [PASSED] ttm_tt_init_basic ================
[18:27:43] [PASSED] ttm_tt_init_misaligned
[18:27:43] [PASSED] ttm_tt_fini_basic
[18:27:43] [PASSED] ttm_tt_fini_sg
[18:27:43] [PASSED] ttm_tt_fini_shmem
[18:27:43] [PASSED] ttm_tt_create_basic
[18:27:43] [PASSED] ttm_tt_create_invalid_bo_type
[18:27:43] [PASSED] ttm_tt_create_ttm_exists
[18:27:43] [PASSED] ttm_tt_create_failed
[18:27:43] [PASSED] ttm_tt_destroy_basic
[18:27:43] [PASSED] ttm_tt_populate_null_ttm
[18:27:43] [PASSED] ttm_tt_populate_populated_ttm
[18:27:43] [PASSED] ttm_tt_unpopulate_basic
[18:27:43] [PASSED] ttm_tt_unpopulate_empty_ttm
[18:27:43] [PASSED] ttm_tt_swapin_basic
[18:27:43] ===================== [PASSED] ttm_tt ======================
[18:27:43] =================== ttm_bo (14 subtests) ===================
[18:27:43] =========== ttm_bo_reserve_optimistic_no_ticket  ===========
[18:27:43] [PASSED] Cannot be interrupted and sleeps
[18:27:43] [PASSED] Cannot be interrupted, locks straight away
[18:27:43] [PASSED] Can be interrupted, sleeps
[18:27:43] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[18:27:43] [PASSED] ttm_bo_reserve_locked_no_sleep
[18:27:43] [PASSED] ttm_bo_reserve_no_wait_ticket
[18:27:43] [PASSED] ttm_bo_reserve_double_resv
[18:27:43] [PASSED] ttm_bo_reserve_interrupted
[18:27:43] [PASSED] ttm_bo_reserve_deadlock
[18:27:43] [PASSED] ttm_bo_unreserve_basic
[18:27:43] [PASSED] ttm_bo_unreserve_pinned
[18:27:43] [PASSED] ttm_bo_unreserve_bulk
[18:27:43] [PASSED] ttm_bo_fini_basic
[18:27:43] [PASSED] ttm_bo_fini_shared_resv
[18:27:43] [PASSED] ttm_bo_pin_basic
[18:27:43] [PASSED] ttm_bo_pin_unpin_resource
[18:27:43] [PASSED] ttm_bo_multiple_pin_one_unpin
[18:27:43] ===================== [PASSED] ttm_bo ======================
[18:27:43] ============== ttm_bo_validate (22 subtests) ===============
[18:27:43] ============== ttm_bo_init_reserved_sys_man  ===============
[18:27:43] [PASSED] Buffer object for userspace
[18:27:43] [PASSED] Kernel buffer object
[18:27:43] [PASSED] Shared buffer object
[18:27:43] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[18:27:43] ============== ttm_bo_init_reserved_mock_man  ==============
[18:27:43] [PASSED] Buffer object for userspace
[18:27:43] [PASSED] Kernel buffer object
[18:27:43] [PASSED] Shared buffer object
[18:27:43] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[18:27:43] [PASSED] ttm_bo_init_reserved_resv
[18:27:43] ================== ttm_bo_validate_basic  ==================
[18:27:43] [PASSED] Buffer object for userspace
[18:27:43] [PASSED] Kernel buffer object
[18:27:43] [PASSED] Shared buffer object
[18:27:43] ============== [PASSED] ttm_bo_validate_basic ==============
[18:27:43] [PASSED] ttm_bo_validate_invalid_placement
[18:27:43] ============= ttm_bo_validate_same_placement  ==============
[18:27:43] [PASSED] System manager
[18:27:43] [PASSED] VRAM manager
[18:27:43] ========= [PASSED] ttm_bo_validate_same_placement ==========
[18:27:43] [PASSED] ttm_bo_validate_failed_alloc
[18:27:43] [PASSED] ttm_bo_validate_pinned
[18:27:43] [PASSED] ttm_bo_validate_busy_placement
[18:27:43] ================ ttm_bo_validate_multihop  =================
[18:27:43] [PASSED] Buffer object for userspace
[18:27:43] [PASSED] Kernel buffer object
[18:27:43] [PASSED] Shared buffer object
[18:27:43] ============ [PASSED] ttm_bo_validate_multihop =============
[18:27:43] ========== ttm_bo_validate_no_placement_signaled  ==========
[18:27:43] [PASSED] Buffer object in system domain, no page vector
[18:27:43] [PASSED] Buffer object in system domain with an existing page vector
[18:27:43] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[18:27:43] ======== ttm_bo_validate_no_placement_not_signaled  ========
[18:27:43] [PASSED] Buffer object for userspace
[18:27:43] [PASSED] Kernel buffer object
[18:27:43] [PASSED] Shared buffer object
[18:27:43] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[18:27:43] [PASSED] ttm_bo_validate_move_fence_signaled
[18:27:43] ========= ttm_bo_validate_move_fence_not_signaled  =========
[18:27:43] [PASSED] Waits for GPU
[18:27:43] [PASSED] Tries to lock straight away
[18:27:43] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[18:27:43] [PASSED] ttm_bo_validate_swapout
[18:27:43] [PASSED] ttm_bo_validate_happy_evict
[18:27:43] [PASSED] ttm_bo_validate_all_pinned_evict
[18:27:43] [PASSED] ttm_bo_validate_allowed_only_evict
[18:27:43] [PASSED] ttm_bo_validate_deleted_evict
[18:27:43] [PASSED] ttm_bo_validate_busy_domain_evict
[18:27:43] [PASSED] ttm_bo_validate_evict_gutting
[18:27:43] [PASSED] ttm_bo_validate_recrusive_evict
[18:27:43] ================= [PASSED] ttm_bo_validate =================
[18:27:43] ============================================================
[18:27:43] Testing complete. Ran 106 tests: passed: 106
[18:27:43] Elapsed time: 12.088s total, 1.793s configuring, 10.030s building, 0.233s 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:27:43] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[18:27:44] 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:27:53] Starting KUnit Kernel (1/1)...
[18:27:53] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[18:27:53] ============= refcount_interrupt (4 subtests) ==============
[18:27:53] [PASSED] test_single_irq_change
[18:27:53] [PASSED] test_nested_irq_change
[18:27:53] [PASSED] test_multiple_irq_change
[18:27:53] [PASSED] test_irq_save
[18:27:53] =============== [PASSED] refcount_interrupt ================
[18:27:53] =============== dma-buf-fence (12 subtests) ================
[18:27:53] [PASSED] test_sanitycheck
[18:27:53] [PASSED] test_signaling
[18:27:53] [PASSED] test_add_callback
[18:27:53] [PASSED] test_late_add_callback
[18:27:53] [PASSED] test_rm_callback
[18:27:53] [PASSED] test_late_rm_callback
[18:27:53] [PASSED] test_status
[18:27:53] [PASSED] test_error
[18:27:53] [PASSED] test_wait
[18:27:53] [PASSED] test_wait_timeout
[18:27:53] [PASSED] test_stub
[18:27:53] [SKIPPED] test_race_signal_callback (requires at least 2 CPUs)
[18:27:53] ================== [PASSED] dma-buf-fence ==================
[18:27:53] ============ dma-buf-fence-chain (11 subtests) =============
[18:27:53] [PASSED] test_sanitycheck
[18:27:53] [PASSED] test_find_seqno
[18:27:53] [PASSED] test_find_signaled
[18:27:53] [PASSED] test_find_out_of_order
[18:27:58] [PASSED] test_find_gap
[18:27:58] [PASSED] test_find_race
[18:27:58] [PASSED] test_signal_forward
[18:27:58] [PASSED] test_signal_backward
[18:27:58] [PASSED] test_wait_forward
[18:27:58] [PASSED] test_wait_backward
[18:27:58] [PASSED] test_wait_random
[18:27:58] =============== [PASSED] dma-buf-fence-chain ===============
[18:27:58] ============ dma-buf-fence-unwrap (10 subtests) ============
[18:27:58] [PASSED] test_sanitycheck
[18:27:58] [PASSED] test_unwrap_array
[18:27:58] [PASSED] test_unwrap_chain
[18:27:58] [PASSED] test_unwrap_chain_array
[18:27:58] [PASSED] test_unwrap_merge
[18:27:58] [PASSED] test_unwrap_merge_duplicate
[18:27:58] [PASSED] test_unwrap_merge_seqno
[18:27:58] [PASSED] test_unwrap_merge_order
[18:27:58] [PASSED] test_unwrap_merge_complex
[18:27:58] [PASSED] test_unwrap_merge_complex_seqno
[18:27:58] ============== [PASSED] dma-buf-fence-unwrap ===============
[18:27:58] ================ dma-buf-resv (5 subtests) =================
[18:27:58] [PASSED] test_sanitycheck
[18:27:58] ===================== test_signaling  ======================
[18:27:58] [PASSED] kernel
[18:27:58] [PASSED] write
[18:27:58] [PASSED] read
[18:27:58] [PASSED] bookkeep
[18:27:58] ================= [PASSED] test_signaling ==================
[18:27:58] ====================== test_for_each  ======================
[18:27:58] [PASSED] kernel
[18:27:58] [PASSED] write
[18:27:58] [PASSED] read
[18:27:58] [PASSED] bookkeep
[18:27:58] ================== [PASSED] test_for_each ==================
[18:27:58] ================= test_for_each_unlocked  ==================
[18:27:58] [PASSED] kernel
[18:27:58] [PASSED] write
[18:27:58] [PASSED] read
[18:27:58] [PASSED] bookkeep
[18:27:58] ============= [PASSED] test_for_each_unlocked ==============
[18:27:58] ===================== test_get_fences  =====================
[18:27:58] [PASSED] kernel
[18:27:58] [PASSED] write
[18:27:58] [PASSED] read
[18:27:58] [PASSED] bookkeep
[18:27:58] ================= [PASSED] test_get_fences =================
[18:27:58] ================== [PASSED] dma-buf-resv ===================
[18:27:58] ============================================================
[18:27:58] Testing complete. Ran 54 tests: passed: 53, skipped: 1
[18:27:58] Elapsed time: 15.670s total, 1.709s configuring, 8.639s building, 5.270s running

+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel



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

* Re: [PATCH v2 2/5] drm/xe/hwmon: Use VRAM temperature sensor count from thermal config on CRI
  2026-09-02 17:55 ` [PATCH v2 2/5] drm/xe/hwmon: Use VRAM temperature sensor count from thermal config on CRI Karthik Poosa
  2026-09-02 18:10   ` sashiko-bot
@ 2026-09-02 18:43   ` Rodrigo Vivi
  1 sibling, 0 replies; 15+ messages in thread
From: Rodrigo Vivi @ 2026-09-02 18:43 UTC (permalink / raw)
  To: Karthik Poosa
  Cc: intel-xe, anshuman.gupta, badal.nilawar, raag.jadav, riana.tauro,
	sk.anirban, mallesh.koujalagi, soham.purkait

On Wed, Sep 02, 2026 at 11:25:04PM +0530, Karthik Poosa wrote:
> Read the number of VRAM temperature sensor channels from the second byte
> of READ_THERMAL_CONFIG on CRI platforms. Use the reported count to avoid
> exposing hwmon attributes for unavailable VRAM temperature sensors, while
> retaining the maximum supported channel count on non-CRI platforms.
> 
> Signed-off-by: Karthik Poosa <karthik.poosa@intel.com>
> ---
> v2:
>  - Address review comments from sashiko-bot@kernel.org.
>  - Address review comments from Badal and Raag.
>  - Update HWMON_CHANNEL_INFO() to supports maximum VRAM channels of CRI.
> 
>  drivers/gpu/drm/xe/xe_hwmon.c     | 102 ++++++++++++++++++++++++++++--
>  drivers/gpu/drm/xe/xe_pcode_api.h |   1 +
>  2 files changed, 96 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_hwmon.c b/drivers/gpu/drm/xe/xe_hwmon.c
> index 9433b47a19c8..a7c04c25e1c2 100644
> --- a/drivers/gpu/drm/xe/xe_hwmon.c
> +++ b/drivers/gpu/drm/xe/xe_hwmon.c
> @@ -39,7 +39,8 @@ enum xe_hwmon_reg_operation {
>  	REG_READ64,
>  };
>  
> -#define MAX_VRAM_CHANNELS      (16)
> +#define XE_MAX_VRAM_CHANNELS	(80)
> +#define BMG_MAX_VRAM_CHANNELS	(16)

Please remove the parenthesis...
Also invert the prefix logic...

BMG_ would be read like started on BMG and continued after that
while XE_ was the original one...

clearly not your intent, but that is how we should read, so
fix it please....

>  
>  enum xe_hwmon_channel {
>  	CHANNEL_CARD,
> @@ -48,7 +49,8 @@ enum xe_hwmon_channel {
>  	CHANNEL_MCTRL,
>  	CHANNEL_PCIE,
>  	CHANNEL_VRAM_N,
> -	CHANNEL_VRAM_N_MAX = CHANNEL_VRAM_N + MAX_VRAM_CHANNELS - 1,
> +	/* Compile-time upper bound; actual channel count is hwmon->temp.vram_count */
> +	CHANNEL_VRAM_N_MAX = CHANNEL_VRAM_N + XE_MAX_VRAM_CHANNELS - 1,
>  	CHANNEL_MAX,
>  };
>  
> @@ -142,12 +144,14 @@ struct xe_hwmon_thermal_info {
>  		/** @data: temperature limits in dwords */
>  		u32 data[DIV_ROUND_UP(TEMP_LIMIT_MAX, sizeof(u32))];
>  	};
> -	/** @count: no of temperature sensors available for the platform */
 +	/** @count: temperature sensors count from READ_THERMAL_CONFIG */
>  	u8 count;
> +	/** @vram_count: number of VRAM temperature sensors available for the platform */
> +	u8 vram_count;
>  	/** @value: signed value from each sensor */
>  	s8 value[U8_MAX];
> -	/** @vram_label: vram label names */
> -	char vram_label[MAX_VRAM_CHANNELS][MAX_LABEL_SIZE];
> +	/** @vram_label: vram label names, dynamically allocated based on vram_count */
> +	char (*vram_label)[MAX_LABEL_SIZE];
>  };
>  
>  /**
> @@ -271,7 +275,7 @@ static struct xe_reg xe_hwmon_get_reg(struct xe_hwmon *hwmon, enum xe_hwmon_reg
>  				return BMG_PACKAGE_TEMPERATURE;
>  			else if (channel == CHANNEL_VRAM)
>  				return BMG_VRAM_TEMPERATURE;
> -			else if (in_range(channel, CHANNEL_VRAM_N, MAX_VRAM_CHANNELS))
> +			else if (in_range(channel, CHANNEL_VRAM_N, hwmon->temp.vram_count))
>  				return BMG_VRAM_TEMPERATURE_N(channel - CHANNEL_VRAM_N);
>  		} else if (xe->info.platform == XE_DG2) {
>  			if (channel == CHANNEL_PKG)
> @@ -777,6 +781,70 @@ static const struct hwmon_channel_info * const hwmon_info[] = {
>  			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
>  			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
>  			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
> +			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL,
>  			   HWMON_T_CRIT | HWMON_T_EMERGENCY | HWMON_T_INPUT | HWMON_T_LABEL),
>  	HWMON_CHANNEL_INFO(power, HWMON_P_MAX | HWMON_P_RATED_MAX | HWMON_P_LABEL | HWMON_P_CRIT |
>  			   HWMON_P_CAP,
> @@ -810,6 +878,17 @@ static int xe_hwmon_pcode_read_thermal_info(struct xe_hwmon *hwmon)
>  	drm_dbg(&hwmon->xe->drm, "thermal config count 0x%x\n", config);
>  	hwmon->temp.count = REG_FIELD_GET(TEMP_MASK, config);
>  
> +	if (hwmon->xe->info.platform >= XE_CRESCENTISLAND) {
> +		hwmon->temp.vram_count = REG_FIELD_GET(VRAM_COUNT_MASK, config);
> +		if (hwmon->temp.vram_count > XE_MAX_VRAM_CHANNELS) {
> +			drm_warn(&hwmon->xe->drm, "VRAM channel count %d exceeds max %d, clamping\n",
> +				 hwmon->temp.vram_count, XE_MAX_VRAM_CHANNELS);
> +			hwmon->temp.vram_count = XE_MAX_VRAM_CHANNELS;
> +		}
> +	} else {
> +		hwmon->temp.vram_count = BMG_MAX_VRAM_CHANNELS;

looking this code here and thinking about the defines, inverting the defines
will also end up with an ugly code anyway...

So let's do this:

define a platform info:

u8 has_fixed_vram_channels:1

set this true only on older platforms...

then

#define MAX_VRAM_CHANNELS	80
#define FIXED_VRAM_CHANNELS	16

	if (hwmon->xe->info.has_fixed_vram_channels)
		hwmon->temp.vram_count = FIXED_VRAM_CHANNELS;
	else
		hwmon->temp.vram_count = REG_FIELD_GET(VRAM_COUNT_MASK, config);

	if (hwmon->temp.vram_count > MAX_VRAM_CHANNELS) {
		drm_warn(&hwmon->xe->drm, "VRAM channel count %d exceeds max %d, clamping\n",
			 hwmon->temp.vram_count, MAX_VRAM_CHANNELS);
		hwmon->temp.vram_count = MAX_VRAM_CHANNELS;
	}

>  	return ret;
>  }
>  
> @@ -1507,7 +1586,7 @@ static int xe_hwmon_read_label(struct device *dev,
>  			*str = "mctrl";
>  		else if (channel == CHANNEL_PCIE)
>  			*str = "pcie";
> -		else if (in_range(channel, CHANNEL_VRAM_N, MAX_VRAM_CHANNELS))
> +		else if (in_range(channel, CHANNEL_VRAM_N, hwmon->temp.vram_count))
>  			*str = hwmon->temp.vram_label[channel - CHANNEL_VRAM_N];
>  		return 0;
>  	case hwmon_power:
> @@ -1636,6 +1715,15 @@ int xe_hwmon_register(struct xe_device *xe)
>  
>  	xe_hwmon_get_preregistration_info(hwmon);
>  
> +	if (hwmon->temp.vram_count) {
> +		hwmon->temp.vram_label = devm_kcalloc(dev, hwmon->temp.vram_count,
> +						      MAX_LABEL_SIZE, GFP_KERNEL);
> +		if (!hwmon->temp.vram_label) {
> +			xe->hwmon = NULL;

ouch, please, while at it refactor this function to the most common xe style:

	if (!hwmon->temp.vram_label) {
		ret = -ENOMEM;
		goto err_null_hwmon;
	}

-	xe->hwmon = NULL;
-	return PTR_ERR(hwmon->hwmon_dev);
+ 	ret = PTR_ERR(hwmon->hwmon_dev);
+ 	goto err_null_hwmon;
	}

return 0;

err_null_hwmon:
	xe->hwmon = NULL;
	return ret;

> +			return -ENOMEM;
> +		}
> +	}
> +
>  	drm_dbg(&xe->drm, "Register xe hwmon interface\n");
>  
>  	/*  hwmon_dev points to device hwmon<i> */
> diff --git a/drivers/gpu/drm/xe/xe_pcode_api.h b/drivers/gpu/drm/xe/xe_pcode_api.h
> index 94575c476e3d..e1079eff72c6 100644
> --- a/drivers/gpu/drm/xe/xe_pcode_api.h
> +++ b/drivers/gpu/drm/xe/xe_pcode_api.h
> @@ -57,6 +57,7 @@
>  #define   PCODE_THERMAL_INFO			0x25
>  #define     READ_THERMAL_LIMITS			0x0
>  #define     READ_THERMAL_CONFIG			0x1
> +#define       VRAM_COUNT_MASK			REG_GENMASK(15, 8)
>  #define     READ_THERMAL_DATA			0x2
>  #define       PCIE_SENSOR_GROUP_ID		0x2
>  #define       PCIE_SENSOR_MASK			REG_GENMASK(31, 16)
> -- 
> 2.25.1
> 

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

* ✗ Xe.CI.BAT: failure for drm/xe/hwmon: Update hwmon thermal mailbox handling (rev2)
  2026-09-02 17:55 [PATCH v2 0/5] drm/xe/hwmon: Update hwmon thermal mailbox handling Karthik Poosa
                   ` (5 preceding siblings ...)
  2026-09-02 18:28 ` ✓ CI.KUnit: success for drm/xe/hwmon: Update hwmon thermal mailbox handling (rev2) Patchwork
@ 2026-09-02 19:22 ` Patchwork
  2026-09-03  9:37 ` ✗ Xe.CI.FULL: " Patchwork
  7 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2026-09-02 19:22 UTC (permalink / raw)
  To: Karthik Poosa; +Cc: intel-xe

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

== Series Details ==

Series: drm/xe/hwmon: Update hwmon thermal mailbox handling (rev2)
URL   : https://patchwork.freedesktop.org/series/172689/
State : failure

== Summary ==

CI Bug Log - changes from xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7_BAT -> xe-pw-172689v2_BAT
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with xe-pw-172689v2_BAT absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in xe-pw-172689v2_BAT, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Participating hosts (12 -> 13)
------------------------------

  Additional (1): bat-bmg-2 

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

  Here are the unknown changes that may have been introduced in xe-pw-172689v2_BAT:

### IGT changes ###

#### Possible regressions ####

  * igt@xe_waitfence@reltime:
    - bat-wcl-2:          [PASS][1] -> [FAIL][2]
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/bat-wcl-2/igt@xe_waitfence@reltime.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/bat-wcl-2/igt@xe_waitfence@reltime.html

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

  Here are the changes found in xe-pw-172689v2_BAT that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@fbdev@write:
    - bat-bmg-2:          NOTRUN -> [SKIP][3] ([Intel XE#2134]) +4 other tests skip
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/bat-bmg-2/igt@fbdev@write.html

  * igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
    - bat-bmg-2:          NOTRUN -> [SKIP][4] ([Intel XE#2233])
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/bat-bmg-2/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html

  * igt@kms_cursor_legacy@basic-flip-after-cursor-legacy:
    - bat-bmg-2:          NOTRUN -> [SKIP][5] ([Intel XE#2489] / [Intel XE#3419]) +13 other tests skip
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/bat-bmg-2/igt@kms_cursor_legacy@basic-flip-after-cursor-legacy.html

  * igt@kms_flip@basic-flip-vs-modeset:
    - bat-bmg-2:          NOTRUN -> [SKIP][6] ([Intel XE#2482]) +3 other tests skip
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/bat-bmg-2/igt@kms_flip@basic-flip-vs-modeset.html

  * igt@kms_frontbuffer_tracking@basic:
    - bat-bmg-2:          NOTRUN -> [SKIP][7] ([Intel XE#2434] / [Intel XE#2548] / [Intel XE#6314])
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/bat-bmg-2/igt@kms_frontbuffer_tracking@basic.html

  * igt@kms_psr@psr-sprite-plane-onoff:
    - bat-bmg-2:          NOTRUN -> [SKIP][8] ([Intel XE#2234] / [Intel XE#2850]) +2 other tests skip
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/bat-bmg-2/igt@kms_psr@psr-sprite-plane-onoff.html

  * igt@xe_exec_multi_queue@priority:
    - bat-bmg-2:          NOTRUN -> [SKIP][9] ([Intel XE#8364]) +13 other tests skip
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/bat-bmg-2/igt@xe_exec_multi_queue@priority.html

  * igt@xe_live_ktest@xe_bo@xe_ccs_migrate_kunit:
    - bat-bmg-2:          NOTRUN -> [SKIP][10] ([Intel XE#2229])
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/bat-bmg-2/igt@xe_live_ktest@xe_bo@xe_ccs_migrate_kunit.html

  * igt@xe_pat@pat-index-xehpc:
    - bat-bmg-2:          NOTRUN -> [SKIP][11] ([Intel XE#1420] / [Intel XE#7590])
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/bat-bmg-2/igt@xe_pat@pat-index-xehpc.html

  * igt@xe_pat@pat-index-xelp:
    - bat-bmg-2:          NOTRUN -> [SKIP][12] ([Intel XE#2245] / [Intel XE#7590])
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/bat-bmg-2/igt@xe_pat@pat-index-xelp.html

  * igt@xe_pat@pat-index-xelpg:
    - bat-bmg-2:          NOTRUN -> [SKIP][13] ([Intel XE#2236] / [Intel XE#7590])
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/bat-bmg-2/igt@xe_pat@pat-index-xelpg.html

  
#### Possible fixes ####

  * igt@xe_waitfence@engine:
    - bat-ptl-2:          [FAIL][14] -> [PASS][15] +1 other test pass
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/bat-ptl-2/igt@xe_waitfence@engine.html
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/bat-ptl-2/igt@xe_waitfence@engine.html

  
  [Intel XE#1420]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1420
  [Intel XE#2134]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2134
  [Intel XE#2229]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2229
  [Intel XE#2233]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2233
  [Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
  [Intel XE#2236]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2236
  [Intel XE#2245]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2245
  [Intel XE#2434]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2434
  [Intel XE#2482]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2482
  [Intel XE#2489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2489
  [Intel XE#2548]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2548
  [Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
  [Intel XE#3419]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3419
  [Intel XE#6314]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6314
  [Intel XE#7590]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7590
  [Intel XE#8364]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8364


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

  * Linux: xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7 -> xe-pw-172689v2

  IGT_9080: 65c1a091179475c3f0cd925799b49f58720bcf43 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7: 1ddb465787c65331f609fbe02998ce1643b041c7
  xe-pw-172689v2: 172689v2

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/index.html

[-- Attachment #2: Type: text/html, Size: 7144 bytes --]

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

* Re: [PATCH v2 5/5] drm/xe/hwmon: Disable memory controller and PCIe temperatures on CRI
  2026-09-02 18:07   ` sashiko-bot
@ 2026-09-03  6:11     ` Poosa, Karthik
  0 siblings, 0 replies; 15+ messages in thread
From: Poosa, Karthik @ 2026-09-03  6:11 UTC (permalink / raw)
  To: sashiko-reviews; +Cc: intel-xe


On 02-09-2026 23:37, sashiko-bot@kernel.org wrote:
> Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
> - [Medium] The patch uses an enum ordering check that inadvertently disables memory controller and PCIe temperatures on Nova Lake P, splitting the Novalake platform family.
> --
>
> commit 91ec5832293666790affd1f3a6202739f54f4e49
> Author: Karthik Poosa <karthik.poosa@intel.com>
>
>      drm/xe/hwmon: Disable memory controller and PCIe temperatures on CRI
>
>      Temporarily disable memory controller and PCIe temperature reporting on
>      CRI platforms. The definitions and interpretation of these temperature
>      sources are not yet sufficiently clear, which may result in inaccurate
>      reporting.
>
>> diff --git a/drivers/gpu/drm/xe/xe_hwmon.c b/drivers/gpu/drm/xe/xe_hwmon.c
>> index c2b8d4c79783a..5b2cef292ffcc 100644
>> --- a/drivers/gpu/drm/xe/xe_hwmon.c
>> +++ b/drivers/gpu/drm/xe/xe_hwmon.c
>> @@ -1061,8 +1061,14 @@ static bool is_temp_available(struct xe_hwmon *hwmon, int channel)
>>   
>>   		return true;
>>   	case CHANNEL_MCTRL:
>> +		if (hwmon->xe->info.platform >= XE_CRESCENTISLAND)
>> +			return false;
>> +
>>   		return hwmon->temp.count && !get_mc_temp(hwmon, NULL);
>>   	case CHANNEL_PCIE:
>> +		if (hwmon->xe->info.platform >= XE_CRESCENTISLAND)
>> +			return false;
>> +
> [Severity: Medium]
> Does this check inadvertently affect Nova Lake P?
>
> Looking at the enum definition in xe_platform_types.h, XE_NOVALAKE_P is
> defined after XE_CRESCENTISLAND, while XE_NOVALAKE_S is defined before it:
>
> 	XE_NOVALAKE_S,
> 	XE_CRESCENTISLAND,
> 	XE_NOVALAKE_P,
>
> Using the >= operator will disable memory controller and PCIe temperatures on
> Nova Lake P, while they remain enabled for Nova Lake S. This seems to
> contradict the commit message which states this disables temperatures on CRI
> platforms.
>
> Should these checks use == XE_CRESCENTISLAND instead to avoid splitting the
> Novalake family?

HWMON is only supported on discrete GPUs. You can see here,


               int xe_hwmon_register(struct xe_device *xe)
               {
                         struct device *dev = xe->drm.dev;
                         struct xe_hwmon *hwmon;
                         int ret;

                         /* hwmon is available only for dGfx */
                         if (!IS_DGFX(xe))
                         return 0;

                         ....

                 }

So for both Novalake platforms the function itself wont be called.

>
>>   		return hwmon->temp.count && !get_pcie_temp(hwmon, NULL);
>>   	default:
>>   		return false;

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

* ✗ Xe.CI.FULL: failure for drm/xe/hwmon: Update hwmon thermal mailbox handling (rev2)
  2026-09-02 17:55 [PATCH v2 0/5] drm/xe/hwmon: Update hwmon thermal mailbox handling Karthik Poosa
                   ` (6 preceding siblings ...)
  2026-09-02 19:22 ` ✗ Xe.CI.BAT: failure " Patchwork
@ 2026-09-03  9:37 ` Patchwork
  7 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2026-09-03  9:37 UTC (permalink / raw)
  To: Poosa, Karthik; +Cc: intel-xe

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

== Series Details ==

Series: drm/xe/hwmon: Update hwmon thermal mailbox handling (rev2)
URL   : https://patchwork.freedesktop.org/series/172689/
State : failure

== Summary ==

CI Bug Log - changes from xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7_FULL -> xe-pw-172689v2_FULL
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with xe-pw-172689v2_FULL absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in xe-pw-172689v2_FULL, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Participating hosts (2 -> 2)
------------------------------

  No changes in participating hosts

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

  Here are the unknown changes that may have been introduced in xe-pw-172689v2_FULL:

### IGT changes ###

#### Possible regressions ####

  * igt@kms_atomic@crtc-invalid-params:
    - shard-lnl:          [PASS][1] -> [SKIP][2] +46 other tests skip
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-4/igt@kms_atomic@crtc-invalid-params.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_atomic@crtc-invalid-params.html

  * igt@xe_ccs@suspend-resume@tile4-compressed-compfmt0-system-vram01:
    - shard-bmg:          [PASS][3] -> [INCOMPLETE][4]
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-bmg-9/igt@xe_ccs@suspend-resume@tile4-compressed-compfmt0-system-vram01.html
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-4/igt@xe_ccs@suspend-resume@tile4-compressed-compfmt0-system-vram01.html

  
#### Warnings ####

  * igt@kms_atomic_transition@plane-all-modeset-transition:
    - shard-lnl:          [SKIP][5] ([Intel XE#3279]) -> [SKIP][6]
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-1/igt@kms_atomic_transition@plane-all-modeset-transition.html
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_atomic_transition@plane-all-modeset-transition.html

  * igt@kms_big_fb@x-tiled-8bpp-rotate-270:
    - shard-lnl:          [SKIP][7] ([Intel XE#1407]) -> [SKIP][8] +8 other tests skip
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-3/igt@kms_big_fb@x-tiled-8bpp-rotate-270.html
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_big_fb@x-tiled-8bpp-rotate-270.html

  * igt@kms_big_fb@yf-tiled-64bpp-rotate-180:
    - shard-lnl:          [SKIP][9] ([Intel XE#1124]) -> [SKIP][10] +9 other tests skip
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-1/igt@kms_big_fb@yf-tiled-64bpp-rotate-180.html
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_big_fb@yf-tiled-64bpp-rotate-180.html

  * igt@kms_bw@connected-linear-tiling-2-displays-target-2160x1440p:
    - shard-lnl:          [SKIP][11] ([Intel XE#7679]) -> [SKIP][12]
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-6/igt@kms_bw@connected-linear-tiling-2-displays-target-2160x1440p.html
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_bw@connected-linear-tiling-2-displays-target-2160x1440p.html

  * igt@kms_bw@linear-tiling-2-displays-target-2160x1440p:
    - shard-lnl:          [SKIP][13] ([Intel XE#367]) -> [SKIP][14]
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-1/igt@kms_bw@linear-tiling-2-displays-target-2160x1440p.html
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_bw@linear-tiling-2-displays-target-2160x1440p.html

  * igt@kms_bw@linear-tiling-4-displays-target-2160x1440p:
    - shard-lnl:          [SKIP][15] ([Intel XE#8365]) -> [SKIP][16]
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-6/igt@kms_bw@linear-tiling-4-displays-target-2160x1440p.html
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_bw@linear-tiling-4-displays-target-2160x1440p.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-mc-ccs:
    - shard-lnl:          [SKIP][17] ([Intel XE#2887]) -> [SKIP][18] +15 other tests skip
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-6/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-mc-ccs.html
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-mc-ccs.html

  * igt@kms_cdclk@mode-transition:
    - shard-lnl:          [SKIP][19] ([Intel XE#4417] / [Intel XE#5447]) -> [SKIP][20]
   [19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-1/igt@kms_cdclk@mode-transition.html
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_cdclk@mode-transition.html

  * igt@kms_cdclk@mode-transition-all-outputs:
    - shard-lnl:          [SKIP][21] ([Intel XE#7008]) -> [SKIP][22]
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-3/igt@kms_cdclk@mode-transition-all-outputs.html
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_cdclk@mode-transition-all-outputs.html

  * igt@kms_content_protection@dp-mst-type-1-suspend-resume:
    - shard-lnl:          [SKIP][23] ([Intel XE#6974]) -> [SKIP][24]
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-3/igt@kms_content_protection@dp-mst-type-1-suspend-resume.html
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_content_protection@dp-mst-type-1-suspend-resume.html

  * igt@kms_content_protection@lic-type-0:
    - shard-lnl:          [SKIP][25] ([Intel XE#7642]) -> [SKIP][26] +2 other tests skip
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-4/igt@kms_content_protection@lic-type-0.html
   [26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_content_protection@lic-type-0.html

  * igt@kms_cursor_crc@cursor-offscreen-512x512:
    - shard-lnl:          [SKIP][27] ([Intel XE#2321] / [Intel XE#7355]) -> [SKIP][28] +2 other tests skip
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-1/igt@kms_cursor_crc@cursor-offscreen-512x512.html
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_cursor_crc@cursor-offscreen-512x512.html

  * igt@kms_cursor_crc@cursor-offscreen-64x21:
    - shard-lnl:          [SKIP][29] ([Intel XE#1424]) -> [SKIP][30] +5 other tests skip
   [29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-3/igt@kms_cursor_crc@cursor-offscreen-64x21.html
   [30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_cursor_crc@cursor-offscreen-64x21.html

  * igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic:
    - shard-lnl:          [SKIP][31] ([Intel XE#309] / [Intel XE#7343]) -> [SKIP][32] +5 other tests skip
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-3/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic.html
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic.html

  * igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size:
    - shard-lnl:          [SKIP][33] ([Intel XE#323] / [Intel XE#6035]) -> [SKIP][34] +1 other test skip
   [33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-3/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html
   [34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html

  * igt@kms_dsc@dsc-with-bpc:
    - shard-lnl:          [SKIP][35] ([Intel XE#8265]) -> [SKIP][36] +4 other tests skip
   [35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-1/igt@kms_dsc@dsc-with-bpc.html
   [36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_dsc@dsc-with-bpc.html

  * igt@kms_hdr@invalid-metadata-sizes:
    - shard-lnl:          [SKIP][37] ([Intel XE#1503]) -> [SKIP][38] +2 other tests skip
   [37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-6/igt@kms_hdr@invalid-metadata-sizes.html
   [38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_hdr@invalid-metadata-sizes.html

  * igt@kms_plane_lowres@tiling-none:
    - shard-lnl:          [SKIP][39] ([Intel XE#599] / [Intel XE#7382]) -> [SKIP][40]
   [39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-4/igt@kms_plane_lowres@tiling-none.html
   [40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_plane_lowres@tiling-none.html

  * igt@kms_plane_multiple@2x-tiling-none:
    - shard-lnl:          [SKIP][41] ([Intel XE#4596] / [Intel XE#5854]) -> [SKIP][42] +1 other test skip
   [41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-6/igt@kms_plane_multiple@2x-tiling-none.html
   [42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_plane_multiple@2x-tiling-none.html

  * igt@kms_vrr@negative-basic:
    - shard-lnl:          [SKIP][43] ([Intel XE#1499]) -> [SKIP][44]
   [43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-3/igt@kms_vrr@negative-basic.html
   [44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_vrr@negative-basic.html

  
New tests
---------

  New tests have been introduced between xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7_FULL and xe-pw-172689v2_FULL:

### New IGT tests (1) ###

  * igt@kms_invalid_mode:
    - Statuses :
    - Exec time: [None] s

  

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

  Here are the changes found in xe-pw-172689v2_FULL that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@fbdev@eof:
    - shard-lnl:          [PASS][45] -> [SKIP][46] ([Intel XE#2134])
   [45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-4/igt@fbdev@eof.html
   [46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@fbdev@eof.html

  * igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-0-hflip:
    - shard-lnl:          NOTRUN -> [SKIP][47] ([Intel XE#7059] / [Intel XE#7085])
   [47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-3/igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-0-hflip.html

  * igt@kms_big_fb@x-tiled-16bpp-rotate-90:
    - shard-bmg:          NOTRUN -> [SKIP][48] ([Intel XE#2327]) +1 other test skip
   [48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-10/igt@kms_big_fb@x-tiled-16bpp-rotate-90.html

  * igt@kms_big_fb@x-tiled-32bpp-rotate-270:
    - shard-lnl:          NOTRUN -> [SKIP][49] ([Intel XE#1407])
   [49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-3/igt@kms_big_fb@x-tiled-32bpp-rotate-270.html

  * igt@kms_big_fb@y-tiled-64bpp-rotate-0:
    - shard-bmg:          NOTRUN -> [SKIP][50] ([Intel XE#1124]) +1 other test skip
   [50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-10/igt@kms_big_fb@y-tiled-64bpp-rotate-0.html

  * igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow:
    - shard-bmg:          NOTRUN -> [SKIP][51] ([Intel XE#607] / [Intel XE#7361])
   [51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-10/igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow.html

  * igt@kms_bw@linear-tiling-1-displays-target-2160x1440p:
    - shard-bmg:          NOTRUN -> [SKIP][52] ([Intel XE#367])
   [52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-10/igt@kms_bw@linear-tiling-1-displays-target-2160x1440p.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs:
    - shard-bmg:          NOTRUN -> [SKIP][53] ([Intel XE#2887]) +3 other tests skip
   [53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-10/igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs.html

  * igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc:
    - shard-bmg:          NOTRUN -> [SKIP][54] ([Intel XE#3432])
   [54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-10/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc.html

  * igt@kms_chamelium_color_pipeline@plane-ctm3x4:
    - shard-bmg:          NOTRUN -> [SKIP][55] ([Intel XE#7358])
   [55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-10/igt@kms_chamelium_color_pipeline@plane-ctm3x4.html

  * igt@kms_chamelium_edid@hdmi-edid-change-during-suspend:
    - shard-bmg:          NOTRUN -> [SKIP][56] ([Intel XE#2252]) +1 other test skip
   [56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-10/igt@kms_chamelium_edid@hdmi-edid-change-during-suspend.html

  * igt@kms_chamelium_hpd@hdmi-hpd-enable-disable-mode:
    - shard-lnl:          NOTRUN -> [SKIP][57] ([Intel XE#373])
   [57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-3/igt@kms_chamelium_hpd@hdmi-hpd-enable-disable-mode.html

  * igt@kms_color@ctm-green-to-red:
    - shard-lnl:          [PASS][58] -> [SKIP][59] ([Intel XE#3297])
   [58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-4/igt@kms_color@ctm-green-to-red.html
   [59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_color@ctm-green-to-red.html

  * igt@kms_color_pipeline@plane-ctm3x4:
    - shard-lnl:          [PASS][60] -> [SKIP][61] ([Intel XE#7006]) +2 other tests skip
   [60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-3/igt@kms_color_pipeline@plane-ctm3x4.html
   [61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_color_pipeline@plane-ctm3x4.html

  * igt@kms_content_protection@dp-mst-type-1:
    - shard-bmg:          NOTRUN -> [SKIP][62] ([Intel XE#2390] / [Intel XE#6974])
   [62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-10/igt@kms_content_protection@dp-mst-type-1.html

  * igt@kms_cursor_crc@cursor-onscreen-512x170:
    - shard-bmg:          NOTRUN -> [SKIP][63] ([Intel XE#2321] / [Intel XE#7355])
   [63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-10/igt@kms_cursor_crc@cursor-onscreen-512x170.html

  * igt@kms_cursor_crc@cursor-sliding-max-size:
    - shard-lnl:          NOTRUN -> [SKIP][64] ([Intel XE#1424]) +1 other test skip
   [64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-3/igt@kms_cursor_crc@cursor-sliding-max-size.html

  * igt@kms_dsc@dsc-fractional-bpp-with-bpc-ultrajoiner:
    - shard-lnl:          NOTRUN -> [SKIP][65] ([Intel XE#8265])
   [65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-3/igt@kms_dsc@dsc-fractional-bpp-with-bpc-ultrajoiner.html

  * igt@kms_dsc@dsc-with-bpc-formats-bigjoiner:
    - shard-bmg:          NOTRUN -> [SKIP][66] ([Intel XE#8265])
   [66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-10/igt@kms_dsc@dsc-with-bpc-formats-bigjoiner.html

  * igt@kms_fbcon_fbt@psr:
    - shard-lnl:          [PASS][67] -> [SKIP][68] ([Intel XE#8680])
   [67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-6/igt@kms_fbcon_fbt@psr.html
   [68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_fbcon_fbt@psr.html

  * igt@kms_feature_discovery@display-1x:
    - shard-lnl:          [PASS][69] -> [SKIP][70] ([Intel XE#702])
   [69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-1/igt@kms_feature_discovery@display-1x.html
   [70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_feature_discovery@display-1x.html

  * igt@kms_feature_discovery@hdr:
    - shard-lnl:          NOTRUN -> [SKIP][71] ([Intel XE#8586])
   [71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-3/igt@kms_feature_discovery@hdr.html

  * igt@kms_flip@2x-plain-flip-interruptible:
    - shard-lnl:          NOTRUN -> [SKIP][72] ([Intel XE#1421]) +2 other tests skip
   [72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-3/igt@kms_flip@2x-plain-flip-interruptible.html

  * igt@kms_flip@blocking-absolute-wf_vblank:
    - shard-lnl:          [PASS][73] -> [SKIP][74] ([Intel XE#2482]) +8 other tests skip
   [73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-6/igt@kms_flip@blocking-absolute-wf_vblank.html
   [74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_flip@blocking-absolute-wf_vblank.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling:
    - shard-bmg:          NOTRUN -> [SKIP][75] ([Intel XE#7178] / [Intel XE#7351])
   [75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-10/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-upscaling:
    - shard-lnl:          [PASS][76] -> [SKIP][77] ([Intel XE#1745]) +1 other test skip
   [76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-4/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-upscaling.html
   [77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-upscaling.html

  * igt@kms_flip_scaled_crc@flip-nv12-linear-to-nv12-linear-reflect-x:
    - shard-bmg:          NOTRUN -> [SKIP][78] ([Intel XE#7179])
   [78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-10/igt@kms_flip_scaled_crc@flip-nv12-linear-to-nv12-linear-reflect-x.html

  * igt@kms_frontbuffer_tracking@drrs-1p-primscrn-shrfb-plflip-blt:
    - shard-lnl:          NOTRUN -> [SKIP][79] ([Intel XE#6312] / [Intel XE#651])
   [79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-3/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-shrfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-wc:
    - shard-bmg:          NOTRUN -> [SKIP][80] ([Intel XE#2311]) +14 other tests skip
   [80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-10/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-blt:
    - shard-bmg:          NOTRUN -> [SKIP][81] ([Intel XE#4141]) +4 other tests skip
   [81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-10/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-render:
    - shard-lnl:          NOTRUN -> [SKIP][82] ([Intel XE#656] / [Intel XE#7905]) +3 other tests skip
   [82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-3/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-abgr161616f-draw-render:
    - shard-bmg:          NOTRUN -> [SKIP][83] ([Intel XE#7061] / [Intel XE#7356])
   [83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-10/igt@kms_frontbuffer_tracking@fbcdrrs-abgr161616f-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcdrrshdr-1p-primscrn-indfb-plflip-blt:
    - shard-lnl:          NOTRUN -> [SKIP][84] ([Intel XE#6312]) +2 other tests skip
   [84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-3/igt@kms_frontbuffer_tracking@fbcdrrshdr-1p-primscrn-indfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-mmap-wc:
    - shard-lnl:          [PASS][85] -> [SKIP][86] ([Intel XE#7779]) +4 other tests skip
   [85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-1/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-mmap-wc.html
   [86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-pri-shrfb-draw-mmap-wc:
    - shard-lnl:          NOTRUN -> [SKIP][87] ([Intel XE#7905]) +8 other tests skip
   [87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-3/igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-pri-shrfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-render:
    - shard-lnl:          [PASS][88] -> [SKIP][89] ([Intel XE#2548] / [Intel XE#7779]) +22 other tests skip
   [88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-3/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-render.html
   [89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-mmap-wc:
    - shard-bmg:          NOTRUN -> [SKIP][90] ([Intel XE#2313]) +14 other tests skip
   [90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-10/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-indfb-plflip-blt:
    - shard-lnl:          NOTRUN -> [SKIP][91] ([Intel XE#7865]) +2 other tests skip
   [91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-3/igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-indfb-plflip-blt.html

  * igt@kms_invalid_mode@uint-max-clock:
    - shard-lnl:          [PASS][92] -> [SKIP][93] ([Intel XE#2568]) +2 other tests skip
   [92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-3/igt@kms_invalid_mode@uint-max-clock.html
   [93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_invalid_mode@uint-max-clock.html

  * igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier-source-clamping:
    - shard-bmg:          NOTRUN -> [SKIP][94] ([Intel XE#7283])
   [94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-10/igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier-source-clamping.html

  * igt@kms_plane@pixel-format-x-tiled-modifier-source-clamping:
    - shard-lnl:          [PASS][95] -> [SKIP][96] ([Intel XE#7250])
   [95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-6/igt@kms_plane@pixel-format-x-tiled-modifier-source-clamping.html
   [96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_plane@pixel-format-x-tiled-modifier-source-clamping.html

  * igt@kms_plane_scaling@intel-max-src-size:
    - shard-lnl:          NOTRUN -> [SKIP][97] ([Intel XE#3307])
   [97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-3/igt@kms_plane_scaling@intel-max-src-size.html

  * igt@kms_plane_scaling@invalid-num-scalers:
    - shard-lnl:          [PASS][98] -> [SKIP][99] ([Intel XE#3307] / [Intel XE#7687])
   [98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-4/igt@kms_plane_scaling@invalid-num-scalers.html
   [99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_plane_scaling@invalid-num-scalers.html

  * igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-b:
    - shard-lnl:          [PASS][100] -> [SKIP][101] ([Intel XE#2763] / [Intel XE#6886]) +5 other tests skip
   [100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-3/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-b.html
   [101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-b.html

  * igt@kms_plane_scaling@planes-upscale-factor-0-25:
    - shard-lnl:          [PASS][102] -> [SKIP][103] ([Intel XE#2763] / [Intel XE#6886] / [Intel XE#7687]) +5 other tests skip
   [102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-1/igt@kms_plane_scaling@planes-upscale-factor-0-25.html
   [103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_plane_scaling@planes-upscale-factor-0-25.html

  * igt@kms_pm_backlight@basic-brightness:
    - shard-bmg:          NOTRUN -> [SKIP][104] ([Intel XE#7376] / [Intel XE#7760] / [Intel XE#870])
   [104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-10/igt@kms_pm_backlight@basic-brightness.html

  * igt@kms_pm_backlight@fade:
    - shard-lnl:          [PASS][105] -> [SKIP][106] ([Intel XE#870])
   [105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-6/igt@kms_pm_backlight@fade.html
   [106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_pm_backlight@fade.html

  * igt@kms_pm_dc@dc5-pageflip-negative:
    - shard-bmg:          NOTRUN -> [SKIP][107] ([Intel XE#6927] / [Intel XE#8854])
   [107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-10/igt@kms_pm_dc@dc5-pageflip-negative.html

  * igt@kms_pm_dc@dc6-psr:
    - shard-lnl:          [PASS][108] -> [SKIP][109] ([Intel XE#7794]) +1 other test skip
   [108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-3/igt@kms_pm_dc@dc6-psr.html
   [109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_pm_dc@dc6-psr.html

  * igt@kms_pm_rpm@universal-planes-dpms:
    - shard-lnl:          [PASS][110] -> [SKIP][111] ([Intel XE#4886])
   [110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-4/igt@kms_pm_rpm@universal-planes-dpms.html
   [111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_pm_rpm@universal-planes-dpms.html

  * igt@kms_psr2_sf@pr-cursor-plane-move-continuous-sf:
    - shard-lnl:          NOTRUN -> [SKIP][112] ([Intel XE#2893] / [Intel XE#7304])
   [112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-3/igt@kms_psr2_sf@pr-cursor-plane-move-continuous-sf.html

  * igt@kms_psr2_sf@pr-overlay-plane-update-sf-dmg-area:
    - shard-bmg:          NOTRUN -> [SKIP][113] ([Intel XE#1489]) +1 other test skip
   [113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-10/igt@kms_psr2_sf@pr-overlay-plane-update-sf-dmg-area.html

  * igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area:
    - shard-lnl:          [PASS][114] -> [SKIP][115] ([Intel XE#1489])
   [114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-4/igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area.html
   [115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area.html

  * igt@kms_psr@fbc-pr-sprite-blt:
    - shard-lnl:          NOTRUN -> [SKIP][116] ([Intel XE#1406])
   [116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-3/igt@kms_psr@fbc-pr-sprite-blt.html

  * igt@kms_psr@fbc-psr-sprite-render:
    - shard-lnl:          [PASS][117] -> [SKIP][118] ([Intel XE#2850] / [Intel XE#929]) +6 other tests skip
   [117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-6/igt@kms_psr@fbc-psr-sprite-render.html
   [118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_psr@fbc-psr-sprite-render.html

  * igt@kms_psr@psr2-sprite-blt:
    - shard-bmg:          NOTRUN -> [SKIP][119] ([Intel XE#2234] / [Intel XE#2850]) +2 other tests skip
   [119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-10/igt@kms_psr@psr2-sprite-blt.html

  * igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
    - shard-lnl:          [PASS][120] -> [SKIP][121] ([Intel XE#7795]) +1 other test skip
   [120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-4/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
   [121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html

  * igt@kms_rotation_crc@primary-y-tiled-reflect-x-0:
    - shard-lnl:          NOTRUN -> [SKIP][122] ([Intel XE#1127] / [Intel XE#5813])
   [122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-3/igt@kms_rotation_crc@primary-y-tiled-reflect-x-0.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180:
    - shard-bmg:          NOTRUN -> [SKIP][123] ([Intel XE#2330] / [Intel XE#5813])
   [123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-10/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html

  * igt@kms_sharpness_filter@filter-basic:
    - shard-bmg:          NOTRUN -> [SKIP][124] ([Intel XE#6503])
   [124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-10/igt@kms_sharpness_filter@filter-basic.html

  * igt@kms_vrr@flipline:
    - shard-lnl:          [PASS][125] -> [FAIL][126] ([Intel XE#4227] / [Intel XE#7397]) +1 other test fail
   [125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-7/igt@kms_vrr@flipline.html
   [126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-2/igt@kms_vrr@flipline.html

  * igt@xe_ccs@suspend-resume:
    - shard-bmg:          [PASS][127] -> [INCOMPLETE][128] ([Intel XE#8602])
   [127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-bmg-9/igt@xe_ccs@suspend-resume.html
   [128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-4/igt@xe_ccs@suspend-resume.html

  * igt@xe_evict@evict-small-multi-queue-priority:
    - shard-bmg:          NOTRUN -> [SKIP][129] ([Intel XE#8370])
   [129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-10/igt@xe_evict@evict-small-multi-queue-priority.html

  * igt@xe_evict_ccs@evict-overcommit-parallel-nofree-reopen:
    - shard-lnl:          NOTRUN -> [SKIP][130] ([Intel XE#6540] / [Intel XE#688])
   [130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-3/igt@xe_evict_ccs@evict-overcommit-parallel-nofree-reopen.html

  * igt@xe_exec_balancer@no-exec-cm-parallel-userptr:
    - shard-lnl:          NOTRUN -> [SKIP][131] ([Intel XE#7482]) +1 other test skip
   [131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-3/igt@xe_exec_balancer@no-exec-cm-parallel-userptr.html

  * igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-userptr-invalidate:
    - shard-bmg:          NOTRUN -> [SKIP][132] ([Intel XE#2322] / [Intel XE#7372])
   [132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-10/igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-userptr-invalidate.html

  * igt@xe_exec_fault_mode@many-multi-queue-userptr-invalidate:
    - shard-bmg:          NOTRUN -> [SKIP][133] ([Intel XE#8374]) +3 other tests skip
   [133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-10/igt@xe_exec_fault_mode@many-multi-queue-userptr-invalidate.html

  * igt@xe_exec_multi_queue@few-execs-dyn-priority-smem:
    - shard-bmg:          NOTRUN -> [SKIP][134] ([Intel XE#8364]) +4 other tests skip
   [134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-10/igt@xe_exec_multi_queue@few-execs-dyn-priority-smem.html

  * igt@xe_exec_multi_queue@few-execs-preempt-mode-close-fd:
    - shard-lnl:          NOTRUN -> [SKIP][135] ([Intel XE#8364]) +2 other tests skip
   [135]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-3/igt@xe_exec_multi_queue@few-execs-preempt-mode-close-fd.html

  * igt@xe_exec_reset@multi-queue-cat-error-on-secondary:
    - shard-lnl:          NOTRUN -> [SKIP][136] ([Intel XE#8369])
   [136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-3/igt@xe_exec_reset@multi-queue-cat-error-on-secondary.html

  * igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-comp-single-vma:
    - shard-lnl:          NOTRUN -> [SKIP][137] ([Intel XE#6196])
   [137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-3/igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-comp-single-vma.html

  * igt@xe_exec_threads@threads-multi-queue-cm-userptr-invalidate:
    - shard-bmg:          NOTRUN -> [SKIP][138] ([Intel XE#8378]) +1 other test skip
   [138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-10/igt@xe_exec_threads@threads-multi-queue-cm-userptr-invalidate.html

  * igt@xe_exec_threads@threads-multi-queue-userptr-rebind-err:
    - shard-lnl:          NOTRUN -> [SKIP][139] ([Intel XE#8378])
   [139]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-3/igt@xe_exec_threads@threads-multi-queue-userptr-rebind-err.html

  * igt@xe_multigpu_svm@mgpu-migration-basic:
    - shard-bmg:          NOTRUN -> [SKIP][140] ([Intel XE#6964])
   [140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-10/igt@xe_multigpu_svm@mgpu-migration-basic.html

  * igt@xe_page_reclaim@pde-vs-pd:
    - shard-bmg:          NOTRUN -> [SKIP][141] ([Intel XE#7793])
   [141]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-10/igt@xe_page_reclaim@pde-vs-pd.html

  * igt@xe_pm_residency@cpg-basic:
    - shard-lnl:          NOTRUN -> [SKIP][142] ([Intel XE#584] / [Intel XE#7369])
   [142]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-3/igt@xe_pm_residency@cpg-basic.html

  * igt@xe_pxp@regular-src-to-pxp-dest-rendercopy:
    - shard-bmg:          NOTRUN -> [SKIP][143] ([Intel XE#4733] / [Intel XE#7417]) +1 other test skip
   [143]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-10/igt@xe_pxp@regular-src-to-pxp-dest-rendercopy.html

  
#### Possible fixes ####

  * igt@kms_fbcon_fbt@psr-suspend:
    - shard-lnl:          [FAIL][144] ([Intel XE#7949]) -> [PASS][145]
   [144]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-6/igt@kms_fbcon_fbt@psr-suspend.html
   [145]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-8/igt@kms_fbcon_fbt@psr-suspend.html

  * igt@kms_flip@2x-flip-vs-wf_vblank-interruptible@bc-dp2-hdmi-a3:
    - shard-bmg:          [FAIL][146] ([Intel XE#3098]) -> [PASS][147] +1 other test pass
   [146]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-bmg-1/igt@kms_flip@2x-flip-vs-wf_vblank-interruptible@bc-dp2-hdmi-a3.html
   [147]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-5/igt@kms_flip@2x-flip-vs-wf_vblank-interruptible@bc-dp2-hdmi-a3.html

  * igt@kms_flip@flip-vs-expired-vblank@a-edp1:
    - shard-lnl:          [FAIL][148] ([Intel XE#301]) -> [PASS][149] +2 other tests pass
   [148]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-6/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
   [149]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-8/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html

  * igt@xe_exec_reset@gt-stress-reset-mixed-engine-usage:
    - shard-bmg:          [INCOMPLETE][150] ([Intel XE#9041]) -> [PASS][151]
   [150]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-bmg-1/igt@xe_exec_reset@gt-stress-reset-mixed-engine-usage.html
   [151]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-5/igt@xe_exec_reset@gt-stress-reset-mixed-engine-usage.html

  * igt@xe_module_load@unload:
    - shard-bmg:          [ABORT][152] ([Intel XE#8007]) -> [PASS][153]
   [152]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-bmg-4/igt@xe_module_load@unload.html
   [153]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-10/igt@xe_module_load@unload.html

  
#### Warnings ####

  * igt@kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling:
    - shard-lnl:          [SKIP][154] ([Intel XE#1397] / [Intel XE#1745] / [Intel XE#7385]) -> [SKIP][155] ([Intel XE#1745])
   [154]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-6/igt@kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling.html
   [155]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling.html

  * igt@kms_frontbuffer_tracking@drrs-1p-primscrn-pri-shrfb-draw-blt:
    - shard-lnl:          [SKIP][156] ([Intel XE#6312] / [Intel XE#651]) -> [SKIP][157] ([Intel XE#2548] / [Intel XE#7779]) +11 other tests skip
   [156]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-3/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-pri-shrfb-draw-blt.html
   [157]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-pri-shrfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbc-abgr161616f-draw-mmap-wc:
    - shard-lnl:          [SKIP][158] ([Intel XE#7061] / [Intel XE#7356]) -> [SKIP][159] ([Intel XE#7779]) +1 other test skip
   [158]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-4/igt@kms_frontbuffer_tracking@fbc-abgr161616f-draw-mmap-wc.html
   [159]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_frontbuffer_tracking@fbc-abgr161616f-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcdrrshdr-2p-scndscrn-cur-indfb-draw-render:
    - shard-lnl:          [SKIP][160] ([Intel XE#7905]) -> [SKIP][161] ([Intel XE#7779]) +38 other tests skip
   [160]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-1/igt@kms_frontbuffer_tracking@fbcdrrshdr-2p-scndscrn-cur-indfb-draw-render.html
   [161]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_frontbuffer_tracking@fbcdrrshdr-2p-scndscrn-cur-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcdrrshdr-tiling-linear:
    - shard-lnl:          [SKIP][162] ([Intel XE#6312]) -> [SKIP][163] ([Intel XE#7779]) +19 other tests skip
   [162]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-3/igt@kms_frontbuffer_tracking@fbcdrrshdr-tiling-linear.html
   [163]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_frontbuffer_tracking@fbcdrrshdr-tiling-linear.html

  * igt@kms_frontbuffer_tracking@fbchdr-tiling-y:
    - shard-lnl:          [SKIP][164] ([Intel XE#7399]) -> [SKIP][165] ([Intel XE#7779])
   [164]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-3/igt@kms_frontbuffer_tracking@fbchdr-tiling-y.html
   [165]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_frontbuffer_tracking@fbchdr-tiling-y.html

  * igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-indfb-msflip-blt:
    - shard-lnl:          [SKIP][166] ([Intel XE#7865]) -> [SKIP][167] ([Intel XE#7779]) +27 other tests skip
   [166]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-3/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-indfb-msflip-blt.html
   [167]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-indfb-msflip-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsrhdr-argb161616f-draw-render:
    - shard-lnl:          [SKIP][168] ([Intel XE#7061]) -> [SKIP][169] ([Intel XE#7779]) +9 other tests skip
   [168]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-3/igt@kms_frontbuffer_tracking@fbcpsrhdr-argb161616f-draw-render.html
   [169]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_frontbuffer_tracking@fbcpsrhdr-argb161616f-draw-render.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-render:
    - shard-lnl:          [SKIP][170] ([Intel XE#656] / [Intel XE#7905]) -> [SKIP][171] ([Intel XE#2548] / [Intel XE#7779]) +34 other tests skip
   [170]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-3/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-render.html
   [171]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-render.html

  * igt@kms_hdr@brightness-with-hdr:
    - shard-bmg:          [SKIP][172] ([Intel XE#3374] / [Intel XE#3544]) -> [SKIP][173] ([Intel XE#3544])
   [172]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-bmg-8/igt@kms_hdr@brightness-with-hdr.html
   [173]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-5/igt@kms_hdr@brightness-with-hdr.html

  * igt@kms_plane_scaling@2x-scaler-multi-pipe:
    - shard-lnl:          [SKIP][174] ([Intel XE#309] / [Intel XE#7343]) -> [SKIP][175] ([Intel XE#7343] / [Intel XE#7687])
   [174]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-4/igt@kms_plane_scaling@2x-scaler-multi-pipe.html
   [175]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_plane_scaling@2x-scaler-multi-pipe.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-5-with-pixel-format@pipe-c:
    - shard-lnl:          [SKIP][176] ([Intel XE#2763] / [Intel XE#6886]) -> [SKIP][177] ([Intel XE#2763] / [Intel XE#6886] / [Intel XE#7687]) +3 other tests skip
   [176]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-6/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-pixel-format@pipe-c.html
   [177]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-pixel-format@pipe-c.html

  * igt@kms_pm_dc@dc5-psr-suspend-resume:
    - shard-lnl:          [FAIL][178] ([Intel XE#8399]) -> [SKIP][179] ([Intel XE#8854])
   [178]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-4/igt@kms_pm_dc@dc5-psr-suspend-resume.html
   [179]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_pm_dc@dc5-psr-suspend-resume.html

  * igt@kms_psr2_sf@fbc-psr2-overlay-plane-update-continuous-sf:
    - shard-lnl:          [SKIP][180] ([Intel XE#2893] / [Intel XE#4608] / [Intel XE#7304]) -> [SKIP][181] ([Intel XE#1489]) +1 other test skip
   [180]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-1/igt@kms_psr2_sf@fbc-psr2-overlay-plane-update-continuous-sf.html
   [181]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_psr2_sf@fbc-psr2-overlay-plane-update-continuous-sf.html

  * igt@kms_psr2_sf@pr-cursor-plane-update-sf:
    - shard-lnl:          [SKIP][182] ([Intel XE#2893] / [Intel XE#7304]) -> [SKIP][183] ([Intel XE#1489]) +3 other tests skip
   [182]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-3/igt@kms_psr2_sf@pr-cursor-plane-update-sf.html
   [183]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_psr2_sf@pr-cursor-plane-update-sf.html

  * igt@kms_psr@fbc-psr2-suspend:
    - shard-lnl:          [SKIP][184] ([Intel XE#1406] / [Intel XE#7345]) -> [SKIP][185] ([Intel XE#2850] / [Intel XE#929])
   [184]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-6/igt@kms_psr@fbc-psr2-suspend.html
   [185]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_psr@fbc-psr2-suspend.html

  * igt@kms_psr@pr-cursor-plane-move:
    - shard-lnl:          [SKIP][186] ([Intel XE#1406]) -> [SKIP][187] ([Intel XE#2850] / [Intel XE#929]) +4 other tests skip
   [186]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-3/igt@kms_psr@pr-cursor-plane-move.html
   [187]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-6/igt@kms_psr@pr-cursor-plane-move.html

  * igt@kms_tiled_display@basic-test-pattern-with-chamelium:
    - shard-bmg:          [SKIP][188] ([Intel XE#2509] / [Intel XE#7437]) -> [SKIP][189] ([Intel XE#2426] / [Intel XE#5848])
   [188]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-bmg-3/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
   [189]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-bmg-8/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html

  * igt@xe_wedged@basic-wedged:
    - shard-lnl:          [ABORT][190] ([Intel XE#8963]) -> [DMESG-WARN][191] ([Intel XE#8963])
   [190]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7/shard-lnl-2/igt@xe_wedged@basic-wedged.html
   [191]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/shard-lnl-3/igt@xe_wedged@basic-wedged.html

  
  [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
  [Intel XE#1127]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1127
  [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#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#2134]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2134
  [Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
  [Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
  [Intel XE#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#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327
  [Intel XE#2330]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2330
  [Intel XE#2390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2390
  [Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
  [Intel XE#2482]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2482
  [Intel XE#2509]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2509
  [Intel XE#2548]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2548
  [Intel XE#2568]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2568
  [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#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
  [Intel XE#3098]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3098
  [Intel XE#323]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/323
  [Intel XE#3279]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3279
  [Intel XE#3297]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3297
  [Intel XE#3307]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3307
  [Intel XE#3374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3374
  [Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
  [Intel XE#3544]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3544
  [Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
  [Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
  [Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
  [Intel XE#4227]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4227
  [Intel XE#4417]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4417
  [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#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
  [Intel XE#4886]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4886
  [Intel XE#5447]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5447
  [Intel XE#5813]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5813
  [Intel XE#584]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/584
  [Intel XE#5848]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5848
  [Intel XE#5854]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5854
  [Intel XE#599]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/599
  [Intel XE#6035]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6035
  [Intel XE#607]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/607
  [Intel XE#6196]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6196
  [Intel XE#6312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6312
  [Intel XE#6503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6503
  [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#6927]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6927
  [Intel XE#6964]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6964
  [Intel XE#6974]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6974
  [Intel XE#7006]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7006
  [Intel XE#7008]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7008
  [Intel XE#702]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/702
  [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#7085]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7085
  [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#7250]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7250
  [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#7343]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7343
  [Intel XE#7345]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7345
  [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#7361]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7361
  [Intel XE#7369]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7369
  [Intel XE#7372]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7372
  [Intel XE#7376]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7376
  [Intel XE#7382]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7382
  [Intel XE#7385]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7385
  [Intel XE#7397]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7397
  [Intel XE#7399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7399
  [Intel XE#7417]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7417
  [Intel XE#7437]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7437
  [Intel XE#7482]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7482
  [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#7687]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7687
  [Intel XE#7760]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7760
  [Intel XE#7779]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7779
  [Intel XE#7793]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7793
  [Intel XE#7794]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7794
  [Intel XE#7795]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7795
  [Intel XE#7865]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7865
  [Intel XE#7905]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7905
  [Intel XE#7949]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7949
  [Intel XE#8007]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8007
  [Intel XE#8265]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8265
  [Intel XE#8364]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8364
  [Intel XE#8365]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8365
  [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#8399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8399
  [Intel XE#8586]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8586
  [Intel XE#8602]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8602
  [Intel XE#8680]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8680
  [Intel XE#870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/870
  [Intel XE#8854]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8854
  [Intel XE#8963]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8963
  [Intel XE#9041]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9041
  [Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929


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

  * Linux: xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7 -> xe-pw-172689v2

  IGT_9080: 65c1a091179475c3f0cd925799b49f58720bcf43 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-5677-1ddb465787c65331f609fbe02998ce1643b041c7: 1ddb465787c65331f609fbe02998ce1643b041c7
  xe-pw-172689v2: 172689v2

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172689v2/index.html

[-- Attachment #2: Type: text/html, Size: 64033 bytes --]

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

end of thread, other threads:[~2026-09-03  9:37 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-02 17:55 [PATCH v2 0/5] drm/xe/hwmon: Update hwmon thermal mailbox handling Karthik Poosa
2026-09-02 17:55 ` [PATCH v2 1/5] drm/xe/hwmon: Detect unavailable temperature sensors Karthik Poosa
2026-09-02 17:55 ` [PATCH v2 2/5] drm/xe/hwmon: Use VRAM temperature sensor count from thermal config on CRI Karthik Poosa
2026-09-02 18:10   ` sashiko-bot
2026-09-02 18:43   ` Rodrigo Vivi
2026-09-02 17:55 ` [PATCH v2 3/5] drm/xe/hwmon: Correct group selection for memory controller temperature Karthik Poosa
2026-09-02 18:17   ` sashiko-bot
2026-09-02 17:55 ` [PATCH v2 4/5] drm/xe/hwmon: Decode CRI temperature registers as IEEE-754 Karthik Poosa
2026-09-02 18:08   ` sashiko-bot
2026-09-02 17:55 ` [PATCH v2 5/5] drm/xe/hwmon: Disable memory controller and PCIe temperatures on CRI Karthik Poosa
2026-09-02 18:07   ` sashiko-bot
2026-09-03  6:11     ` Poosa, Karthik
2026-09-02 18:28 ` ✓ CI.KUnit: success for drm/xe/hwmon: Update hwmon thermal mailbox handling (rev2) Patchwork
2026-09-02 19:22 ` ✗ Xe.CI.BAT: failure " Patchwork
2026-09-03  9:37 ` ✗ 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