intel-xe.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/13] drm/i915: dissolve soc/
@ 2025-11-19 18:52 Jani Nikula
  2025-11-19 18:52 ` [PATCH v2 01/13] drm/i915/edram: extract i915_edram.[ch] for edram detection Jani Nikula
                   ` (23 more replies)
  0 siblings, 24 replies; 30+ messages in thread
From: Jani Nikula @ 2025-11-19 18:52 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: jani.nikula

Split soc/ to i915 and display specific parts, and relocate code
accordingly.

In v2, cover all of soc/.

BR,
Jani.

Jani Nikula (13):
  drm/i915/edram: extract i915_edram.[ch] for edram detection
  drm/i915: split out i915_freq.[ch]
  drm/i915: move intel_dram.[ch] from soc/ to display/
  drm/xe: remove MISSING_CASE() from compat i915_utils.h
  drm/i915/dram: convert to struct intel_display
  drm/i915: move dram_info to struct intel_display
  drm/i915: move intel_rom.[ch] from soc/ to display/
  drm/xe: remove remaining platform checks from compat i915_drv.h
  drm/i915/gmch: split out i915_gmch.[ch] from soc
  drm/i915/gmch: switch to use pci_bus_{read,write}_config_word()
  drm/i915/gmch: convert intel_gmch.c to struct intel_display
  drm/i915: merge soc/intel_gmch.[ch] to display/intel_vga.c
  drm/xe/vga: use the same intel_gmch_vga_set_decode() as i915

 drivers/gpu/drm/i915/Makefile                 |  11 +-
 drivers/gpu/drm/i915/display/i9xx_wm.c        |   5 +-
 drivers/gpu/drm/i915/display/intel_bios.c     |   3 +-
 drivers/gpu/drm/i915/display/intel_bw.c       |   5 +-
 drivers/gpu/drm/i915/display/intel_cdclk.c    |   7 +-
 .../gpu/drm/i915/display/intel_display_core.h |   4 +
 .../drm/i915/display/intel_display_power.c    |   5 +-
 .../drm/i915/{soc => display}/intel_dram.c    | 249 ++++++++----------
 .../drm/i915/{soc => display}/intel_dram.h    |  12 +-
 .../gpu/drm/i915/{soc => display}/intel_rom.c |   0
 .../gpu/drm/i915/{soc => display}/intel_rom.h |   0
 drivers/gpu/drm/i915/display/intel_vga.c      |  44 +++-
 drivers/gpu/drm/i915/display/skl_watermark.c  |   6 +-
 .../gpu/drm/i915/gt/intel_gt_clock_utils.c    |   4 +-
 drivers/gpu/drm/i915/gt/intel_rps.c           |   6 +-
 drivers/gpu/drm/i915/i915_driver.c            |  18 +-
 drivers/gpu/drm/i915/i915_drv.h               |   3 -
 drivers/gpu/drm/i915/i915_edram.c             |  44 ++++
 drivers/gpu/drm/i915/i915_edram.h             |  11 +
 drivers/gpu/drm/i915/i915_freq.c              | 111 ++++++++
 drivers/gpu/drm/i915/i915_freq.h              |  13 +
 .../i915/{soc/intel_gmch.c => i915_gmch.c}    |  61 +----
 drivers/gpu/drm/i915/i915_gmch.h              |  13 +
 drivers/gpu/drm/i915/soc/intel_gmch.h         |  20 --
 drivers/gpu/drm/xe/Makefile                   |  13 +-
 .../gpu/drm/xe/compat-i915-headers/i915_drv.h |  15 --
 .../drm/xe/compat-i915-headers/i915_utils.h   |   6 -
 .../xe/compat-i915-headers/soc/intel_dram.h   |   6 -
 .../xe/compat-i915-headers/soc/intel_gmch.h   |   6 -
 .../xe/compat-i915-headers/soc/intel_rom.h    |   6 -
 drivers/gpu/drm/xe/display/xe_display.c       |   4 +-
 drivers/gpu/drm/xe/display/xe_display_misc.c  |  16 --
 drivers/gpu/drm/xe/xe_device_types.h          |   8 -
 33 files changed, 394 insertions(+), 341 deletions(-)
 rename drivers/gpu/drm/i915/{soc => display}/intel_dram.c (70%)
 rename drivers/gpu/drm/i915/{soc => display}/intel_dram.h (68%)
 rename drivers/gpu/drm/i915/{soc => display}/intel_rom.c (100%)
 rename drivers/gpu/drm/i915/{soc => display}/intel_rom.h (100%)
 create mode 100644 drivers/gpu/drm/i915/i915_edram.c
 create mode 100644 drivers/gpu/drm/i915/i915_edram.h
 create mode 100644 drivers/gpu/drm/i915/i915_freq.c
 create mode 100644 drivers/gpu/drm/i915/i915_freq.h
 rename drivers/gpu/drm/i915/{soc/intel_gmch.c => i915_gmch.c} (68%)
 create mode 100644 drivers/gpu/drm/i915/i915_gmch.h
 delete mode 100644 drivers/gpu/drm/i915/soc/intel_gmch.h
 delete mode 100644 drivers/gpu/drm/xe/compat-i915-headers/soc/intel_dram.h
 delete mode 100644 drivers/gpu/drm/xe/compat-i915-headers/soc/intel_gmch.h
 delete mode 100644 drivers/gpu/drm/xe/compat-i915-headers/soc/intel_rom.h
 delete mode 100644 drivers/gpu/drm/xe/display/xe_display_misc.c

-- 
2.47.3


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

* [PATCH v2 01/13] drm/i915/edram: extract i915_edram.[ch] for edram detection
  2025-11-19 18:52 [PATCH v2 00/13] drm/i915: dissolve soc/ Jani Nikula
@ 2025-11-19 18:52 ` Jani Nikula
  2025-11-19 18:52 ` [PATCH v2 02/13] drm/i915: split out i915_freq.[ch] Jani Nikula
                   ` (22 subsequent siblings)
  23 siblings, 0 replies; 30+ messages in thread
From: Jani Nikula @ 2025-11-19 18:52 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: jani.nikula

While edram detection ostensibly belongs with the rest of the dram stuff
in soc/intel_dram.c, it's only required by i915 core, not
display. Extract it to a separate i915_edram.[ch] file.

This allows us to drop the edram_size_mb member from struct xe_device.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/Makefile         |  1 +
 drivers/gpu/drm/i915/i915_driver.c    |  3 +-
 drivers/gpu/drm/i915/i915_edram.c     | 44 +++++++++++++++++++++++++++
 drivers/gpu/drm/i915/i915_edram.h     | 11 +++++++
 drivers/gpu/drm/i915/soc/intel_dram.c | 36 ----------------------
 drivers/gpu/drm/i915/soc/intel_dram.h |  1 -
 drivers/gpu/drm/xe/xe_device_types.h  |  6 ----
 7 files changed, 58 insertions(+), 44 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/i915_edram.c
 create mode 100644 drivers/gpu/drm/i915/i915_edram.h

diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
index 9a4f89c9a1cd..3ca4e0cace76 100644
--- a/drivers/gpu/drm/i915/Makefile
+++ b/drivers/gpu/drm/i915/Makefile
@@ -27,6 +27,7 @@ i915-y += \
 	i915_config.o \
 	i915_driver.o \
 	i915_drm_client.o \
+	i915_edram.o \
 	i915_getparam.o \
 	i915_ioctl.o \
 	i915_irq.o \
diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
index 7c60b6873934..44a17ffc3058 100644
--- a/drivers/gpu/drm/i915/i915_driver.c
+++ b/drivers/gpu/drm/i915/i915_driver.c
@@ -94,6 +94,7 @@
 #include "i915_driver.h"
 #include "i915_drm_client.h"
 #include "i915_drv.h"
+#include "i915_edram.h"
 #include "i915_file_private.h"
 #include "i915_getparam.h"
 #include "i915_hwmon.h"
@@ -493,7 +494,7 @@ static int i915_driver_hw_probe(struct drm_i915_private *dev_priv)
 	}
 
 	/* needs to be done before ggtt probe */
-	intel_dram_edram_detect(dev_priv);
+	i915_edram_detect(dev_priv);
 
 	ret = i915_set_dma_info(dev_priv);
 	if (ret)
diff --git a/drivers/gpu/drm/i915/i915_edram.c b/drivers/gpu/drm/i915/i915_edram.c
new file mode 100644
index 000000000000..5818ec396d1e
--- /dev/null
+++ b/drivers/gpu/drm/i915/i915_edram.c
@@ -0,0 +1,44 @@
+// SPDX-License-Identifier: MIT
+/* Copyright © 2025 Intel Corporation */
+
+#include <drm/drm_print.h>
+
+#include "i915_drv.h"
+#include "i915_edram.h"
+#include "i915_reg.h"
+
+static u32 gen9_edram_size_mb(struct drm_i915_private *i915, u32 cap)
+{
+	static const u8 ways[8] = { 4, 8, 12, 16, 16, 16, 16, 16 };
+	static const u8 sets[4] = { 1, 1, 2, 2 };
+
+	return EDRAM_NUM_BANKS(cap) *
+		ways[EDRAM_WAYS_IDX(cap)] *
+		sets[EDRAM_SETS_IDX(cap)];
+}
+
+void i915_edram_detect(struct drm_i915_private *i915)
+{
+	u32 edram_cap = 0;
+
+	if (!(IS_HASWELL(i915) || IS_BROADWELL(i915) || GRAPHICS_VER(i915) >= 9))
+		return;
+
+	edram_cap = intel_uncore_read_fw(&i915->uncore, HSW_EDRAM_CAP);
+
+	/* NB: We can't write IDICR yet because we don't have gt funcs set up */
+
+	if (!(edram_cap & EDRAM_ENABLED))
+		return;
+
+	/*
+	 * The needed capability bits for size calculation are not there with
+	 * pre gen9 so return 128MB always.
+	 */
+	if (GRAPHICS_VER(i915) < 9)
+		i915->edram_size_mb = 128;
+	else
+		i915->edram_size_mb = gen9_edram_size_mb(i915, edram_cap);
+
+	drm_info(&i915->drm, "Found %uMB of eDRAM\n", i915->edram_size_mb);
+}
diff --git a/drivers/gpu/drm/i915/i915_edram.h b/drivers/gpu/drm/i915/i915_edram.h
new file mode 100644
index 000000000000..8319422ace9d
--- /dev/null
+++ b/drivers/gpu/drm/i915/i915_edram.h
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: MIT */
+/* Copyright © 2025 Intel Corporation */
+
+#ifndef __I915_DRAM_H__
+#define __I915_DRAM_H__
+
+struct drm_i915_private;
+
+void i915_edram_detect(struct drm_i915_private *i915);
+
+#endif /* __I915_DRAM_H__ */
diff --git a/drivers/gpu/drm/i915/soc/intel_dram.c b/drivers/gpu/drm/i915/soc/intel_dram.c
index 739cfe48f6db..cfe96c3c1b1a 100644
--- a/drivers/gpu/drm/i915/soc/intel_dram.c
+++ b/drivers/gpu/drm/i915/soc/intel_dram.c
@@ -861,39 +861,3 @@ const struct dram_info *intel_dram_info(struct drm_device *drm)
 
 	return i915->dram_info;
 }
-
-static u32 gen9_edram_size_mb(struct drm_i915_private *i915, u32 cap)
-{
-	static const u8 ways[8] = { 4, 8, 12, 16, 16, 16, 16, 16 };
-	static const u8 sets[4] = { 1, 1, 2, 2 };
-
-	return EDRAM_NUM_BANKS(cap) *
-		ways[EDRAM_WAYS_IDX(cap)] *
-		sets[EDRAM_SETS_IDX(cap)];
-}
-
-void intel_dram_edram_detect(struct drm_i915_private *i915)
-{
-	u32 edram_cap = 0;
-
-	if (!(IS_HASWELL(i915) || IS_BROADWELL(i915) || GRAPHICS_VER(i915) >= 9))
-		return;
-
-	edram_cap = intel_uncore_read_fw(&i915->uncore, HSW_EDRAM_CAP);
-
-	/* NB: We can't write IDICR yet because we don't have gt funcs set up */
-
-	if (!(edram_cap & EDRAM_ENABLED))
-		return;
-
-	/*
-	 * The needed capability bits for size calculation are not there with
-	 * pre gen9 so return 128MB always.
-	 */
-	if (GRAPHICS_VER(i915) < 9)
-		i915->edram_size_mb = 128;
-	else
-		i915->edram_size_mb = gen9_edram_size_mb(i915, edram_cap);
-
-	drm_info(&i915->drm, "Found %uMB of eDRAM\n", i915->edram_size_mb);
-}
diff --git a/drivers/gpu/drm/i915/soc/intel_dram.h b/drivers/gpu/drm/i915/soc/intel_dram.h
index 8475ee379daa..58aaf2f91afe 100644
--- a/drivers/gpu/drm/i915/soc/intel_dram.h
+++ b/drivers/gpu/drm/i915/soc/intel_dram.h
@@ -35,7 +35,6 @@ struct dram_info {
 	bool has_16gb_dimms;
 };
 
-void intel_dram_edram_detect(struct drm_i915_private *i915);
 int intel_dram_detect(struct drm_i915_private *i915);
 unsigned int intel_fsb_freq(struct drm_i915_private *i915);
 unsigned int intel_mem_freq(struct drm_i915_private *i915);
diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
index 0b2fa7c56d38..a072c020b84b 100644
--- a/drivers/gpu/drm/xe/xe_device_types.h
+++ b/drivers/gpu/drm/xe/xe_device_types.h
@@ -650,12 +650,6 @@ struct xe_device {
 	 */
 	const struct dram_info *dram_info;
 
-	/*
-	 * edram size in MB.
-	 * Cannot be determined by PCIID. You must always read a register.
-	 */
-	u32 edram_size_mb;
-
 	struct intel_uncore {
 		spinlock_t lock;
 	} uncore;
-- 
2.47.3


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

* [PATCH v2 02/13] drm/i915: split out i915_freq.[ch]
  2025-11-19 18:52 [PATCH v2 00/13] drm/i915: dissolve soc/ Jani Nikula
  2025-11-19 18:52 ` [PATCH v2 01/13] drm/i915/edram: extract i915_edram.[ch] for edram detection Jani Nikula
@ 2025-11-19 18:52 ` Jani Nikula
  2025-11-19 18:52 ` [PATCH v2 03/13] drm/i915: move intel_dram.[ch] from soc/ to display/ Jani Nikula
                   ` (21 subsequent siblings)
  23 siblings, 0 replies; 30+ messages in thread
From: Jani Nikula @ 2025-11-19 18:52 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: jani.nikula

The i915 core only needs three rather specific functions from
soc/intel_dram.[ch]: i9xx_fsb_freq(), ilk_fsb_freq(), and
ilk_mem_freq(). Add new i915_freq.[ch] and duplicate those functions for
i915 to reduce the dependency on soc/ code.

Wile duplication in general is bad, here it's a tradeoff to simplify the
i915, xe and display interactions.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/Makefile                 |   1 +
 .../gpu/drm/i915/gt/intel_gt_clock_utils.c    |   4 +-
 drivers/gpu/drm/i915/gt/intel_rps.c           |   6 +-
 drivers/gpu/drm/i915/i915_freq.c              | 111 ++++++++++++++++++
 drivers/gpu/drm/i915/i915_freq.h              |  13 ++
 5 files changed, 130 insertions(+), 5 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/i915_freq.c
 create mode 100644 drivers/gpu/drm/i915/i915_freq.h

diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
index 3ca4e0cace76..a696d8b77b4d 100644
--- a/drivers/gpu/drm/i915/Makefile
+++ b/drivers/gpu/drm/i915/Makefile
@@ -28,6 +28,7 @@ i915-y += \
 	i915_driver.o \
 	i915_drm_client.o \
 	i915_edram.o \
+	i915_freq.o \
 	i915_getparam.o \
 	i915_ioctl.o \
 	i915_irq.o \
diff --git a/drivers/gpu/drm/i915/gt/intel_gt_clock_utils.c b/drivers/gpu/drm/i915/gt/intel_gt_clock_utils.c
index c90b35881a26..aecd120972ea 100644
--- a/drivers/gpu/drm/i915/gt/intel_gt_clock_utils.c
+++ b/drivers/gpu/drm/i915/gt/intel_gt_clock_utils.c
@@ -4,12 +4,12 @@
  */
 
 #include "i915_drv.h"
+#include "i915_freq.h"
 #include "i915_reg.h"
 #include "intel_gt.h"
 #include "intel_gt_clock_utils.h"
 #include "intel_gt_print.h"
 #include "intel_gt_regs.h"
-#include "soc/intel_dram.h"
 
 static u32 read_reference_ts_freq(struct intel_uncore *uncore)
 {
@@ -148,7 +148,7 @@ static u32 gen4_read_clock_frequency(struct intel_uncore *uncore)
 	 *
 	 * Testing on actual hardware has shown there is no /16.
 	 */
-	return DIV_ROUND_CLOSEST(intel_fsb_freq(uncore->i915), 4) * 1000;
+	return DIV_ROUND_CLOSEST(i9xx_fsb_freq(uncore->i915), 4) * 1000;
 }
 
 static u32 read_clock_frequency(struct intel_uncore *uncore)
diff --git a/drivers/gpu/drm/i915/gt/intel_rps.c b/drivers/gpu/drm/i915/gt/intel_rps.c
index d233dc122bd7..90b7eee78f1f 100644
--- a/drivers/gpu/drm/i915/gt/intel_rps.c
+++ b/drivers/gpu/drm/i915/gt/intel_rps.c
@@ -10,9 +10,9 @@
 
 #include "display/intel_display_rps.h"
 #include "display/vlv_clock.h"
-#include "soc/intel_dram.h"
 
 #include "i915_drv.h"
+#include "i915_freq.h"
 #include "i915_irq.h"
 #include "i915_reg.h"
 #include "i915_wait_util.h"
@@ -285,8 +285,8 @@ static void gen5_rps_init(struct intel_rps *rps)
 	u32 rgvmodectl;
 	int c_m, i;
 
-	fsb_freq = intel_fsb_freq(i915);
-	mem_freq = intel_mem_freq(i915);
+	fsb_freq = ilk_fsb_freq(i915);
+	mem_freq = ilk_mem_freq(i915);
 
 	if (fsb_freq <= 3200000)
 		c_m = 0;
diff --git a/drivers/gpu/drm/i915/i915_freq.c b/drivers/gpu/drm/i915/i915_freq.c
new file mode 100644
index 000000000000..9bdaea34aef9
--- /dev/null
+++ b/drivers/gpu/drm/i915/i915_freq.c
@@ -0,0 +1,111 @@
+// SPDX-License-Identifier: MIT
+/* Copyright © 2025 Intel Corporation */
+
+#include <drm/drm_print.h>
+
+#include "i915_drv.h"
+#include "i915_freq.h"
+#include "intel_mchbar_regs.h"
+
+unsigned int i9xx_fsb_freq(struct drm_i915_private *i915)
+{
+	u32 fsb;
+
+	/*
+	 * Note that this only reads the state of the FSB
+	 * straps, not the actual FSB frequency. Some BIOSen
+	 * let you configure each independently. Ideally we'd
+	 * read out the actual FSB frequency but sadly we
+	 * don't know which registers have that information,
+	 * and all the relevant docs have gone to bit heaven :(
+	 */
+	fsb = intel_uncore_read(&i915->uncore, CLKCFG) & CLKCFG_FSB_MASK;
+
+	if (IS_PINEVIEW(i915) || IS_MOBILE(i915)) {
+		switch (fsb) {
+		case CLKCFG_FSB_400:
+			return 400000;
+		case CLKCFG_FSB_533:
+			return 533333;
+		case CLKCFG_FSB_667:
+			return 666667;
+		case CLKCFG_FSB_800:
+			return 800000;
+		case CLKCFG_FSB_1067:
+			return 1066667;
+		case CLKCFG_FSB_1333:
+			return 1333333;
+		default:
+			MISSING_CASE(fsb);
+			return 1333333;
+		}
+	} else {
+		switch (fsb) {
+		case CLKCFG_FSB_400_ALT:
+			return 400000;
+		case CLKCFG_FSB_533:
+			return 533333;
+		case CLKCFG_FSB_667:
+			return 666667;
+		case CLKCFG_FSB_800:
+			return 800000;
+		case CLKCFG_FSB_1067_ALT:
+			return 1066667;
+		case CLKCFG_FSB_1333_ALT:
+			return 1333333;
+		case CLKCFG_FSB_1600_ALT:
+			return 1600000;
+		default:
+			MISSING_CASE(fsb);
+			return 1333333;
+		}
+	}
+}
+
+unsigned int ilk_fsb_freq(struct drm_i915_private *i915)
+{
+	u16 fsb;
+
+	fsb = intel_uncore_read16(&i915->uncore, CSIPLL0) & 0x3ff;
+
+	switch (fsb) {
+	case 0x00c:
+		return 3200000;
+	case 0x00e:
+		return 3733333;
+	case 0x010:
+		return 4266667;
+	case 0x012:
+		return 4800000;
+	case 0x014:
+		return 5333333;
+	case 0x016:
+		return 5866667;
+	case 0x018:
+		return 6400000;
+	default:
+		drm_dbg(&i915->drm, "unknown fsb frequency 0x%04x\n", fsb);
+		return 0;
+	}
+}
+
+unsigned int ilk_mem_freq(struct drm_i915_private *i915)
+{
+	u16 ddrpll;
+
+	ddrpll = intel_uncore_read16(&i915->uncore, DDRMPLL1);
+	switch (ddrpll & 0xff) {
+	case 0xc:
+		return 800000;
+	case 0x10:
+		return 1066667;
+	case 0x14:
+		return 1333333;
+	case 0x18:
+		return 1600000;
+	default:
+		drm_dbg(&i915->drm, "unknown memory frequency 0x%02x\n",
+			ddrpll & 0xff);
+		return 0;
+	}
+}
diff --git a/drivers/gpu/drm/i915/i915_freq.h b/drivers/gpu/drm/i915/i915_freq.h
new file mode 100644
index 000000000000..53b0ecb95440
--- /dev/null
+++ b/drivers/gpu/drm/i915/i915_freq.h
@@ -0,0 +1,13 @@
+/* SPDX-License-Identifier: MIT */
+/* Copyright © 2025 Intel Corporation */
+
+#ifndef __I915_FREQ_H__
+#define __I915_FREQ_H__
+
+struct drm_i915_private;
+
+unsigned int i9xx_fsb_freq(struct drm_i915_private *i915);
+unsigned int ilk_fsb_freq(struct drm_i915_private *i915);
+unsigned int ilk_mem_freq(struct drm_i915_private *i915);
+
+#endif /* __I915_FREQ_H__ */
-- 
2.47.3


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

* [PATCH v2 03/13] drm/i915: move intel_dram.[ch] from soc/ to display/
  2025-11-19 18:52 [PATCH v2 00/13] drm/i915: dissolve soc/ Jani Nikula
  2025-11-19 18:52 ` [PATCH v2 01/13] drm/i915/edram: extract i915_edram.[ch] for edram detection Jani Nikula
  2025-11-19 18:52 ` [PATCH v2 02/13] drm/i915: split out i915_freq.[ch] Jani Nikula
@ 2025-11-19 18:52 ` Jani Nikula
  2025-11-19 18:52 ` [PATCH v2 04/13] drm/xe: remove MISSING_CASE() from compat i915_utils.h Jani Nikula
                   ` (20 subsequent siblings)
  23 siblings, 0 replies; 30+ messages in thread
From: Jani Nikula @ 2025-11-19 18:52 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: jani.nikula

The remaining users of intel_dram.[ch] are all in display. Move them
under display.

This allows us to remove the compat soc/intel_dram.h from xe.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/Makefile                           | 2 +-
 drivers/gpu/drm/i915/display/i9xx_wm.c                  | 3 +--
 drivers/gpu/drm/i915/display/intel_bw.c                 | 3 +--
 drivers/gpu/drm/i915/display/intel_cdclk.c              | 3 +--
 drivers/gpu/drm/i915/display/intel_display_power.c      | 3 +--
 drivers/gpu/drm/i915/{soc => display}/intel_dram.c      | 5 ++---
 drivers/gpu/drm/i915/{soc => display}/intel_dram.h      | 0
 drivers/gpu/drm/i915/display/skl_watermark.c            | 2 +-
 drivers/gpu/drm/i915/i915_driver.c                      | 2 +-
 drivers/gpu/drm/xe/Makefile                             | 2 +-
 drivers/gpu/drm/xe/compat-i915-headers/soc/intel_dram.h | 6 ------
 drivers/gpu/drm/xe/display/xe_display.c                 | 2 +-
 12 files changed, 11 insertions(+), 22 deletions(-)
 rename drivers/gpu/drm/i915/{soc => display}/intel_dram.c (99%)
 rename drivers/gpu/drm/i915/{soc => display}/intel_dram.h (100%)
 delete mode 100644 drivers/gpu/drm/xe/compat-i915-headers/soc/intel_dram.h

diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
index a696d8b77b4d..838c8e58e4a2 100644
--- a/drivers/gpu/drm/i915/Makefile
+++ b/drivers/gpu/drm/i915/Makefile
@@ -58,7 +58,6 @@ i915-y += \
 
 # core peripheral code
 i915-y += \
-	soc/intel_dram.o \
 	soc/intel_gmch.o \
 	soc/intel_rom.o
 
@@ -268,6 +267,7 @@ i915-y += \
 	display/intel_dpll_mgr.o \
 	display/intel_dpt.o \
 	display/intel_dpt_common.o \
+	display/intel_dram.o \
 	display/intel_drrs.o \
 	display/intel_dsb.o \
 	display/intel_dsb_buffer.o \
diff --git a/drivers/gpu/drm/i915/display/i9xx_wm.c b/drivers/gpu/drm/i915/display/i9xx_wm.c
index 01f3803fa09f..27e2d73bc505 100644
--- a/drivers/gpu/drm/i915/display/i9xx_wm.c
+++ b/drivers/gpu/drm/i915/display/i9xx_wm.c
@@ -7,8 +7,6 @@
 
 #include <drm/drm_print.h>
 
-#include "soc/intel_dram.h"
-
 #include "i915_drv.h"
 #include "i915_reg.h"
 #include "i9xx_wm.h"
@@ -19,6 +17,7 @@
 #include "intel_display.h"
 #include "intel_display_regs.h"
 #include "intel_display_trace.h"
+#include "intel_dram.h"
 #include "intel_fb.h"
 #include "intel_mchbar_regs.h"
 #include "intel_wm.h"
diff --git a/drivers/gpu/drm/i915/display/intel_bw.c b/drivers/gpu/drm/i915/display/intel_bw.c
index 1f6461be50ef..957c90e62569 100644
--- a/drivers/gpu/drm/i915/display/intel_bw.c
+++ b/drivers/gpu/drm/i915/display/intel_bw.c
@@ -6,8 +6,6 @@
 #include <drm/drm_atomic_state_helper.h>
 #include <drm/drm_print.h>
 
-#include "soc/intel_dram.h"
-
 #include "i915_drv.h"
 #include "i915_reg.h"
 #include "intel_bw.h"
@@ -16,6 +14,7 @@
 #include "intel_display_regs.h"
 #include "intel_display_types.h"
 #include "intel_display_utils.h"
+#include "intel_dram.h"
 #include "intel_mchbar_regs.h"
 #include "intel_pcode.h"
 #include "intel_uncore.h"
diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c b/drivers/gpu/drm/i915/display/intel_cdclk.c
index 37801c744b05..531819391c8c 100644
--- a/drivers/gpu/drm/i915/display/intel_cdclk.c
+++ b/drivers/gpu/drm/i915/display/intel_cdclk.c
@@ -28,8 +28,6 @@
 #include <drm/drm_fixed.h>
 #include <drm/drm_print.h>
 
-#include "soc/intel_dram.h"
-
 #include "hsw_ips.h"
 #include "i915_drv.h"
 #include "i915_reg.h"
@@ -42,6 +40,7 @@
 #include "intel_display_regs.h"
 #include "intel_display_types.h"
 #include "intel_display_utils.h"
+#include "intel_dram.h"
 #include "intel_mchbar_regs.h"
 #include "intel_pci_config.h"
 #include "intel_pcode.h"
diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c b/drivers/gpu/drm/i915/display/intel_display_power.c
index a383ef23391d..9c5f0277d8c2 100644
--- a/drivers/gpu/drm/i915/display/intel_display_power.c
+++ b/drivers/gpu/drm/i915/display/intel_display_power.c
@@ -8,8 +8,6 @@
 
 #include <drm/drm_print.h>
 
-#include "soc/intel_dram.h"
-
 #include "i915_drv.h"
 #include "i915_reg.h"
 #include "intel_backlight_regs.h"
@@ -25,6 +23,7 @@
 #include "intel_display_types.h"
 #include "intel_display_utils.h"
 #include "intel_dmc.h"
+#include "intel_dram.h"
 #include "intel_mchbar_regs.h"
 #include "intel_parent.h"
 #include "intel_pch_refclk.h"
diff --git a/drivers/gpu/drm/i915/soc/intel_dram.c b/drivers/gpu/drm/i915/display/intel_dram.c
similarity index 99%
rename from drivers/gpu/drm/i915/soc/intel_dram.c
rename to drivers/gpu/drm/i915/display/intel_dram.c
index cfe96c3c1b1a..7142772f2a6e 100644
--- a/drivers/gpu/drm/i915/soc/intel_dram.c
+++ b/drivers/gpu/drm/i915/display/intel_dram.c
@@ -8,11 +8,10 @@
 #include <drm/drm_managed.h>
 #include <drm/drm_print.h>
 
-#include "../display/intel_display_core.h" /* FIXME */
-
 #include "i915_drv.h"
 #include "i915_reg.h"
-#include "i915_utils.h"
+#include "intel_display_core.h"
+#include "intel_display_utils.h"
 #include "intel_dram.h"
 #include "intel_mchbar_regs.h"
 #include "intel_pcode.h"
diff --git a/drivers/gpu/drm/i915/soc/intel_dram.h b/drivers/gpu/drm/i915/display/intel_dram.h
similarity index 100%
rename from drivers/gpu/drm/i915/soc/intel_dram.h
rename to drivers/gpu/drm/i915/display/intel_dram.h
diff --git a/drivers/gpu/drm/i915/display/skl_watermark.c b/drivers/gpu/drm/i915/display/skl_watermark.c
index 54e9e0be019d..a33e0cec8cba 100644
--- a/drivers/gpu/drm/i915/display/skl_watermark.c
+++ b/drivers/gpu/drm/i915/display/skl_watermark.c
@@ -8,7 +8,6 @@
 #include <drm/drm_blend.h>
 #include <drm/drm_print.h>
 
-#include "soc/intel_dram.h"
 #include "i915_reg.h"
 #include "i9xx_wm.h"
 #include "intel_atomic.h"
@@ -23,6 +22,7 @@
 #include "intel_display_rpm.h"
 #include "intel_display_types.h"
 #include "intel_display_utils.h"
+#include "intel_dram.h"
 #include "intel_fb.h"
 #include "intel_fixed.h"
 #include "intel_flipq.h"
diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
index 44a17ffc3058..d1f573f1b6cc 100644
--- a/drivers/gpu/drm/i915/i915_driver.c
+++ b/drivers/gpu/drm/i915/i915_driver.c
@@ -59,6 +59,7 @@
 #include "display/intel_dmc.h"
 #include "display/intel_dp.h"
 #include "display/intel_dpt.h"
+#include "display/intel_dram.h"
 #include "display/intel_encoder.h"
 #include "display/intel_fbdev.h"
 #include "display/intel_gmbus.h"
@@ -87,7 +88,6 @@
 #include "pxp/intel_pxp_debugfs.h"
 #include "pxp/intel_pxp_pm.h"
 
-#include "soc/intel_dram.h"
 #include "soc/intel_gmch.h"
 
 #include "i915_debugfs.h"
diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile
index 1a3aa041820d..85642340a8fa 100644
--- a/drivers/gpu/drm/xe/Makefile
+++ b/drivers/gpu/drm/xe/Makefile
@@ -224,7 +224,6 @@ xe-$(CONFIG_DRM_XE_DISPLAY) += \
 
 # SOC code shared with i915
 xe-$(CONFIG_DRM_XE_DISPLAY) += \
-	i915-soc/intel_dram.o \
 	i915-soc/intel_rom.o
 
 # Display code shared with i915
@@ -276,6 +275,7 @@ xe-$(CONFIG_DRM_XE_DISPLAY) += \
 	i915-display/intel_dpll.o \
 	i915-display/intel_dpll_mgr.o \
 	i915-display/intel_dpt_common.o \
+	i915-display/intel_dram.o \
 	i915-display/intel_drrs.o \
 	i915-display/intel_dsb.o \
 	i915-display/intel_dsi.o \
diff --git a/drivers/gpu/drm/xe/compat-i915-headers/soc/intel_dram.h b/drivers/gpu/drm/xe/compat-i915-headers/soc/intel_dram.h
deleted file mode 100644
index 65707e20c557..000000000000
--- a/drivers/gpu/drm/xe/compat-i915-headers/soc/intel_dram.h
+++ /dev/null
@@ -1,6 +0,0 @@
-/* SPDX-License-Identifier: MIT */
-/*
- * Copyright © 2023 Intel Corporation
- */
-
-#include "../../../i915/soc/intel_dram.h"
diff --git a/drivers/gpu/drm/xe/display/xe_display.c b/drivers/gpu/drm/xe/display/xe_display.c
index e3320d9e6314..9b1d21e03df0 100644
--- a/drivers/gpu/drm/xe/display/xe_display.c
+++ b/drivers/gpu/drm/xe/display/xe_display.c
@@ -17,7 +17,6 @@
 #include <drm/intel/display_parent_interface.h>
 #include <uapi/drm/xe_drm.h>
 
-#include "soc/intel_dram.h"
 #include "intel_acpi.h"
 #include "intel_audio.h"
 #include "intel_bw.h"
@@ -29,6 +28,7 @@
 #include "intel_dmc.h"
 #include "intel_dmc_wl.h"
 #include "intel_dp.h"
+#include "intel_dram.h"
 #include "intel_encoder.h"
 #include "intel_fbdev.h"
 #include "intel_hdcp.h"
-- 
2.47.3


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

* [PATCH v2 04/13] drm/xe: remove MISSING_CASE() from compat i915_utils.h
  2025-11-19 18:52 [PATCH v2 00/13] drm/i915: dissolve soc/ Jani Nikula
                   ` (2 preceding siblings ...)
  2025-11-19 18:52 ` [PATCH v2 03/13] drm/i915: move intel_dram.[ch] from soc/ to display/ Jani Nikula
@ 2025-11-19 18:52 ` Jani Nikula
  2025-11-19 18:52 ` [PATCH v2 05/13] drm/i915/dram: convert to struct intel_display Jani Nikula
                   ` (19 subsequent siblings)
  23 siblings, 0 replies; 30+ messages in thread
From: Jani Nikula @ 2025-11-19 18:52 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: jani.nikula

There are no longer users for MISSING_CASE() in the compat
i915_utils.h. Remove it to prevent new users from showing up.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/xe/compat-i915-headers/i915_utils.h | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/drivers/gpu/drm/xe/compat-i915-headers/i915_utils.h b/drivers/gpu/drm/xe/compat-i915-headers/i915_utils.h
index bcd441dc0fce..3639721f0bf8 100644
--- a/drivers/gpu/drm/xe/compat-i915-headers/i915_utils.h
+++ b/drivers/gpu/drm/xe/compat-i915-headers/i915_utils.h
@@ -3,11 +3,5 @@
  * Copyright © 2023 Intel Corporation
  */
 
-/* for soc/ */
-#ifndef MISSING_CASE
-#define MISSING_CASE(x) WARN(1, "Missing case (%s == %ld)\n", \
-			     __stringify(x), (long)(x))
-#endif
-
 /* for a couple of users under i915/display */
 #define i915_inject_probe_failure(unused) ((unused) && 0)
-- 
2.47.3


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

* [PATCH v2 05/13] drm/i915/dram: convert to struct intel_display
  2025-11-19 18:52 [PATCH v2 00/13] drm/i915: dissolve soc/ Jani Nikula
                   ` (3 preceding siblings ...)
  2025-11-19 18:52 ` [PATCH v2 04/13] drm/xe: remove MISSING_CASE() from compat i915_utils.h Jani Nikula
@ 2025-11-19 18:52 ` Jani Nikula
  2025-11-20  8:31   ` Jani Nikula
  2025-11-20 16:18   ` [PATCH v3] " Jani Nikula
  2025-11-19 18:52 ` [PATCH v2 06/13] drm/i915: move dram_info " Jani Nikula
                   ` (18 subsequent siblings)
  23 siblings, 2 replies; 30+ messages in thread
From: Jani Nikula @ 2025-11-19 18:52 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: jani.nikula

Convert everything except uncore access to struct intel_display.

While at it, convert logging to drm_dbg_kms().

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/display/i9xx_wm.c        |   2 +-
 drivers/gpu/drm/i915/display/intel_bw.c       |   2 +-
 drivers/gpu/drm/i915/display/intel_cdclk.c    |   4 +-
 .../drm/i915/display/intel_display_power.c    |   2 +-
 drivers/gpu/drm/i915/display/intel_dram.c     | 205 +++++++++---------
 drivers/gpu/drm/i915/display/intel_dram.h     |  11 +-
 drivers/gpu/drm/i915/display/skl_watermark.c  |   4 +-
 drivers/gpu/drm/i915/i915_driver.c            |   2 +-
 drivers/gpu/drm/xe/display/xe_display.c       |   2 +-
 9 files changed, 120 insertions(+), 114 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/i9xx_wm.c b/drivers/gpu/drm/i915/display/i9xx_wm.c
index 27e2d73bc505..167277cd8877 100644
--- a/drivers/gpu/drm/i915/display/i9xx_wm.c
+++ b/drivers/gpu/drm/i915/display/i9xx_wm.c
@@ -90,7 +90,7 @@ static const struct cxsr_latency cxsr_latency_table[] = {
 
 static const struct cxsr_latency *pnv_get_cxsr_latency(struct intel_display *display)
 {
-	const struct dram_info *dram_info = intel_dram_info(display->drm);
+	const struct dram_info *dram_info = intel_dram_info(display);
 	bool is_ddr3 = dram_info->type == INTEL_DRAM_DDR3;
 	int i;
 
diff --git a/drivers/gpu/drm/i915/display/intel_bw.c b/drivers/gpu/drm/i915/display/intel_bw.c
index 957c90e62569..d27835ed49c2 100644
--- a/drivers/gpu/drm/i915/display/intel_bw.c
+++ b/drivers/gpu/drm/i915/display/intel_bw.c
@@ -799,7 +799,7 @@ static unsigned int icl_qgv_bw(struct intel_display *display,
 
 void intel_bw_init_hw(struct intel_display *display)
 {
-	const struct dram_info *dram_info = intel_dram_info(display->drm);
+	const struct dram_info *dram_info = intel_dram_info(display);
 
 	if (!HAS_DISPLAY(display))
 		return;
diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c b/drivers/gpu/drm/i915/display/intel_cdclk.c
index 531819391c8c..5c90e53b4e46 100644
--- a/drivers/gpu/drm/i915/display/intel_cdclk.c
+++ b/drivers/gpu/drm/i915/display/intel_cdclk.c
@@ -3737,10 +3737,8 @@ static int pch_rawclk(struct intel_display *display)
 
 static int i9xx_hrawclk(struct intel_display *display)
 {
-	struct drm_i915_private *i915 = to_i915(display->drm);
-
 	/* hrawclock is 1/4 the FSB frequency */
-	return DIV_ROUND_CLOSEST(intel_fsb_freq(i915), 4);
+	return DIV_ROUND_CLOSEST(intel_fsb_freq(display), 4);
 }
 
 /**
diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c b/drivers/gpu/drm/i915/display/intel_display_power.c
index 9c5f0277d8c2..08db9bbbfcb1 100644
--- a/drivers/gpu/drm/i915/display/intel_display_power.c
+++ b/drivers/gpu/drm/i915/display/intel_display_power.c
@@ -1616,7 +1616,7 @@ static const struct buddy_page_mask wa_1409767108_buddy_page_masks[] = {
 
 static void tgl_bw_buddy_init(struct intel_display *display)
 {
-	const struct dram_info *dram_info = intel_dram_info(display->drm);
+	const struct dram_info *dram_info = intel_dram_info(display);
 	const struct buddy_page_mask *table;
 	unsigned long abox_mask = DISPLAY_INFO(display)->abox_mask;
 	int config, i;
diff --git a/drivers/gpu/drm/i915/display/intel_dram.c b/drivers/gpu/drm/i915/display/intel_dram.c
index 7142772f2a6e..3dfcc7938740 100644
--- a/drivers/gpu/drm/i915/display/intel_dram.c
+++ b/drivers/gpu/drm/i915/display/intel_dram.c
@@ -56,14 +56,17 @@ const char *intel_dram_type_str(enum intel_dram_type type)
 
 #undef DRAM_TYPE_STR
 
-static enum intel_dram_type pnv_dram_type(struct drm_i915_private *i915)
+static enum intel_dram_type pnv_dram_type(struct intel_display *display)
 {
+	struct drm_i915_private *i915 = to_i915(display->drm);
+
 	return intel_uncore_read(&i915->uncore, CSHRDDR3CTL) & CSHRDDR3CTL_DDR3 ?
 		INTEL_DRAM_DDR3 : INTEL_DRAM_DDR2;
 }
 
-static unsigned int pnv_mem_freq(struct drm_i915_private *dev_priv)
+static unsigned int pnv_mem_freq(struct intel_display *display)
 {
+	struct drm_i915_private *dev_priv = to_i915(display->drm);
 	u32 tmp;
 
 	tmp = intel_uncore_read(&dev_priv->uncore, CLKCFG);
@@ -80,8 +83,9 @@ static unsigned int pnv_mem_freq(struct drm_i915_private *dev_priv)
 	return 0;
 }
 
-static unsigned int ilk_mem_freq(struct drm_i915_private *dev_priv)
+static unsigned int ilk_mem_freq(struct intel_display *display)
 {
+	struct drm_i915_private *dev_priv = to_i915(display->drm);
 	u16 ddrpll;
 
 	ddrpll = intel_uncore_read16(&dev_priv->uncore, DDRMPLL1);
@@ -95,19 +99,19 @@ static unsigned int ilk_mem_freq(struct drm_i915_private *dev_priv)
 	case 0x18:
 		return 1600000;
 	default:
-		drm_dbg(&dev_priv->drm, "unknown memory frequency 0x%02x\n",
-			ddrpll & 0xff);
+		drm_dbg_kms(display->drm, "unknown memory frequency 0x%02x\n",
+			    ddrpll & 0xff);
 		return 0;
 	}
 }
 
-static unsigned int chv_mem_freq(struct drm_i915_private *i915)
+static unsigned int chv_mem_freq(struct intel_display *display)
 {
 	u32 val;
 
-	vlv_iosf_sb_get(&i915->drm, BIT(VLV_IOSF_SB_CCK));
-	val = vlv_iosf_sb_read(&i915->drm, VLV_IOSF_SB_CCK, CCK_FUSE_REG);
-	vlv_iosf_sb_put(&i915->drm, BIT(VLV_IOSF_SB_CCK));
+	vlv_iosf_sb_get(display->drm, BIT(VLV_IOSF_SB_CCK));
+	val = vlv_iosf_sb_read(display->drm, VLV_IOSF_SB_CCK, CCK_FUSE_REG);
+	vlv_iosf_sb_put(display->drm, BIT(VLV_IOSF_SB_CCK));
 
 	switch ((val >> 2) & 0x7) {
 	case 3:
@@ -117,13 +121,13 @@ static unsigned int chv_mem_freq(struct drm_i915_private *i915)
 	}
 }
 
-static unsigned int vlv_mem_freq(struct drm_i915_private *i915)
+static unsigned int vlv_mem_freq(struct intel_display *display)
 {
 	u32 val;
 
-	vlv_iosf_sb_get(&i915->drm, BIT(VLV_IOSF_SB_PUNIT));
-	val = vlv_iosf_sb_read(&i915->drm, VLV_IOSF_SB_PUNIT, PUNIT_REG_GPU_FREQ_STS);
-	vlv_iosf_sb_put(&i915->drm, BIT(VLV_IOSF_SB_PUNIT));
+	vlv_iosf_sb_get(display->drm, BIT(VLV_IOSF_SB_PUNIT));
+	val = vlv_iosf_sb_read(display->drm, VLV_IOSF_SB_PUNIT, PUNIT_REG_GPU_FREQ_STS);
+	vlv_iosf_sb_put(display->drm, BIT(VLV_IOSF_SB_PUNIT));
 
 	switch ((val >> 6) & 3) {
 	case 0:
@@ -138,22 +142,23 @@ static unsigned int vlv_mem_freq(struct drm_i915_private *i915)
 	return 0;
 }
 
-unsigned int intel_mem_freq(struct drm_i915_private *i915)
+unsigned int intel_mem_freq(struct intel_display *display)
 {
-	if (IS_PINEVIEW(i915))
-		return pnv_mem_freq(i915);
-	else if (GRAPHICS_VER(i915) == 5)
-		return ilk_mem_freq(i915);
-	else if (IS_CHERRYVIEW(i915))
-		return chv_mem_freq(i915);
-	else if (IS_VALLEYVIEW(i915))
-		return vlv_mem_freq(i915);
+	if (display->platform.pineview)
+		return pnv_mem_freq(display);
+	else if (DISPLAY_VER(display) == 5)
+		return ilk_mem_freq(display);
+	else if (display->platform.cherryview)
+		return chv_mem_freq(display);
+	else if (display->platform.valleyview)
+		return vlv_mem_freq(display);
 	else
 		return 0;
 }
 
-static unsigned int i9xx_fsb_freq(struct drm_i915_private *i915)
+static unsigned int i9xx_fsb_freq(struct intel_display *display)
 {
+	struct drm_i915_private *i915 = to_i915(display->drm);
 	u32 fsb;
 
 	/*
@@ -166,7 +171,7 @@ static unsigned int i9xx_fsb_freq(struct drm_i915_private *i915)
 	 */
 	fsb = intel_uncore_read(&i915->uncore, CLKCFG) & CLKCFG_FSB_MASK;
 
-	if (IS_PINEVIEW(i915) || IS_MOBILE(i915)) {
+	if (display->platform.pineview || display->platform.mobile) {
 		switch (fsb) {
 		case CLKCFG_FSB_400:
 			return 400000;
@@ -207,8 +212,9 @@ static unsigned int i9xx_fsb_freq(struct drm_i915_private *i915)
 	}
 }
 
-static unsigned int ilk_fsb_freq(struct drm_i915_private *dev_priv)
+static unsigned int ilk_fsb_freq(struct intel_display *display)
 {
+	struct drm_i915_private *dev_priv = to_i915(display->drm);
 	u16 fsb;
 
 	fsb = intel_uncore_read16(&dev_priv->uncore, CSIPLL0) & 0x3ff;
@@ -229,33 +235,33 @@ static unsigned int ilk_fsb_freq(struct drm_i915_private *dev_priv)
 	case 0x018:
 		return 6400000;
 	default:
-		drm_dbg(&dev_priv->drm, "unknown fsb frequency 0x%04x\n", fsb);
+		drm_dbg_kms(display->drm, "unknown fsb frequency 0x%04x\n", fsb);
 		return 0;
 	}
 }
 
-unsigned int intel_fsb_freq(struct drm_i915_private *i915)
+unsigned int intel_fsb_freq(struct intel_display *display)
 {
-	if (GRAPHICS_VER(i915) == 5)
-		return ilk_fsb_freq(i915);
-	else if (GRAPHICS_VER(i915) == 3 || GRAPHICS_VER(i915) == 4)
-		return i9xx_fsb_freq(i915);
+	if (DISPLAY_VER(display) == 5)
+		return ilk_fsb_freq(display);
+	else if (IS_DISPLAY_VER(display, 3, 4))
+		return i9xx_fsb_freq(display);
 	else
 		return 0;
 }
 
-static int i915_get_dram_info(struct drm_i915_private *i915, struct dram_info *dram_info)
+static int i915_get_dram_info(struct intel_display *display, struct dram_info *dram_info)
 {
-	dram_info->fsb_freq = intel_fsb_freq(i915);
+	dram_info->fsb_freq = intel_fsb_freq(display);
 	if (dram_info->fsb_freq)
-		drm_dbg(&i915->drm, "FSB frequency: %d kHz\n", dram_info->fsb_freq);
+		drm_dbg_kms(display->drm, "FSB frequency: %d kHz\n", dram_info->fsb_freq);
 
-	dram_info->mem_freq = intel_mem_freq(i915);
+	dram_info->mem_freq = intel_mem_freq(display);
 	if (dram_info->mem_freq)
-		drm_dbg(&i915->drm, "DDR speed: %d kHz\n", dram_info->mem_freq);
+		drm_dbg_kms(display->drm, "DDR speed: %d kHz\n", dram_info->mem_freq);
 
-	if (IS_PINEVIEW(i915))
-		dram_info->type = pnv_dram_type(i915);
+	if (display->platform.pineview)
+		dram_info->type = pnv_dram_type(display);
 
 	return 0;
 }
@@ -391,22 +397,22 @@ skl_is_16gb_dimm(const struct dram_dimm_info *dimm)
 }
 
 static void
-skl_dram_print_dimm_info(struct drm_i915_private *i915,
+skl_dram_print_dimm_info(struct intel_display *display,
 			 struct dram_dimm_info *dimm,
 			 int channel, char dimm_name)
 {
-	drm_dbg_kms(&i915->drm,
+	drm_dbg_kms(display->drm,
 		    "CH%u DIMM %c size: %u Gb, width: X%u, ranks: %u, 16Gb+ DIMMs: %s\n",
 		    channel, dimm_name, dimm->size, dimm->width, dimm->ranks,
 		    str_yes_no(skl_is_16gb_dimm(dimm)));
 }
 
 static void
-skl_dram_get_dimm_l_info(struct drm_i915_private *i915,
+skl_dram_get_dimm_l_info(struct intel_display *display,
 			 struct dram_dimm_info *dimm,
 			 int channel, u32 val)
 {
-	if (GRAPHICS_VER(i915) >= 11) {
+	if (DISPLAY_VER(display) >= 11) {
 		dimm->size = icl_get_dimm_l_size(val);
 		dimm->width = icl_get_dimm_l_width(val);
 		dimm->ranks = icl_get_dimm_l_ranks(val);
@@ -416,15 +422,15 @@ skl_dram_get_dimm_l_info(struct drm_i915_private *i915,
 		dimm->ranks = skl_get_dimm_l_ranks(val);
 	}
 
-	skl_dram_print_dimm_info(i915, dimm, channel, 'L');
+	skl_dram_print_dimm_info(display, dimm, channel, 'L');
 }
 
 static void
-skl_dram_get_dimm_s_info(struct drm_i915_private *i915,
+skl_dram_get_dimm_s_info(struct intel_display *display,
 			 struct dram_dimm_info *dimm,
 			 int channel, u32 val)
 {
-	if (GRAPHICS_VER(i915) >= 11) {
+	if (DISPLAY_VER(display) >= 11) {
 		dimm->size = icl_get_dimm_s_size(val);
 		dimm->width = icl_get_dimm_s_width(val);
 		dimm->ranks = icl_get_dimm_s_ranks(val);
@@ -434,19 +440,19 @@ skl_dram_get_dimm_s_info(struct drm_i915_private *i915,
 		dimm->ranks = skl_get_dimm_s_ranks(val);
 	}
 
-	skl_dram_print_dimm_info(i915, dimm, channel, 'S');
+	skl_dram_print_dimm_info(display, dimm, channel, 'S');
 }
 
 static int
-skl_dram_get_channel_info(struct drm_i915_private *i915,
+skl_dram_get_channel_info(struct intel_display *display,
 			  struct dram_channel_info *ch,
 			  int channel, u32 val)
 {
-	skl_dram_get_dimm_l_info(i915, &ch->dimm_l, channel, val);
-	skl_dram_get_dimm_s_info(i915, &ch->dimm_s, channel, val);
+	skl_dram_get_dimm_l_info(display, &ch->dimm_l, channel, val);
+	skl_dram_get_dimm_s_info(display, &ch->dimm_s, channel, val);
 
 	if (ch->dimm_l.size == 0 && ch->dimm_s.size == 0) {
-		drm_dbg_kms(&i915->drm, "CH%u not populated\n", channel);
+		drm_dbg_kms(display->drm, "CH%u not populated\n", channel);
 		return -EINVAL;
 	}
 
@@ -460,7 +466,7 @@ skl_dram_get_channel_info(struct drm_i915_private *i915,
 	ch->is_16gb_dimm = skl_is_16gb_dimm(&ch->dimm_l) ||
 		skl_is_16gb_dimm(&ch->dimm_s);
 
-	drm_dbg_kms(&i915->drm, "CH%u ranks: %u, 16Gb+ DIMMs: %s\n",
+	drm_dbg_kms(display->drm, "CH%u ranks: %u, 16Gb+ DIMMs: %s\n",
 		    channel, ch->ranks, str_yes_no(ch->is_16gb_dimm));
 
 	return 0;
@@ -476,8 +482,9 @@ intel_is_dram_symmetric(const struct dram_channel_info *ch0,
 }
 
 static int
-skl_dram_get_channels_info(struct drm_i915_private *i915, struct dram_info *dram_info)
+skl_dram_get_channels_info(struct intel_display *display, struct dram_info *dram_info)
 {
+	struct drm_i915_private *i915 = to_i915(display->drm);
 	struct dram_channel_info ch0 = {}, ch1 = {};
 	u32 val;
 	int ret;
@@ -487,23 +494,23 @@ skl_dram_get_channels_info(struct drm_i915_private *i915, struct dram_info *dram
 
 	val = intel_uncore_read(&i915->uncore,
 				SKL_MAD_DIMM_CH0_0_0_0_MCHBAR_MCMAIN);
-	ret = skl_dram_get_channel_info(i915, &ch0, 0, val);
+	ret = skl_dram_get_channel_info(display, &ch0, 0, val);
 	if (ret == 0)
 		dram_info->num_channels++;
 
 	val = intel_uncore_read(&i915->uncore,
 				SKL_MAD_DIMM_CH1_0_0_0_MCHBAR_MCMAIN);
-	ret = skl_dram_get_channel_info(i915, &ch1, 1, val);
+	ret = skl_dram_get_channel_info(display, &ch1, 1, val);
 	if (ret == 0)
 		dram_info->num_channels++;
 
 	if (dram_info->num_channels == 0) {
-		drm_info(&i915->drm, "Number of memory channels is zero\n");
+		drm_info(display->drm, "Number of memory channels is zero\n");
 		return -EINVAL;
 	}
 
 	if (ch0.ranks == 0 && ch1.ranks == 0) {
-		drm_info(&i915->drm, "couldn't get memory rank information\n");
+		drm_info(display->drm, "couldn't get memory rank information\n");
 		return -EINVAL;
 	}
 
@@ -511,18 +518,19 @@ skl_dram_get_channels_info(struct drm_i915_private *i915, struct dram_info *dram
 
 	dram_info->symmetric_memory = intel_is_dram_symmetric(&ch0, &ch1);
 
-	drm_dbg_kms(&i915->drm, "Memory configuration is symmetric? %s\n",
+	drm_dbg_kms(display->drm, "Memory configuration is symmetric? %s\n",
 		    str_yes_no(dram_info->symmetric_memory));
 
-	drm_dbg_kms(&i915->drm, "16Gb+ DIMMs: %s\n",
+	drm_dbg_kms(display->drm, "16Gb+ DIMMs: %s\n",
 		    str_yes_no(dram_info->has_16gb_dimms));
 
 	return 0;
 }
 
 static enum intel_dram_type
-skl_get_dram_type(struct drm_i915_private *i915)
+skl_get_dram_type(struct intel_display *display)
 {
+	struct drm_i915_private *i915 = to_i915(display->drm);
 	u32 val;
 
 	val = intel_uncore_read(&i915->uncore,
@@ -544,13 +552,13 @@ skl_get_dram_type(struct drm_i915_private *i915)
 }
 
 static int
-skl_get_dram_info(struct drm_i915_private *i915, struct dram_info *dram_info)
+skl_get_dram_info(struct intel_display *display, struct dram_info *dram_info)
 {
 	int ret;
 
-	dram_info->type = skl_get_dram_type(i915);
+	dram_info->type = skl_get_dram_type(display);
 
-	ret = skl_dram_get_channels_info(i915, dram_info);
+	ret = skl_dram_get_channels_info(display, dram_info);
 	if (ret)
 		return ret;
 
@@ -635,8 +643,9 @@ static void bxt_get_dimm_info(struct dram_dimm_info *dimm, u32 val)
 	dimm->size = bxt_get_dimm_size(val) * intel_dimm_num_devices(dimm);
 }
 
-static int bxt_get_dram_info(struct drm_i915_private *i915, struct dram_info *dram_info)
+static int bxt_get_dram_info(struct intel_display *display, struct dram_info *dram_info)
 {
+	struct drm_i915_private *i915 = to_i915(display->drm);
 	u32 val;
 	u8 valid_ranks = 0;
 	int i;
@@ -657,11 +666,11 @@ static int bxt_get_dram_info(struct drm_i915_private *i915, struct dram_info *dr
 		bxt_get_dimm_info(&dimm, val);
 		type = bxt_get_dimm_type(val);
 
-		drm_WARN_ON(&i915->drm, type != INTEL_DRAM_UNKNOWN &&
+		drm_WARN_ON(display->drm, type != INTEL_DRAM_UNKNOWN &&
 			    dram_info->type != INTEL_DRAM_UNKNOWN &&
 			    dram_info->type != type);
 
-		drm_dbg_kms(&i915->drm,
+		drm_dbg_kms(display->drm,
 			    "CH%u DIMM size: %u Gb, width: X%u, ranks: %u\n",
 			    i - BXT_D_CR_DRP0_DUNIT_START,
 			    dimm.size, dimm.width, dimm.ranks);
@@ -674,25 +683,25 @@ static int bxt_get_dram_info(struct drm_i915_private *i915, struct dram_info *dr
 	}
 
 	if (dram_info->type == INTEL_DRAM_UNKNOWN || valid_ranks == 0) {
-		drm_info(&i915->drm, "couldn't get memory information\n");
+		drm_info(display->drm, "couldn't get memory information\n");
 		return -EINVAL;
 	}
 
 	return 0;
 }
 
-static int icl_pcode_read_mem_global_info(struct drm_i915_private *dev_priv,
+static int icl_pcode_read_mem_global_info(struct intel_display *display,
 					  struct dram_info *dram_info)
 {
 	u32 val = 0;
 	int ret;
 
-	ret = intel_pcode_read(&dev_priv->drm, ICL_PCODE_MEM_SUBSYSYSTEM_INFO |
+	ret = intel_pcode_read(display->drm, ICL_PCODE_MEM_SUBSYSYSTEM_INFO |
 			       ICL_PCODE_MEM_SS_READ_GLOBAL_INFO, &val, NULL);
 	if (ret)
 		return ret;
 
-	if (GRAPHICS_VER(dev_priv) == 12) {
+	if (DISPLAY_VER(display) == 12) {
 		switch (val & 0xf) {
 		case 0:
 			dram_info->type = INTEL_DRAM_DDR4;
@@ -743,25 +752,25 @@ static int icl_pcode_read_mem_global_info(struct drm_i915_private *dev_priv,
 	return 0;
 }
 
-static int gen11_get_dram_info(struct drm_i915_private *i915, struct dram_info *dram_info)
+static int gen11_get_dram_info(struct intel_display *display, struct dram_info *dram_info)
 {
 	int ret;
 
-	ret = skl_dram_get_channels_info(i915, dram_info);
+	ret = skl_dram_get_channels_info(display, dram_info);
 	if (ret)
 		return ret;
 
-	return icl_pcode_read_mem_global_info(i915, dram_info);
+	return icl_pcode_read_mem_global_info(display, dram_info);
 }
 
-static int gen12_get_dram_info(struct drm_i915_private *i915, struct dram_info *dram_info)
+static int gen12_get_dram_info(struct intel_display *display, struct dram_info *dram_info)
 {
-	return icl_pcode_read_mem_global_info(i915, dram_info);
+	return icl_pcode_read_mem_global_info(display, dram_info);
 }
 
-static int xelpdp_get_dram_info(struct drm_i915_private *i915, struct dram_info *dram_info)
+static int xelpdp_get_dram_info(struct intel_display *display, struct dram_info *dram_info)
 {
-	struct intel_display *display = i915->display;
+	struct drm_i915_private *i915 = to_i915(display->drm);
 	u32 val = intel_uncore_read(&i915->uncore, MTL_MEM_SS_INFO_GLOBAL);
 
 	switch (REG_FIELD_GET(MTL_DDR_TYPE_MASK, val)) {
@@ -784,11 +793,11 @@ static int xelpdp_get_dram_info(struct drm_i915_private *i915, struct dram_info
 		dram_info->type = INTEL_DRAM_LPDDR3;
 		break;
 	case 8:
-		drm_WARN_ON(&i915->drm, !IS_DGFX(i915));
+		drm_WARN_ON(display->drm, !display->platform.dgfx);
 		dram_info->type = INTEL_DRAM_GDDR;
 		break;
 	case 9:
-		drm_WARN_ON(&i915->drm, !IS_DGFX(i915));
+		drm_WARN_ON(display->drm, !display->platform.dgfx);
 		dram_info->type = INTEL_DRAM_GDDR_ECC;
 		break;
 	default:
@@ -806,41 +815,41 @@ static int xelpdp_get_dram_info(struct drm_i915_private *i915, struct dram_info
 	return 0;
 }
 
-int intel_dram_detect(struct drm_i915_private *i915)
+int intel_dram_detect(struct intel_display *display)
 {
-	struct intel_display *display = i915->display;
+	struct drm_i915_private *i915 = to_i915(display->drm);
 	struct dram_info *dram_info;
 	int ret;
 
-	if (IS_DG2(i915) || !intel_display_device_present(display))
+	if (display->platform.dg2 || !HAS_DISPLAY(display))
 		return 0;
 
-	dram_info = drmm_kzalloc(&i915->drm, sizeof(*dram_info), GFP_KERNEL);
+	dram_info = drmm_kzalloc(display->drm, sizeof(*dram_info), GFP_KERNEL);
 	if (!dram_info)
 		return -ENOMEM;
 
 	i915->dram_info = dram_info;
 
 	if (DISPLAY_VER(display) >= 14)
-		ret = xelpdp_get_dram_info(i915, dram_info);
-	else if (GRAPHICS_VER(i915) >= 12)
-		ret = gen12_get_dram_info(i915, dram_info);
-	else if (GRAPHICS_VER(i915) >= 11)
-		ret = gen11_get_dram_info(i915, dram_info);
-	else if (IS_BROXTON(i915) || IS_GEMINILAKE(i915))
-		ret = bxt_get_dram_info(i915, dram_info);
-	else if (GRAPHICS_VER(i915) >= 9)
-		ret = skl_get_dram_info(i915, dram_info);
+		ret = xelpdp_get_dram_info(display, dram_info);
+	else if (DISPLAY_VER(display) >= 12)
+		ret = gen12_get_dram_info(display, dram_info);
+	else if (DISPLAY_VER(display) >= 11)
+		ret = gen11_get_dram_info(display, dram_info);
+	else if (display->platform.broxton || display->platform.geminilake)
+		ret = bxt_get_dram_info(display, dram_info);
+	else if (DISPLAY_VER(display) >= 9)
+		ret = skl_get_dram_info(display, dram_info);
 	else
-		ret = i915_get_dram_info(i915, dram_info);
+		ret = i915_get_dram_info(display, dram_info);
 
-	drm_dbg_kms(&i915->drm, "DRAM type: %s\n",
+	drm_dbg_kms(display->drm, "DRAM type: %s\n",
 		    intel_dram_type_str(dram_info->type));
 
-	drm_dbg_kms(&i915->drm, "DRAM channels: %u\n", dram_info->num_channels);
+	drm_dbg_kms(display->drm, "DRAM channels: %u\n", dram_info->num_channels);
 
-	drm_dbg_kms(&i915->drm, "Num QGV points %u\n", dram_info->num_qgv_points);
-	drm_dbg_kms(&i915->drm, "Num PSF GV points %u\n", dram_info->num_psf_gv_points);
+	drm_dbg_kms(display->drm, "Num QGV points %u\n", dram_info->num_qgv_points);
+	drm_dbg_kms(display->drm, "Num PSF GV points %u\n", dram_info->num_psf_gv_points);
 
 	/* TODO: Do we want to abort probe on dram detection failures? */
 	if (ret)
@@ -854,9 +863,9 @@ int intel_dram_detect(struct drm_i915_private *i915)
  * checks, and prefer not dereferencing on platforms that shouldn't look at dram
  * info, to catch accidental and incorrect dram info checks.
  */
-const struct dram_info *intel_dram_info(struct drm_device *drm)
+const struct dram_info *intel_dram_info(struct intel_display *display)
 {
-	struct drm_i915_private *i915 = to_i915(drm);
+	struct drm_i915_private *i915 = to_i915(display->drm);
 
 	return i915->dram_info;
 }
diff --git a/drivers/gpu/drm/i915/display/intel_dram.h b/drivers/gpu/drm/i915/display/intel_dram.h
index 58aaf2f91afe..5800b7b4e614 100644
--- a/drivers/gpu/drm/i915/display/intel_dram.h
+++ b/drivers/gpu/drm/i915/display/intel_dram.h
@@ -8,8 +8,7 @@
 
 #include <linux/types.h>
 
-struct drm_i915_private;
-struct drm_device;
+struct intel_display;
 
 struct dram_info {
 	enum intel_dram_type {
@@ -35,10 +34,10 @@ struct dram_info {
 	bool has_16gb_dimms;
 };
 
-int intel_dram_detect(struct drm_i915_private *i915);
-unsigned int intel_fsb_freq(struct drm_i915_private *i915);
-unsigned int intel_mem_freq(struct drm_i915_private *i915);
-const struct dram_info *intel_dram_info(struct drm_device *drm);
+int intel_dram_detect(struct intel_display *display);
+unsigned int intel_fsb_freq(struct intel_display *display);
+unsigned int intel_mem_freq(struct intel_display *display);
+const struct dram_info *intel_dram_info(struct intel_display *display);
 const char *intel_dram_type_str(enum intel_dram_type type);
 
 #endif /* __INTEL_DRAM_H__ */
diff --git a/drivers/gpu/drm/i915/display/skl_watermark.c b/drivers/gpu/drm/i915/display/skl_watermark.c
index a33e0cec8cba..7964cfffdaae 100644
--- a/drivers/gpu/drm/i915/display/skl_watermark.c
+++ b/drivers/gpu/drm/i915/display/skl_watermark.c
@@ -3125,7 +3125,7 @@ static bool skl_watermark_ipc_can_enable(struct intel_display *display)
 	if (display->platform.kabylake ||
 	    display->platform.coffeelake ||
 	    display->platform.cometlake) {
-		const struct dram_info *dram_info = intel_dram_info(display->drm);
+		const struct dram_info *dram_info = intel_dram_info(display);
 
 		return dram_info->symmetric_memory;
 	}
@@ -3169,7 +3169,7 @@ static void increase_wm_latency(struct intel_display *display, int inc)
 
 static bool need_16gb_dimm_wa(struct intel_display *display)
 {
-	const struct dram_info *dram_info = intel_dram_info(display->drm);
+	const struct dram_info *dram_info = intel_dram_info(display);
 
 	return (display->platform.skylake || display->platform.kabylake ||
 		display->platform.coffeelake || display->platform.cometlake ||
diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
index d1f573f1b6cc..2369e2b55096 100644
--- a/drivers/gpu/drm/i915/i915_driver.c
+++ b/drivers/gpu/drm/i915/i915_driver.c
@@ -574,7 +574,7 @@ static int i915_driver_hw_probe(struct drm_i915_private *dev_priv)
 	 * Fill the dram structure to get the system dram info. This will be
 	 * used for memory latency calculation.
 	 */
-	ret = intel_dram_detect(dev_priv);
+	ret = intel_dram_detect(display);
 	if (ret)
 		goto err_opregion;
 
diff --git a/drivers/gpu/drm/xe/display/xe_display.c b/drivers/gpu/drm/xe/display/xe_display.c
index 9b1d21e03df0..793115077615 100644
--- a/drivers/gpu/drm/xe/display/xe_display.c
+++ b/drivers/gpu/drm/xe/display/xe_display.c
@@ -122,7 +122,7 @@ int xe_display_init_early(struct xe_device *xe)
 	 * Fill the dram structure to get the system dram info. This will be
 	 * used for memory latency calculation.
 	 */
-	err = intel_dram_detect(xe);
+	err = intel_dram_detect(display);
 	if (err)
 		goto err_opregion;
 
-- 
2.47.3


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

* [PATCH v2 06/13] drm/i915: move dram_info to struct intel_display
  2025-11-19 18:52 [PATCH v2 00/13] drm/i915: dissolve soc/ Jani Nikula
                   ` (4 preceding siblings ...)
  2025-11-19 18:52 ` [PATCH v2 05/13] drm/i915/dram: convert to struct intel_display Jani Nikula
@ 2025-11-19 18:52 ` Jani Nikula
  2025-11-19 18:52 ` [PATCH v2 07/13] drm/i915: move intel_rom.[ch] from soc/ to display/ Jani Nikula
                   ` (17 subsequent siblings)
  23 siblings, 0 replies; 30+ messages in thread
From: Jani Nikula @ 2025-11-19 18:52 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: jani.nikula

With all of dram code under display, also move dram_info to struct
intel_display.

This further cleans up struct xe_device from display related members.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/display/intel_display_core.h | 4 ++++
 drivers/gpu/drm/i915/display/intel_dram.c         | 7 ++-----
 drivers/gpu/drm/i915/i915_drv.h                   | 3 ---
 drivers/gpu/drm/xe/xe_device_types.h              | 2 --
 4 files changed, 6 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display_core.h b/drivers/gpu/drm/i915/display/intel_display_core.h
index 9b8414b77c15..9b36654b593d 100644
--- a/drivers/gpu/drm/i915/display/intel_display_core.h
+++ b/drivers/gpu/drm/i915/display/intel_display_core.h
@@ -394,6 +394,10 @@ struct intel_display {
 		u32 mmio_base;
 	} dsi;
 
+	struct {
+		const struct dram_info *info;
+	} dram;
+
 	struct {
 		/* list of fbdev register on this device */
 		struct intel_fbdev *fbdev;
diff --git a/drivers/gpu/drm/i915/display/intel_dram.c b/drivers/gpu/drm/i915/display/intel_dram.c
index 3dfcc7938740..b078fd9fe3c0 100644
--- a/drivers/gpu/drm/i915/display/intel_dram.c
+++ b/drivers/gpu/drm/i915/display/intel_dram.c
@@ -817,7 +817,6 @@ static int xelpdp_get_dram_info(struct intel_display *display, struct dram_info
 
 int intel_dram_detect(struct intel_display *display)
 {
-	struct drm_i915_private *i915 = to_i915(display->drm);
 	struct dram_info *dram_info;
 	int ret;
 
@@ -828,7 +827,7 @@ int intel_dram_detect(struct intel_display *display)
 	if (!dram_info)
 		return -ENOMEM;
 
-	i915->dram_info = dram_info;
+	display->dram.info = dram_info;
 
 	if (DISPLAY_VER(display) >= 14)
 		ret = xelpdp_get_dram_info(display, dram_info);
@@ -865,7 +864,5 @@ int intel_dram_detect(struct intel_display *display)
  */
 const struct dram_info *intel_dram_info(struct intel_display *display)
 {
-	struct drm_i915_private *i915 = to_i915(display->drm);
-
-	return i915->dram_info;
+	return display->dram.info;
 }
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 5381a934a671..96af7776bee5 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -60,7 +60,6 @@
 #include "intel_step.h"
 #include "intel_uncore.h"
 
-struct dram_info;
 struct drm_i915_clock_gating_funcs;
 struct intel_display;
 struct intel_pxp;
@@ -279,8 +278,6 @@ struct drm_i915_private {
 	u32 suspend_count;
 	struct vlv_s0ix_state *vlv_s0ix_state;
 
-	const struct dram_info *dram_info;
-
 	struct intel_runtime_pm runtime_pm;
 
 	struct i915_perf perf;
diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
index a072c020b84b..6ce3247d1bd8 100644
--- a/drivers/gpu/drm/xe/xe_device_types.h
+++ b/drivers/gpu/drm/xe/xe_device_types.h
@@ -35,7 +35,6 @@
 #define TEST_VM_OPS_ERROR
 #endif
 
-struct dram_info;
 struct intel_display;
 struct intel_dg_nvm_dev;
 struct xe_ggtt;
@@ -648,7 +647,6 @@ struct xe_device {
 	 * drm_i915_private during build. After cleanup these should go away,
 	 * migrating to the right sub-structs
 	 */
-	const struct dram_info *dram_info;
 
 	struct intel_uncore {
 		spinlock_t lock;
-- 
2.47.3


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

* [PATCH v2 07/13] drm/i915: move intel_rom.[ch] from soc/ to display/
  2025-11-19 18:52 [PATCH v2 00/13] drm/i915: dissolve soc/ Jani Nikula
                   ` (5 preceding siblings ...)
  2025-11-19 18:52 ` [PATCH v2 06/13] drm/i915: move dram_info " Jani Nikula
@ 2025-11-19 18:52 ` Jani Nikula
  2025-11-19 18:52 ` [PATCH v2 08/13] drm/xe: remove remaining platform checks from compat i915_drv.h Jani Nikula
                   ` (16 subsequent siblings)
  23 siblings, 0 replies; 30+ messages in thread
From: Jani Nikula @ 2025-11-19 18:52 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: jani.nikula

The sole user of intel_rom.[ch] has always been in display. Move them
under display.

This allows us to remove the compat soc/intel_rom.h from xe, as well as
the Makefile rules to build anything from soc/.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/Makefile                          |  4 ++--
 drivers/gpu/drm/i915/display/intel_bios.c              |  3 +--
 drivers/gpu/drm/i915/{soc => display}/intel_rom.c      |  0
 drivers/gpu/drm/i915/{soc => display}/intel_rom.h      |  0
 drivers/gpu/drm/xe/Makefile                            | 10 +---------
 drivers/gpu/drm/xe/compat-i915-headers/soc/intel_rom.h |  6 ------
 6 files changed, 4 insertions(+), 19 deletions(-)
 rename drivers/gpu/drm/i915/{soc => display}/intel_rom.c (100%)
 rename drivers/gpu/drm/i915/{soc => display}/intel_rom.h (100%)
 delete mode 100644 drivers/gpu/drm/xe/compat-i915-headers/soc/intel_rom.h

diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
index 838c8e58e4a2..12f948f0062c 100644
--- a/drivers/gpu/drm/i915/Makefile
+++ b/drivers/gpu/drm/i915/Makefile
@@ -58,8 +58,7 @@ i915-y += \
 
 # core peripheral code
 i915-y += \
-	soc/intel_gmch.o \
-	soc/intel_rom.o
+	soc/intel_gmch.o
 
 # core library code
 i915-y += \
@@ -303,6 +302,7 @@ i915-y += \
 	display/intel_pmdemand.o \
 	display/intel_psr.o \
 	display/intel_quirks.o \
+	display/intel_rom.o \
 	display/intel_sbi.o \
 	display/intel_sprite.o \
 	display/intel_sprite_uapi.o \
diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c
index 4b41068e9e35..a639c5eb3245 100644
--- a/drivers/gpu/drm/i915/display/intel_bios.c
+++ b/drivers/gpu/drm/i915/display/intel_bios.c
@@ -34,14 +34,13 @@
 #include <drm/drm_fixed.h>
 #include <drm/drm_print.h>
 
-#include "soc/intel_rom.h"
-
 #include "intel_display.h"
 #include "intel_display_core.h"
 #include "intel_display_rpm.h"
 #include "intel_display_types.h"
 #include "intel_display_utils.h"
 #include "intel_gmbus.h"
+#include "intel_rom.h"
 
 #define _INTEL_BIOS_PRIVATE
 #include "intel_vbt_defs.h"
diff --git a/drivers/gpu/drm/i915/soc/intel_rom.c b/drivers/gpu/drm/i915/display/intel_rom.c
similarity index 100%
rename from drivers/gpu/drm/i915/soc/intel_rom.c
rename to drivers/gpu/drm/i915/display/intel_rom.c
diff --git a/drivers/gpu/drm/i915/soc/intel_rom.h b/drivers/gpu/drm/i915/display/intel_rom.h
similarity index 100%
rename from drivers/gpu/drm/i915/soc/intel_rom.h
rename to drivers/gpu/drm/i915/display/intel_rom.h
diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile
index 85642340a8fa..9331212117a1 100644
--- a/drivers/gpu/drm/xe/Makefile
+++ b/drivers/gpu/drm/xe/Makefile
@@ -195,11 +195,6 @@ subdir-ccflags-$(CONFIG_DRM_XE_DISPLAY) += \
 	-I$(srctree)/drivers/gpu/drm/i915/display/ \
 	-Ddrm_i915_private=xe_device
 
-# Rule to build SOC code shared with i915
-$(obj)/i915-soc/%.o: $(srctree)/drivers/gpu/drm/i915/soc/%.c FORCE
-	$(call cmd,force_checksrc)
-	$(call if_changed_rule,cc_o_c)
-
 # Rule to build display code shared with i915
 $(obj)/i915-display/%.o: $(srctree)/drivers/gpu/drm/i915/display/%.c FORCE
 	$(call cmd,force_checksrc)
@@ -222,10 +217,6 @@ xe-$(CONFIG_DRM_XE_DISPLAY) += \
 	display/xe_stolen.o \
 	display/xe_tdf.o
 
-# SOC code shared with i915
-xe-$(CONFIG_DRM_XE_DISPLAY) += \
-	i915-soc/intel_rom.o
-
 # Display code shared with i915
 xe-$(CONFIG_DRM_XE_DISPLAY) += \
 	i915-display/icl_dsi.o \
@@ -312,6 +303,7 @@ xe-$(CONFIG_DRM_XE_DISPLAY) += \
 	i915-display/intel_psr.o \
 	i915-display/intel_qp_tables.o \
 	i915-display/intel_quirks.o \
+	i915-display/intel_rom.o \
 	i915-display/intel_snps_hdmi_pll.o \
 	i915-display/intel_snps_phy.o \
 	i915-display/intel_tc.o \
diff --git a/drivers/gpu/drm/xe/compat-i915-headers/soc/intel_rom.h b/drivers/gpu/drm/xe/compat-i915-headers/soc/intel_rom.h
deleted file mode 100644
index 05cbfb697b2b..000000000000
--- a/drivers/gpu/drm/xe/compat-i915-headers/soc/intel_rom.h
+++ /dev/null
@@ -1,6 +0,0 @@
-/* SPDX-License-Identifier: MIT */
-/*
- * Copyright © 2024 Intel Corporation
- */
-
-#include "../../../i915/soc/intel_rom.h"
-- 
2.47.3


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

* [PATCH v2 08/13] drm/xe: remove remaining platform checks from compat i915_drv.h
  2025-11-19 18:52 [PATCH v2 00/13] drm/i915: dissolve soc/ Jani Nikula
                   ` (6 preceding siblings ...)
  2025-11-19 18:52 ` [PATCH v2 07/13] drm/i915: move intel_rom.[ch] from soc/ to display/ Jani Nikula
@ 2025-11-19 18:52 ` Jani Nikula
  2025-11-19 18:52 ` [PATCH v2 09/13] drm/i915/gmch: split out i915_gmch.[ch] from soc Jani Nikula
                   ` (15 subsequent siblings)
  23 siblings, 0 replies; 30+ messages in thread
From: Jani Nikula @ 2025-11-19 18:52 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: jani.nikula

With xe no longer building anything from soc/, we can remove the compat
platform checks from i915_drv.h, reducing the file to just the to_i915()
pointer conversion helper.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h | 15 ---------------
 1 file changed, 15 deletions(-)

diff --git a/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h b/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
index 3e79a74ff7de..04d1925f9a19 100644
--- a/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
+++ b/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
@@ -19,19 +19,4 @@ static inline struct drm_i915_private *to_i915(const struct drm_device *dev)
 	return container_of(dev, struct drm_i915_private, drm);
 }
 
-/* compat platform checks only for soc/ usage */
-#define IS_PLATFORM(xe, x) ((xe)->info.platform == x)
-#define IS_I915G(dev_priv)	(dev_priv && 0)
-#define IS_I915GM(dev_priv)	(dev_priv && 0)
-#define IS_PINEVIEW(dev_priv)	(dev_priv && 0)
-#define IS_VALLEYVIEW(dev_priv)	(dev_priv && 0)
-#define IS_CHERRYVIEW(dev_priv)	(dev_priv && 0)
-#define IS_HASWELL(dev_priv)	(dev_priv && 0)
-#define IS_BROADWELL(dev_priv)	(dev_priv && 0)
-#define IS_BROXTON(dev_priv)	(dev_priv && 0)
-#define IS_GEMINILAKE(dev_priv)	(dev_priv && 0)
-#define IS_DG2(dev_priv)	IS_PLATFORM(dev_priv, XE_DG2)
-
-#define IS_MOBILE(xe) (xe && 0)
-
 #endif
-- 
2.47.3


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

* [PATCH v2 09/13] drm/i915/gmch: split out i915_gmch.[ch] from soc
  2025-11-19 18:52 [PATCH v2 00/13] drm/i915: dissolve soc/ Jani Nikula
                   ` (7 preceding siblings ...)
  2025-11-19 18:52 ` [PATCH v2 08/13] drm/xe: remove remaining platform checks from compat i915_drv.h Jani Nikula
@ 2025-11-19 18:52 ` Jani Nikula
  2025-11-19 18:52 ` [PATCH v2 10/13] drm/i915/gmch: switch to use pci_bus_{read, write}_config_word() Jani Nikula
                   ` (14 subsequent siblings)
  23 siblings, 0 replies; 30+ messages in thread
From: Jani Nikula @ 2025-11-19 18:52 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: jani.nikula

Most of the soc/intel_gmch.[ch] code is i915 core specific. Split it out
to i915_gmch.[ch].

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/Makefile         |   1 +
 drivers/gpu/drm/i915/i915_driver.c    |  11 +-
 drivers/gpu/drm/i915/i915_gmch.c      | 141 ++++++++++++++++++++++++++
 drivers/gpu/drm/i915/i915_gmch.h      |  13 +++
 drivers/gpu/drm/i915/soc/intel_gmch.c | 132 ------------------------
 drivers/gpu/drm/i915/soc/intel_gmch.h |   3 -
 6 files changed, 160 insertions(+), 141 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/i915_gmch.c
 create mode 100644 drivers/gpu/drm/i915/i915_gmch.h

diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
index 12f948f0062c..c591e5ba47f9 100644
--- a/drivers/gpu/drm/i915/Makefile
+++ b/drivers/gpu/drm/i915/Makefile
@@ -30,6 +30,7 @@ i915-y += \
 	i915_edram.o \
 	i915_freq.o \
 	i915_getparam.o \
+	i915_gmch.o \
 	i915_ioctl.o \
 	i915_irq.o \
 	i915_mitigations.o \
diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
index 2369e2b55096..2e837865f829 100644
--- a/drivers/gpu/drm/i915/i915_driver.c
+++ b/drivers/gpu/drm/i915/i915_driver.c
@@ -88,8 +88,6 @@
 #include "pxp/intel_pxp_debugfs.h"
 #include "pxp/intel_pxp_pm.h"
 
-#include "soc/intel_gmch.h"
-
 #include "i915_debugfs.h"
 #include "i915_driver.h"
 #include "i915_drm_client.h"
@@ -97,6 +95,7 @@
 #include "i915_edram.h"
 #include "i915_file_private.h"
 #include "i915_getparam.h"
+#include "i915_gmch.h"
 #include "i915_hwmon.h"
 #include "i915_ioc32.h"
 #include "i915_ioctl.h"
@@ -323,7 +322,7 @@ static int i915_driver_mmio_probe(struct drm_i915_private *dev_priv)
 	if (i915_inject_probe_failure(dev_priv))
 		return -ENODEV;
 
-	ret = intel_gmch_bridge_setup(dev_priv);
+	ret = i915_gmch_bridge_setup(dev_priv);
 	if (ret < 0)
 		return ret;
 
@@ -340,7 +339,7 @@ static int i915_driver_mmio_probe(struct drm_i915_private *dev_priv)
 	}
 
 	/* Try to make sure MCHBAR is enabled before poking at it */
-	intel_gmch_bar_setup(dev_priv);
+	i915_gmch_bar_setup(dev_priv);
 	intel_device_info_runtime_init(dev_priv);
 	intel_display_device_info_runtime_init(display);
 
@@ -356,7 +355,7 @@ static int i915_driver_mmio_probe(struct drm_i915_private *dev_priv)
 	return 0;
 
 err_uncore:
-	intel_gmch_bar_teardown(dev_priv);
+	i915_gmch_bar_teardown(dev_priv);
 
 	return ret;
 }
@@ -367,7 +366,7 @@ static int i915_driver_mmio_probe(struct drm_i915_private *dev_priv)
  */
 static void i915_driver_mmio_release(struct drm_i915_private *dev_priv)
 {
-	intel_gmch_bar_teardown(dev_priv);
+	i915_gmch_bar_teardown(dev_priv);
 }
 
 /**
diff --git a/drivers/gpu/drm/i915/i915_gmch.c b/drivers/gpu/drm/i915/i915_gmch.c
new file mode 100644
index 000000000000..2d55831b3c58
--- /dev/null
+++ b/drivers/gpu/drm/i915/i915_gmch.c
@@ -0,0 +1,141 @@
+// SPDX-License-Identifier: MIT
+/* Copyright © 2025 Intel Corporation */
+
+#include <linux/pnp.h>
+
+#include <drm/drm_managed.h>
+#include <drm/drm_print.h>
+
+#include "i915_drv.h"
+#include "i915_gmch.h"
+#include "intel_pci_config.h"
+
+static void i915_gmch_bridge_release(struct drm_device *dev, void *bridge)
+{
+	pci_dev_put(bridge);
+}
+
+int i915_gmch_bridge_setup(struct drm_i915_private *i915)
+{
+	int domain = pci_domain_nr(to_pci_dev(i915->drm.dev)->bus);
+
+	i915->gmch.pdev = pci_get_domain_bus_and_slot(domain, 0, PCI_DEVFN(0, 0));
+	if (!i915->gmch.pdev) {
+		drm_err(&i915->drm, "bridge device not found\n");
+		return -EIO;
+	}
+
+	return drmm_add_action_or_reset(&i915->drm, i915_gmch_bridge_release,
+					i915->gmch.pdev);
+}
+
+static int mchbar_reg(struct drm_i915_private *i915)
+{
+	return GRAPHICS_VER(i915) >= 4 ? MCHBAR_I965 : MCHBAR_I915;
+}
+
+/* Allocate space for the MCH regs if needed, return nonzero on error */
+static int
+intel_alloc_mchbar_resource(struct drm_i915_private *i915)
+{
+	u32 temp_lo, temp_hi = 0;
+	u64 mchbar_addr;
+	int ret;
+
+	if (GRAPHICS_VER(i915) >= 4)
+		pci_read_config_dword(i915->gmch.pdev, mchbar_reg(i915) + 4, &temp_hi);
+	pci_read_config_dword(i915->gmch.pdev, mchbar_reg(i915), &temp_lo);
+	mchbar_addr = ((u64)temp_hi << 32) | temp_lo;
+
+	/* If ACPI doesn't have it, assume we need to allocate it ourselves */
+	if (IS_ENABLED(CONFIG_PNP) && mchbar_addr &&
+	    pnp_range_reserved(mchbar_addr, mchbar_addr + MCHBAR_SIZE))
+		return 0;
+
+	/* Get some space for it */
+	i915->gmch.mch_res.name = "i915 MCHBAR";
+	i915->gmch.mch_res.flags = IORESOURCE_MEM;
+	ret = pci_bus_alloc_resource(i915->gmch.pdev->bus,
+				     &i915->gmch.mch_res,
+				     MCHBAR_SIZE, MCHBAR_SIZE,
+				     PCIBIOS_MIN_MEM,
+				     0, pcibios_align_resource,
+				     i915->gmch.pdev);
+	if (ret) {
+		drm_dbg(&i915->drm, "failed bus alloc: %d\n", ret);
+		i915->gmch.mch_res.start = 0;
+		return ret;
+	}
+
+	if (GRAPHICS_VER(i915) >= 4)
+		pci_write_config_dword(i915->gmch.pdev, mchbar_reg(i915) + 4,
+				       upper_32_bits(i915->gmch.mch_res.start));
+
+	pci_write_config_dword(i915->gmch.pdev, mchbar_reg(i915),
+			       lower_32_bits(i915->gmch.mch_res.start));
+	return 0;
+}
+
+/* Setup MCHBAR if possible, return true if we should disable it again */
+void i915_gmch_bar_setup(struct drm_i915_private *i915)
+{
+	u32 temp;
+	bool enabled;
+
+	if (IS_VALLEYVIEW(i915) || IS_CHERRYVIEW(i915))
+		return;
+
+	i915->gmch.mchbar_need_disable = false;
+
+	if (IS_I915G(i915) || IS_I915GM(i915)) {
+		pci_read_config_dword(i915->gmch.pdev, DEVEN, &temp);
+		enabled = !!(temp & DEVEN_MCHBAR_EN);
+	} else {
+		pci_read_config_dword(i915->gmch.pdev, mchbar_reg(i915), &temp);
+		enabled = temp & 1;
+	}
+
+	/* If it's already enabled, don't have to do anything */
+	if (enabled)
+		return;
+
+	if (intel_alloc_mchbar_resource(i915))
+		return;
+
+	i915->gmch.mchbar_need_disable = true;
+
+	/* Space is allocated or reserved, so enable it. */
+	if (IS_I915G(i915) || IS_I915GM(i915)) {
+		pci_write_config_dword(i915->gmch.pdev, DEVEN,
+				       temp | DEVEN_MCHBAR_EN);
+	} else {
+		pci_read_config_dword(i915->gmch.pdev, mchbar_reg(i915), &temp);
+		pci_write_config_dword(i915->gmch.pdev, mchbar_reg(i915), temp | 1);
+	}
+}
+
+void i915_gmch_bar_teardown(struct drm_i915_private *i915)
+{
+	if (i915->gmch.mchbar_need_disable) {
+		if (IS_I915G(i915) || IS_I915GM(i915)) {
+			u32 deven_val;
+
+			pci_read_config_dword(i915->gmch.pdev, DEVEN,
+					      &deven_val);
+			deven_val &= ~DEVEN_MCHBAR_EN;
+			pci_write_config_dword(i915->gmch.pdev, DEVEN,
+					       deven_val);
+		} else {
+			u32 mchbar_val;
+
+			pci_read_config_dword(i915->gmch.pdev, mchbar_reg(i915),
+					      &mchbar_val);
+			mchbar_val &= ~1;
+			pci_write_config_dword(i915->gmch.pdev, mchbar_reg(i915),
+					       mchbar_val);
+		}
+	}
+
+	if (i915->gmch.mch_res.start)
+		release_resource(&i915->gmch.mch_res);
+}
diff --git a/drivers/gpu/drm/i915/i915_gmch.h b/drivers/gpu/drm/i915/i915_gmch.h
new file mode 100644
index 000000000000..3ae50bef04ea
--- /dev/null
+++ b/drivers/gpu/drm/i915/i915_gmch.h
@@ -0,0 +1,13 @@
+/* SPDX-License-Identifier: MIT */
+/* Copyright © 2025 Intel Corporation */
+
+#ifndef __I915_GMCH_H__
+#define __I915_GMCH_H__
+
+struct drm_i915_private;
+
+int i915_gmch_bridge_setup(struct drm_i915_private *i915);
+void i915_gmch_bar_setup(struct drm_i915_private *i915);
+void i915_gmch_bar_teardown(struct drm_i915_private *i915);
+
+#endif /* __I915_GMCH_H__ */
diff --git a/drivers/gpu/drm/i915/soc/intel_gmch.c b/drivers/gpu/drm/i915/soc/intel_gmch.c
index 271da30c8290..30f489417064 100644
--- a/drivers/gpu/drm/i915/soc/intel_gmch.c
+++ b/drivers/gpu/drm/i915/soc/intel_gmch.c
@@ -4,10 +4,8 @@
  */
 
 #include <linux/pci.h>
-#include <linux/pnp.h>
 #include <linux/vgaarb.h>
 
-#include <drm/drm_managed.h>
 #include <drm/drm_print.h>
 #include <drm/intel/i915_drm.h>
 
@@ -17,136 +15,6 @@
 #include "intel_gmch.h"
 #include "intel_pci_config.h"
 
-static void intel_gmch_bridge_release(struct drm_device *dev, void *bridge)
-{
-	pci_dev_put(bridge);
-}
-
-int intel_gmch_bridge_setup(struct drm_i915_private *i915)
-{
-	int domain = pci_domain_nr(to_pci_dev(i915->drm.dev)->bus);
-
-	i915->gmch.pdev = pci_get_domain_bus_and_slot(domain, 0, PCI_DEVFN(0, 0));
-	if (!i915->gmch.pdev) {
-		drm_err(&i915->drm, "bridge device not found\n");
-		return -EIO;
-	}
-
-	return drmm_add_action_or_reset(&i915->drm, intel_gmch_bridge_release,
-					i915->gmch.pdev);
-}
-
-static int mchbar_reg(struct drm_i915_private *i915)
-{
-	return GRAPHICS_VER(i915) >= 4 ? MCHBAR_I965 : MCHBAR_I915;
-}
-
-/* Allocate space for the MCH regs if needed, return nonzero on error */
-static int
-intel_alloc_mchbar_resource(struct drm_i915_private *i915)
-{
-	u32 temp_lo, temp_hi = 0;
-	u64 mchbar_addr;
-	int ret;
-
-	if (GRAPHICS_VER(i915) >= 4)
-		pci_read_config_dword(i915->gmch.pdev, mchbar_reg(i915) + 4, &temp_hi);
-	pci_read_config_dword(i915->gmch.pdev, mchbar_reg(i915), &temp_lo);
-	mchbar_addr = ((u64)temp_hi << 32) | temp_lo;
-
-	/* If ACPI doesn't have it, assume we need to allocate it ourselves */
-	if (IS_ENABLED(CONFIG_PNP) && mchbar_addr &&
-	    pnp_range_reserved(mchbar_addr, mchbar_addr + MCHBAR_SIZE))
-		return 0;
-
-	/* Get some space for it */
-	i915->gmch.mch_res.name = "i915 MCHBAR";
-	i915->gmch.mch_res.flags = IORESOURCE_MEM;
-	ret = pci_bus_alloc_resource(i915->gmch.pdev->bus,
-				     &i915->gmch.mch_res,
-				     MCHBAR_SIZE, MCHBAR_SIZE,
-				     PCIBIOS_MIN_MEM,
-				     0, pcibios_align_resource,
-				     i915->gmch.pdev);
-	if (ret) {
-		drm_dbg(&i915->drm, "failed bus alloc: %d\n", ret);
-		i915->gmch.mch_res.start = 0;
-		return ret;
-	}
-
-	if (GRAPHICS_VER(i915) >= 4)
-		pci_write_config_dword(i915->gmch.pdev, mchbar_reg(i915) + 4,
-				       upper_32_bits(i915->gmch.mch_res.start));
-
-	pci_write_config_dword(i915->gmch.pdev, mchbar_reg(i915),
-			       lower_32_bits(i915->gmch.mch_res.start));
-	return 0;
-}
-
-/* Setup MCHBAR if possible, return true if we should disable it again */
-void intel_gmch_bar_setup(struct drm_i915_private *i915)
-{
-	u32 temp;
-	bool enabled;
-
-	if (IS_VALLEYVIEW(i915) || IS_CHERRYVIEW(i915))
-		return;
-
-	i915->gmch.mchbar_need_disable = false;
-
-	if (IS_I915G(i915) || IS_I915GM(i915)) {
-		pci_read_config_dword(i915->gmch.pdev, DEVEN, &temp);
-		enabled = !!(temp & DEVEN_MCHBAR_EN);
-	} else {
-		pci_read_config_dword(i915->gmch.pdev, mchbar_reg(i915), &temp);
-		enabled = temp & 1;
-	}
-
-	/* If it's already enabled, don't have to do anything */
-	if (enabled)
-		return;
-
-	if (intel_alloc_mchbar_resource(i915))
-		return;
-
-	i915->gmch.mchbar_need_disable = true;
-
-	/* Space is allocated or reserved, so enable it. */
-	if (IS_I915G(i915) || IS_I915GM(i915)) {
-		pci_write_config_dword(i915->gmch.pdev, DEVEN,
-				       temp | DEVEN_MCHBAR_EN);
-	} else {
-		pci_read_config_dword(i915->gmch.pdev, mchbar_reg(i915), &temp);
-		pci_write_config_dword(i915->gmch.pdev, mchbar_reg(i915), temp | 1);
-	}
-}
-
-void intel_gmch_bar_teardown(struct drm_i915_private *i915)
-{
-	if (i915->gmch.mchbar_need_disable) {
-		if (IS_I915G(i915) || IS_I915GM(i915)) {
-			u32 deven_val;
-
-			pci_read_config_dword(i915->gmch.pdev, DEVEN,
-					      &deven_val);
-			deven_val &= ~DEVEN_MCHBAR_EN;
-			pci_write_config_dword(i915->gmch.pdev, DEVEN,
-					       deven_val);
-		} else {
-			u32 mchbar_val;
-
-			pci_read_config_dword(i915->gmch.pdev, mchbar_reg(i915),
-					      &mchbar_val);
-			mchbar_val &= ~1;
-			pci_write_config_dword(i915->gmch.pdev, mchbar_reg(i915),
-					       mchbar_val);
-		}
-	}
-
-	if (i915->gmch.mch_res.start)
-		release_resource(&i915->gmch.mch_res);
-}
-
 int intel_gmch_vga_set_state(struct drm_i915_private *i915, bool enable_decode)
 {
 	struct intel_display *display = i915->display;
diff --git a/drivers/gpu/drm/i915/soc/intel_gmch.h b/drivers/gpu/drm/i915/soc/intel_gmch.h
index 23be2d113afd..907e1ae921e0 100644
--- a/drivers/gpu/drm/i915/soc/intel_gmch.h
+++ b/drivers/gpu/drm/i915/soc/intel_gmch.h
@@ -11,9 +11,6 @@
 struct pci_dev;
 struct drm_i915_private;
 
-int intel_gmch_bridge_setup(struct drm_i915_private *i915);
-void intel_gmch_bar_setup(struct drm_i915_private *i915);
-void intel_gmch_bar_teardown(struct drm_i915_private *i915);
 int intel_gmch_vga_set_state(struct drm_i915_private *i915, bool enable_decode);
 unsigned int intel_gmch_vga_set_decode(struct pci_dev *pdev, bool enable_decode);
 
-- 
2.47.3


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

* [PATCH v2 10/13] drm/i915/gmch: switch to use pci_bus_{read, write}_config_word()
  2025-11-19 18:52 [PATCH v2 00/13] drm/i915: dissolve soc/ Jani Nikula
                   ` (8 preceding siblings ...)
  2025-11-19 18:52 ` [PATCH v2 09/13] drm/i915/gmch: split out i915_gmch.[ch] from soc Jani Nikula
@ 2025-11-19 18:52 ` Jani Nikula
  2025-11-19 18:52 ` [PATCH v2 11/13] drm/i915/gmch: convert intel_gmch.c to struct intel_display Jani Nikula
                   ` (13 subsequent siblings)
  23 siblings, 0 replies; 30+ messages in thread
From: Jani Nikula @ 2025-11-19 18:52 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: jani.nikula, Ville Syrjälä

Switch to use pci_bus_{read,write}_config_word(), and stop using
i915->gmch.pdev reference for the bridge.

Suggested-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/soc/intel_gmch.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/soc/intel_gmch.c b/drivers/gpu/drm/i915/soc/intel_gmch.c
index 30f489417064..d43b5d89cae7 100644
--- a/drivers/gpu/drm/i915/soc/intel_gmch.c
+++ b/drivers/gpu/drm/i915/soc/intel_gmch.c
@@ -18,10 +18,11 @@
 int intel_gmch_vga_set_state(struct drm_i915_private *i915, bool enable_decode)
 {
 	struct intel_display *display = i915->display;
+	struct pci_dev *pdev = to_pci_dev(display->drm->dev);
 	unsigned int reg = DISPLAY_VER(display) >= 6 ? SNB_GMCH_CTRL : INTEL_GMCH_CTRL;
 	u16 gmch_ctrl;
 
-	if (pci_read_config_word(i915->gmch.pdev, reg, &gmch_ctrl)) {
+	if (pci_bus_read_config_word(pdev->bus, PCI_DEVFN(0, 0), reg, &gmch_ctrl)) {
 		drm_err(&i915->drm, "failed to read control word\n");
 		return -EIO;
 	}
@@ -34,7 +35,7 @@ int intel_gmch_vga_set_state(struct drm_i915_private *i915, bool enable_decode)
 	else
 		gmch_ctrl |= INTEL_GMCH_VGA_DISABLE;
 
-	if (pci_write_config_word(i915->gmch.pdev, reg, gmch_ctrl)) {
+	if (pci_bus_write_config_word(pdev->bus, PCI_DEVFN(0, 0), reg, gmch_ctrl)) {
 		drm_err(&i915->drm, "failed to write control word\n");
 		return -EIO;
 	}
-- 
2.47.3


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

* [PATCH v2 11/13] drm/i915/gmch: convert intel_gmch.c to struct intel_display
  2025-11-19 18:52 [PATCH v2 00/13] drm/i915: dissolve soc/ Jani Nikula
                   ` (9 preceding siblings ...)
  2025-11-19 18:52 ` [PATCH v2 10/13] drm/i915/gmch: switch to use pci_bus_{read, write}_config_word() Jani Nikula
@ 2025-11-19 18:52 ` Jani Nikula
  2025-11-19 18:52 ` [PATCH v2 12/13] drm/i915: merge soc/intel_gmch.[ch] to display/intel_vga.c Jani Nikula
                   ` (12 subsequent siblings)
  23 siblings, 0 replies; 30+ messages in thread
From: Jani Nikula @ 2025-11-19 18:52 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: jani.nikula

Convert intel_gmch.[ch] to struct intel_display. Remove the final
dependency on struct drm_i915_private and i915_drv.h. This is in
preparation of moving the code under display/.

intel_gmch_vga_set_state() is only used internally, make it static while
at it.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/soc/intel_gmch.c | 13 ++++++-------
 drivers/gpu/drm/i915/soc/intel_gmch.h |  2 --
 2 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/i915/soc/intel_gmch.c b/drivers/gpu/drm/i915/soc/intel_gmch.c
index d43b5d89cae7..4e7abe056551 100644
--- a/drivers/gpu/drm/i915/soc/intel_gmch.c
+++ b/drivers/gpu/drm/i915/soc/intel_gmch.c
@@ -10,20 +10,19 @@
 #include <drm/intel/i915_drm.h>
 
 #include "../display/intel_display_core.h" /* FIXME */
+#include "../display/intel_display_types.h" /* FIXME */
 
-#include "i915_drv.h"
 #include "intel_gmch.h"
 #include "intel_pci_config.h"
 
-int intel_gmch_vga_set_state(struct drm_i915_private *i915, bool enable_decode)
+static int intel_gmch_vga_set_state(struct intel_display *display, bool enable_decode)
 {
-	struct intel_display *display = i915->display;
 	struct pci_dev *pdev = to_pci_dev(display->drm->dev);
 	unsigned int reg = DISPLAY_VER(display) >= 6 ? SNB_GMCH_CTRL : INTEL_GMCH_CTRL;
 	u16 gmch_ctrl;
 
 	if (pci_bus_read_config_word(pdev->bus, PCI_DEVFN(0, 0), reg, &gmch_ctrl)) {
-		drm_err(&i915->drm, "failed to read control word\n");
+		drm_err(display->drm, "failed to read control word\n");
 		return -EIO;
 	}
 
@@ -36,7 +35,7 @@ int intel_gmch_vga_set_state(struct drm_i915_private *i915, bool enable_decode)
 		gmch_ctrl |= INTEL_GMCH_VGA_DISABLE;
 
 	if (pci_bus_write_config_word(pdev->bus, PCI_DEVFN(0, 0), reg, gmch_ctrl)) {
-		drm_err(&i915->drm, "failed to write control word\n");
+		drm_err(display->drm, "failed to write control word\n");
 		return -EIO;
 	}
 
@@ -45,9 +44,9 @@ int intel_gmch_vga_set_state(struct drm_i915_private *i915, bool enable_decode)
 
 unsigned int intel_gmch_vga_set_decode(struct pci_dev *pdev, bool enable_decode)
 {
-	struct drm_i915_private *i915 = pdev_to_i915(pdev);
+	struct intel_display *display = to_intel_display(pdev);
 
-	intel_gmch_vga_set_state(i915, enable_decode);
+	intel_gmch_vga_set_state(display, enable_decode);
 
 	if (enable_decode)
 		return VGA_RSRC_LEGACY_IO | VGA_RSRC_LEGACY_MEM |
diff --git a/drivers/gpu/drm/i915/soc/intel_gmch.h b/drivers/gpu/drm/i915/soc/intel_gmch.h
index 907e1ae921e0..bc3421ab5ba6 100644
--- a/drivers/gpu/drm/i915/soc/intel_gmch.h
+++ b/drivers/gpu/drm/i915/soc/intel_gmch.h
@@ -9,9 +9,7 @@
 #include <linux/types.h>
 
 struct pci_dev;
-struct drm_i915_private;
 
-int intel_gmch_vga_set_state(struct drm_i915_private *i915, bool enable_decode);
 unsigned int intel_gmch_vga_set_decode(struct pci_dev *pdev, bool enable_decode);
 
 #endif /* __INTEL_GMCH_H__ */
-- 
2.47.3


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

* [PATCH v2 12/13] drm/i915: merge soc/intel_gmch.[ch] to display/intel_vga.c
  2025-11-19 18:52 [PATCH v2 00/13] drm/i915: dissolve soc/ Jani Nikula
                   ` (10 preceding siblings ...)
  2025-11-19 18:52 ` [PATCH v2 11/13] drm/i915/gmch: convert intel_gmch.c to struct intel_display Jani Nikula
@ 2025-11-19 18:52 ` Jani Nikula
  2025-11-19 18:52 ` [PATCH v2 13/13] drm/xe/vga: use the same intel_gmch_vga_set_decode() as i915 Jani Nikula
                   ` (11 subsequent siblings)
  23 siblings, 0 replies; 30+ messages in thread
From: Jani Nikula @ 2025-11-19 18:52 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: jani.nikula

The sole user of the remaining functions in intel_gmch.[ch] is in
intel_vga.c. Move everything there.

Since intel_gmch.c hasn't been part of xe, use a dummy function
relocated from xe_display_misc.c, with #ifdef. This is purely to keep
this change non-functional.

This allows us to remove soc/intel_gmch.[ch] from i915, compat
soc/intel_gmch.h from xe, and xe_display_misc.c from xe.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/Makefile                 |  4 --
 drivers/gpu/drm/i915/display/intel_vga.c      | 52 ++++++++++++++++-
 drivers/gpu/drm/i915/soc/intel_gmch.c         | 56 -------------------
 drivers/gpu/drm/i915/soc/intel_gmch.h         | 15 -----
 drivers/gpu/drm/xe/Makefile                   |  1 -
 .../xe/compat-i915-headers/soc/intel_gmch.h   |  6 --
 drivers/gpu/drm/xe/display/xe_display_misc.c  | 16 ------
 7 files changed, 50 insertions(+), 100 deletions(-)
 delete mode 100644 drivers/gpu/drm/i915/soc/intel_gmch.c
 delete mode 100644 drivers/gpu/drm/i915/soc/intel_gmch.h
 delete mode 100644 drivers/gpu/drm/xe/compat-i915-headers/soc/intel_gmch.h
 delete mode 100644 drivers/gpu/drm/xe/display/xe_display_misc.c

diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
index c591e5ba47f9..2ff8938b3a7c 100644
--- a/drivers/gpu/drm/i915/Makefile
+++ b/drivers/gpu/drm/i915/Makefile
@@ -57,10 +57,6 @@ i915-y += \
 	vlv_iosf_sb.o \
 	vlv_suspend.o
 
-# core peripheral code
-i915-y += \
-	soc/intel_gmch.o
-
 # core library code
 i915-y += \
 	i915_memcpy.o \
diff --git a/drivers/gpu/drm/i915/display/intel_vga.c b/drivers/gpu/drm/i915/display/intel_vga.c
index 6e125564db34..5e516c79e2f7 100644
--- a/drivers/gpu/drm/i915/display/intel_vga.c
+++ b/drivers/gpu/drm/i915/display/intel_vga.c
@@ -9,12 +9,12 @@
 
 #include <drm/drm_device.h>
 #include <drm/drm_print.h>
+#include <drm/intel/i915_drm.h>
 #include <video/vga.h>
 
-#include "soc/intel_gmch.h"
-
 #include "intel_de.h"
 #include "intel_display.h"
+#include "intel_display_types.h"
 #include "intel_vga.h"
 #include "intel_vga_regs.h"
 
@@ -95,6 +95,54 @@ void intel_vga_reset_io_mem(struct intel_display *display)
 	vga_put(pdev, VGA_RSRC_LEGACY_IO);
 }
 
+#ifdef I915
+static int intel_gmch_vga_set_state(struct intel_display *display, bool enable_decode)
+{
+	struct pci_dev *pdev = to_pci_dev(display->drm->dev);
+	unsigned int reg = DISPLAY_VER(display) >= 6 ? SNB_GMCH_CTRL : INTEL_GMCH_CTRL;
+	u16 gmch_ctrl;
+
+	if (pci_bus_read_config_word(pdev->bus, PCI_DEVFN(0, 0), reg, &gmch_ctrl)) {
+		drm_err(display->drm, "failed to read control word\n");
+		return -EIO;
+	}
+
+	if (!!(gmch_ctrl & INTEL_GMCH_VGA_DISABLE) == !enable_decode)
+		return 0;
+
+	if (enable_decode)
+		gmch_ctrl &= ~INTEL_GMCH_VGA_DISABLE;
+	else
+		gmch_ctrl |= INTEL_GMCH_VGA_DISABLE;
+
+	if (pci_bus_write_config_word(pdev->bus, PCI_DEVFN(0, 0), reg, gmch_ctrl)) {
+		drm_err(display->drm, "failed to write control word\n");
+		return -EIO;
+	}
+
+	return 0;
+}
+
+static unsigned int intel_gmch_vga_set_decode(struct pci_dev *pdev, bool enable_decode)
+{
+	struct intel_display *display = to_intel_display(pdev);
+
+	intel_gmch_vga_set_state(display, enable_decode);
+
+	if (enable_decode)
+		return VGA_RSRC_LEGACY_IO | VGA_RSRC_LEGACY_MEM |
+		       VGA_RSRC_NORMAL_IO | VGA_RSRC_NORMAL_MEM;
+	else
+		return VGA_RSRC_NORMAL_IO | VGA_RSRC_NORMAL_MEM;
+}
+#else
+static unsigned int intel_gmch_vga_set_decode(struct pci_dev *pdev, bool enable_decode)
+{
+	/* ToDo: Implement the actual handling of vga decode */
+	return 0;
+}
+#endif
+
 int intel_vga_register(struct intel_display *display)
 {
 
diff --git a/drivers/gpu/drm/i915/soc/intel_gmch.c b/drivers/gpu/drm/i915/soc/intel_gmch.c
deleted file mode 100644
index 4e7abe056551..000000000000
--- a/drivers/gpu/drm/i915/soc/intel_gmch.c
+++ /dev/null
@@ -1,56 +0,0 @@
-// SPDX-License-Identifier: MIT
-/*
- * Copyright © 2023 Intel Corporation
- */
-
-#include <linux/pci.h>
-#include <linux/vgaarb.h>
-
-#include <drm/drm_print.h>
-#include <drm/intel/i915_drm.h>
-
-#include "../display/intel_display_core.h" /* FIXME */
-#include "../display/intel_display_types.h" /* FIXME */
-
-#include "intel_gmch.h"
-#include "intel_pci_config.h"
-
-static int intel_gmch_vga_set_state(struct intel_display *display, bool enable_decode)
-{
-	struct pci_dev *pdev = to_pci_dev(display->drm->dev);
-	unsigned int reg = DISPLAY_VER(display) >= 6 ? SNB_GMCH_CTRL : INTEL_GMCH_CTRL;
-	u16 gmch_ctrl;
-
-	if (pci_bus_read_config_word(pdev->bus, PCI_DEVFN(0, 0), reg, &gmch_ctrl)) {
-		drm_err(display->drm, "failed to read control word\n");
-		return -EIO;
-	}
-
-	if (!!(gmch_ctrl & INTEL_GMCH_VGA_DISABLE) == !enable_decode)
-		return 0;
-
-	if (enable_decode)
-		gmch_ctrl &= ~INTEL_GMCH_VGA_DISABLE;
-	else
-		gmch_ctrl |= INTEL_GMCH_VGA_DISABLE;
-
-	if (pci_bus_write_config_word(pdev->bus, PCI_DEVFN(0, 0), reg, gmch_ctrl)) {
-		drm_err(display->drm, "failed to write control word\n");
-		return -EIO;
-	}
-
-	return 0;
-}
-
-unsigned int intel_gmch_vga_set_decode(struct pci_dev *pdev, bool enable_decode)
-{
-	struct intel_display *display = to_intel_display(pdev);
-
-	intel_gmch_vga_set_state(display, enable_decode);
-
-	if (enable_decode)
-		return VGA_RSRC_LEGACY_IO | VGA_RSRC_LEGACY_MEM |
-		       VGA_RSRC_NORMAL_IO | VGA_RSRC_NORMAL_MEM;
-	else
-		return VGA_RSRC_NORMAL_IO | VGA_RSRC_NORMAL_MEM;
-}
diff --git a/drivers/gpu/drm/i915/soc/intel_gmch.h b/drivers/gpu/drm/i915/soc/intel_gmch.h
deleted file mode 100644
index bc3421ab5ba6..000000000000
--- a/drivers/gpu/drm/i915/soc/intel_gmch.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/* SPDX-License-Identifier: MIT */
-/*
- * Copyright © 2023 Intel Corporation
- */
-
-#ifndef __INTEL_GMCH_H__
-#define __INTEL_GMCH_H__
-
-#include <linux/types.h>
-
-struct pci_dev;
-
-unsigned int intel_gmch_vga_set_decode(struct pci_dev *pdev, bool enable_decode);
-
-#endif /* __INTEL_GMCH_H__ */
diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile
index 9331212117a1..b848da79a4e1 100644
--- a/drivers/gpu/drm/xe/Makefile
+++ b/drivers/gpu/drm/xe/Makefile
@@ -206,7 +206,6 @@ xe-$(CONFIG_DRM_XE_DISPLAY) += \
 	display/intel_fb_bo.o \
 	display/intel_fbdev_fb.o \
 	display/xe_display.o \
-	display/xe_display_misc.o \
 	display/xe_display_rpm.o \
 	display/xe_display_wa.o \
 	display/xe_dsb_buffer.o \
diff --git a/drivers/gpu/drm/xe/compat-i915-headers/soc/intel_gmch.h b/drivers/gpu/drm/xe/compat-i915-headers/soc/intel_gmch.h
deleted file mode 100644
index 33c5257b3a71..000000000000
--- a/drivers/gpu/drm/xe/compat-i915-headers/soc/intel_gmch.h
+++ /dev/null
@@ -1,6 +0,0 @@
-/* SPDX-License-Identifier: MIT */
-/*
- * Copyright © 2023 Intel Corporation
- */
-
-#include "../../../i915/soc/intel_gmch.h"
diff --git a/drivers/gpu/drm/xe/display/xe_display_misc.c b/drivers/gpu/drm/xe/display/xe_display_misc.c
deleted file mode 100644
index 242c2ef4ca93..000000000000
--- a/drivers/gpu/drm/xe/display/xe_display_misc.c
+++ /dev/null
@@ -1,16 +0,0 @@
-// SPDX-License-Identifier: MIT
-/*
- * Copyright © 2023 Intel Corporation
- */
-
-#include "intel_display_types.h"
-
-struct pci_dev;
-
-unsigned int intel_gmch_vga_set_decode(struct pci_dev *pdev, bool enable_decode);
-
-unsigned int intel_gmch_vga_set_decode(struct pci_dev *pdev, bool enable_decode)
-{
-	/* ToDo: Implement the actual handling of vga decode */
-	return 0;
-}
-- 
2.47.3


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

* [PATCH v2 13/13] drm/xe/vga: use the same intel_gmch_vga_set_decode() as i915
  2025-11-19 18:52 [PATCH v2 00/13] drm/i915: dissolve soc/ Jani Nikula
                   ` (11 preceding siblings ...)
  2025-11-19 18:52 ` [PATCH v2 12/13] drm/i915: merge soc/intel_gmch.[ch] to display/intel_vga.c Jani Nikula
@ 2025-11-19 18:52 ` Jani Nikula
  2025-11-20 22:11   ` Lucas De Marchi
  2025-11-19 21:45 ` ✗ CI.checkpatch: warning for drm/i915: dissolve soc/ Patchwork
                   ` (10 subsequent siblings)
  23 siblings, 1 reply; 30+ messages in thread
From: Jani Nikula @ 2025-11-19 18:52 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: jani.nikula

Drop the #ifdef I915, and use the same intel_gmch_vga_set_decode() for
both i915 and xe.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/display/intel_vga.c | 8 --------
 1 file changed, 8 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_vga.c b/drivers/gpu/drm/i915/display/intel_vga.c
index 5e516c79e2f7..c45c4bbc3f95 100644
--- a/drivers/gpu/drm/i915/display/intel_vga.c
+++ b/drivers/gpu/drm/i915/display/intel_vga.c
@@ -95,7 +95,6 @@ void intel_vga_reset_io_mem(struct intel_display *display)
 	vga_put(pdev, VGA_RSRC_LEGACY_IO);
 }
 
-#ifdef I915
 static int intel_gmch_vga_set_state(struct intel_display *display, bool enable_decode)
 {
 	struct pci_dev *pdev = to_pci_dev(display->drm->dev);
@@ -135,13 +134,6 @@ static unsigned int intel_gmch_vga_set_decode(struct pci_dev *pdev, bool enable_
 	else
 		return VGA_RSRC_NORMAL_IO | VGA_RSRC_NORMAL_MEM;
 }
-#else
-static unsigned int intel_gmch_vga_set_decode(struct pci_dev *pdev, bool enable_decode)
-{
-	/* ToDo: Implement the actual handling of vga decode */
-	return 0;
-}
-#endif
 
 int intel_vga_register(struct intel_display *display)
 {
-- 
2.47.3


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

* ✗ CI.checkpatch: warning for drm/i915: dissolve soc/
  2025-11-19 18:52 [PATCH v2 00/13] drm/i915: dissolve soc/ Jani Nikula
                   ` (12 preceding siblings ...)
  2025-11-19 18:52 ` [PATCH v2 13/13] drm/xe/vga: use the same intel_gmch_vga_set_decode() as i915 Jani Nikula
@ 2025-11-19 21:45 ` Patchwork
  2025-11-19 21:46 ` ✓ CI.KUnit: success " Patchwork
                   ` (9 subsequent siblings)
  23 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2025-11-19 21:45 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-xe

== Series Details ==

Series: drm/i915: dissolve soc/
URL   : https://patchwork.freedesktop.org/series/157792/
State : warning

== Summary ==

+ KERNEL=/kernel
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools mt
Cloning into 'mt'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ git -C mt rev-list -n1 origin/master
2de9a3901bc28757c7906b454717b64e2a214021
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit ec5a418312d714c5e066b9d1e57794591f1e1c39
Author: Jani Nikula <jani.nikula@intel.com>
Date:   Wed Nov 19 20:52:52 2025 +0200

    drm/xe/vga: use the same intel_gmch_vga_set_decode() as i915
    
    Drop the #ifdef I915, and use the same intel_gmch_vga_set_decode() for
    both i915 and xe.
    
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
+ /mt/dim checkpatch a95032b2166b5ae428c065917b843a1caf1e82b8 drm-intel
0589ff61875a drm/i915/edram: extract i915_edram.[ch] for edram detection
-:48: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#48: 
new file mode 100644

total: 0 errors, 1 warnings, 0 checks, 99 lines checked
6d6508fd0d71 drm/i915: split out i915_freq.[ch]
-:82: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#82: 
new file mode 100644

total: 0 errors, 1 warnings, 0 checks, 172 lines checked
7111c206575e drm/i915: move intel_dram.[ch] from soc/ to display/
-:119: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#119: 
rename from drivers/gpu/drm/i915/soc/intel_dram.c

total: 0 errors, 1 warnings, 0 checks, 143 lines checked
5444e7477983 drm/xe: remove MISSING_CASE() from compat i915_utils.h
b010d0f88826 drm/i915/dram: convert to struct intel_display
3386f99e55a2 drm/i915: move dram_info to struct intel_display
b8e54c61cb4a drm/i915: move intel_rom.[ch] from soc/ to display/
-:58: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#58: 
rename from drivers/gpu/drm/i915/soc/intel_rom.c

total: 0 errors, 1 warnings, 0 checks, 59 lines checked
baace5a2f53d drm/xe: remove remaining platform checks from compat i915_drv.h
c2ce1b8b5903 drm/i915/gmch: split out i915_gmch.[ch] from soc
-:81: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#81: 
new file mode 100644

total: 0 errors, 1 warnings, 0 checks, 363 lines checked
4f9260c15234 drm/i915/gmch: switch to use pci_bus_{read, write}_config_word()
994ae8eb2b6f drm/i915/gmch: convert intel_gmch.c to struct intel_display
0ad0aea2c886 drm/i915: merge soc/intel_gmch.[ch] to display/intel_vga.c
-:108: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#108: 
deleted file mode 100644

total: 0 errors, 1 warnings, 0 checks, 85 lines checked
ec5a418312d7 drm/xe/vga: use the same intel_gmch_vga_set_decode() as i915



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

* ✓ CI.KUnit: success for drm/i915: dissolve soc/
  2025-11-19 18:52 [PATCH v2 00/13] drm/i915: dissolve soc/ Jani Nikula
                   ` (13 preceding siblings ...)
  2025-11-19 21:45 ` ✗ CI.checkpatch: warning for drm/i915: dissolve soc/ Patchwork
@ 2025-11-19 21:46 ` Patchwork
  2025-11-19 22:02 ` ✗ CI.checksparse: warning " Patchwork
                   ` (8 subsequent siblings)
  23 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2025-11-19 21:46 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-xe

== Series Details ==

Series: drm/i915: dissolve soc/
URL   : https://patchwork.freedesktop.org/series/157792/
State : success

== Summary ==

+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[21:45:31] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[21:45:35] 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
[21:46:06] Starting KUnit Kernel (1/1)...
[21:46:06] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[21:46:06] ================== guc_buf (11 subtests) ===================
[21:46:06] [PASSED] test_smallest
[21:46:06] [PASSED] test_largest
[21:46:06] [PASSED] test_granular
[21:46:06] [PASSED] test_unique
[21:46:06] [PASSED] test_overlap
[21:46:06] [PASSED] test_reusable
[21:46:06] [PASSED] test_too_big
[21:46:06] [PASSED] test_flush
[21:46:06] [PASSED] test_lookup
[21:46:06] [PASSED] test_data
[21:46:06] [PASSED] test_class
[21:46:06] ===================== [PASSED] guc_buf =====================
[21:46:06] =================== guc_dbm (7 subtests) ===================
[21:46:06] [PASSED] test_empty
[21:46:06] [PASSED] test_default
[21:46:06] ======================== test_size  ========================
[21:46:06] [PASSED] 4
[21:46:06] [PASSED] 8
[21:46:06] [PASSED] 32
[21:46:06] [PASSED] 256
[21:46:06] ==================== [PASSED] test_size ====================
[21:46:06] ======================= test_reuse  ========================
[21:46:06] [PASSED] 4
[21:46:06] [PASSED] 8
[21:46:06] [PASSED] 32
[21:46:06] [PASSED] 256
[21:46:06] =================== [PASSED] test_reuse ====================
[21:46:06] =================== test_range_overlap  ====================
[21:46:06] [PASSED] 4
[21:46:06] [PASSED] 8
[21:46:06] [PASSED] 32
[21:46:06] [PASSED] 256
[21:46:06] =============== [PASSED] test_range_overlap ================
[21:46:06] =================== test_range_compact  ====================
[21:46:06] [PASSED] 4
[21:46:06] [PASSED] 8
[21:46:06] [PASSED] 32
[21:46:06] [PASSED] 256
[21:46:06] =============== [PASSED] test_range_compact ================
[21:46:06] ==================== test_range_spare  =====================
[21:46:06] [PASSED] 4
[21:46:06] [PASSED] 8
[21:46:06] [PASSED] 32
[21:46:06] [PASSED] 256
[21:46:06] ================ [PASSED] test_range_spare =================
[21:46:06] ===================== [PASSED] guc_dbm =====================
[21:46:06] =================== guc_idm (6 subtests) ===================
[21:46:06] [PASSED] bad_init
[21:46:06] [PASSED] no_init
[21:46:06] [PASSED] init_fini
[21:46:06] [PASSED] check_used
[21:46:06] [PASSED] check_quota
[21:46:06] [PASSED] check_all
[21:46:06] ===================== [PASSED] guc_idm =====================
[21:46:06] ================== no_relay (3 subtests) ===================
[21:46:06] [PASSED] xe_drops_guc2pf_if_not_ready
[21:46:06] [PASSED] xe_drops_guc2vf_if_not_ready
[21:46:06] [PASSED] xe_rejects_send_if_not_ready
[21:46:06] ==================== [PASSED] no_relay =====================
[21:46:06] ================== pf_relay (14 subtests) ==================
[21:46:06] [PASSED] pf_rejects_guc2pf_too_short
[21:46:06] [PASSED] pf_rejects_guc2pf_too_long
[21:46:06] [PASSED] pf_rejects_guc2pf_no_payload
[21:46:06] [PASSED] pf_fails_no_payload
[21:46:06] [PASSED] pf_fails_bad_origin
[21:46:06] [PASSED] pf_fails_bad_type
[21:46:06] [PASSED] pf_txn_reports_error
[21:46:06] [PASSED] pf_txn_sends_pf2guc
[21:46:06] [PASSED] pf_sends_pf2guc
[21:46:06] [SKIPPED] pf_loopback_nop
[21:46:06] [SKIPPED] pf_loopback_echo
[21:46:06] [SKIPPED] pf_loopback_fail
[21:46:06] [SKIPPED] pf_loopback_busy
[21:46:06] [SKIPPED] pf_loopback_retry
[21:46:06] ==================== [PASSED] pf_relay =====================
[21:46:06] ================== vf_relay (3 subtests) ===================
[21:46:06] [PASSED] vf_rejects_guc2vf_too_short
[21:46:06] [PASSED] vf_rejects_guc2vf_too_long
[21:46:06] [PASSED] vf_rejects_guc2vf_no_payload
[21:46:06] ==================== [PASSED] vf_relay =====================
[21:46:06] ================ pf_gt_config (6 subtests) =================
[21:46:06] [PASSED] fair_contexts_1vf
[21:46:06] [PASSED] fair_doorbells_1vf
[21:46:06] [PASSED] fair_ggtt_1vf
[21:46:06] ====================== fair_contexts  ======================
[21:46:06] [PASSED] 1 VF
[21:46:06] [PASSED] 2 VFs
[21:46:06] [PASSED] 3 VFs
[21:46:06] [PASSED] 4 VFs
[21:46:06] [PASSED] 5 VFs
[21:46:06] [PASSED] 6 VFs
[21:46:06] [PASSED] 7 VFs
[21:46:06] [PASSED] 8 VFs
[21:46:06] [PASSED] 9 VFs
[21:46:06] [PASSED] 10 VFs
[21:46:06] [PASSED] 11 VFs
[21:46:06] [PASSED] 12 VFs
[21:46:06] [PASSED] 13 VFs
[21:46:06] [PASSED] 14 VFs
[21:46:06] [PASSED] 15 VFs
[21:46:06] [PASSED] 16 VFs
[21:46:06] [PASSED] 17 VFs
[21:46:06] [PASSED] 18 VFs
[21:46:06] [PASSED] 19 VFs
[21:46:06] [PASSED] 20 VFs
[21:46:06] [PASSED] 21 VFs
[21:46:06] [PASSED] 22 VFs
[21:46:06] [PASSED] 23 VFs
[21:46:06] [PASSED] 24 VFs
[21:46:06] [PASSED] 25 VFs
[21:46:06] [PASSED] 26 VFs
[21:46:06] [PASSED] 27 VFs
[21:46:06] [PASSED] 28 VFs
[21:46:06] [PASSED] 29 VFs
[21:46:06] [PASSED] 30 VFs
[21:46:06] [PASSED] 31 VFs
[21:46:06] [PASSED] 32 VFs
[21:46:06] [PASSED] 33 VFs
[21:46:06] [PASSED] 34 VFs
[21:46:06] [PASSED] 35 VFs
[21:46:06] [PASSED] 36 VFs
[21:46:06] [PASSED] 37 VFs
[21:46:06] [PASSED] 38 VFs
[21:46:06] [PASSED] 39 VFs
[21:46:06] [PASSED] 40 VFs
[21:46:06] [PASSED] 41 VFs
[21:46:06] [PASSED] 42 VFs
[21:46:06] [PASSED] 43 VFs
[21:46:06] [PASSED] 44 VFs
[21:46:06] [PASSED] 45 VFs
[21:46:06] [PASSED] 46 VFs
[21:46:06] [PASSED] 47 VFs
[21:46:06] [PASSED] 48 VFs
[21:46:06] [PASSED] 49 VFs
[21:46:06] [PASSED] 50 VFs
[21:46:06] [PASSED] 51 VFs
[21:46:06] [PASSED] 52 VFs
[21:46:06] [PASSED] 53 VFs
[21:46:06] [PASSED] 54 VFs
[21:46:06] [PASSED] 55 VFs
[21:46:06] [PASSED] 56 VFs
[21:46:06] [PASSED] 57 VFs
[21:46:06] [PASSED] 58 VFs
[21:46:06] [PASSED] 59 VFs
[21:46:06] [PASSED] 60 VFs
[21:46:06] [PASSED] 61 VFs
[21:46:06] [PASSED] 62 VFs
[21:46:06] [PASSED] 63 VFs
[21:46:06] ================== [PASSED] fair_contexts ==================
[21:46:06] ===================== fair_doorbells  ======================
[21:46:06] [PASSED] 1 VF
[21:46:06] [PASSED] 2 VFs
[21:46:06] [PASSED] 3 VFs
[21:46:06] [PASSED] 4 VFs
[21:46:06] [PASSED] 5 VFs
[21:46:06] [PASSED] 6 VFs
[21:46:06] [PASSED] 7 VFs
[21:46:06] [PASSED] 8 VFs
[21:46:06] [PASSED] 9 VFs
[21:46:06] [PASSED] 10 VFs
[21:46:06] [PASSED] 11 VFs
[21:46:06] [PASSED] 12 VFs
[21:46:06] [PASSED] 13 VFs
[21:46:06] [PASSED] 14 VFs
[21:46:06] [PASSED] 15 VFs
[21:46:06] [PASSED] 16 VFs
[21:46:06] [PASSED] 17 VFs
[21:46:06] [PASSED] 18 VFs
[21:46:06] [PASSED] 19 VFs
[21:46:06] [PASSED] 20 VFs
[21:46:06] [PASSED] 21 VFs
[21:46:06] [PASSED] 22 VFs
[21:46:06] [PASSED] 23 VFs
[21:46:06] [PASSED] 24 VFs
[21:46:06] [PASSED] 25 VFs
[21:46:06] [PASSED] 26 VFs
[21:46:06] [PASSED] 27 VFs
[21:46:06] [PASSED] 28 VFs
[21:46:06] [PASSED] 29 VFs
[21:46:06] [PASSED] 30 VFs
[21:46:06] [PASSED] 31 VFs
[21:46:06] [PASSED] 32 VFs
[21:46:06] [PASSED] 33 VFs
[21:46:06] [PASSED] 34 VFs
[21:46:06] [PASSED] 35 VFs
[21:46:06] [PASSED] 36 VFs
[21:46:06] [PASSED] 37 VFs
[21:46:06] [PASSED] 38 VFs
[21:46:06] [PASSED] 39 VFs
[21:46:06] [PASSED] 40 VFs
[21:46:06] [PASSED] 41 VFs
[21:46:06] [PASSED] 42 VFs
[21:46:06] [PASSED] 43 VFs
[21:46:06] [PASSED] 44 VFs
[21:46:06] [PASSED] 45 VFs
[21:46:06] [PASSED] 46 VFs
[21:46:06] [PASSED] 47 VFs
[21:46:06] [PASSED] 48 VFs
[21:46:06] [PASSED] 49 VFs
[21:46:06] [PASSED] 50 VFs
[21:46:06] [PASSED] 51 VFs
[21:46:06] [PASSED] 52 VFs
[21:46:06] [PASSED] 53 VFs
[21:46:06] [PASSED] 54 VFs
[21:46:06] [PASSED] 55 VFs
[21:46:06] [PASSED] 56 VFs
[21:46:06] [PASSED] 57 VFs
[21:46:06] [PASSED] 58 VFs
[21:46:06] [PASSED] 59 VFs
[21:46:06] [PASSED] 60 VFs
[21:46:06] [PASSED] 61 VFs
[21:46:06] [PASSED] 62 VFs
[21:46:06] [PASSED] 63 VFs
[21:46:06] ================= [PASSED] fair_doorbells ==================
[21:46:06] ======================== fair_ggtt  ========================
[21:46:06] [PASSED] 1 VF
[21:46:06] [PASSED] 2 VFs
[21:46:06] [PASSED] 3 VFs
[21:46:06] [PASSED] 4 VFs
[21:46:06] [PASSED] 5 VFs
[21:46:06] [PASSED] 6 VFs
[21:46:06] [PASSED] 7 VFs
[21:46:06] [PASSED] 8 VFs
[21:46:06] [PASSED] 9 VFs
[21:46:06] [PASSED] 10 VFs
[21:46:06] [PASSED] 11 VFs
[21:46:06] [PASSED] 12 VFs
[21:46:06] [PASSED] 13 VFs
[21:46:06] [PASSED] 14 VFs
[21:46:06] [PASSED] 15 VFs
[21:46:06] [PASSED] 16 VFs
[21:46:06] [PASSED] 17 VFs
[21:46:06] [PASSED] 18 VFs
[21:46:06] [PASSED] 19 VFs
[21:46:06] [PASSED] 20 VFs
[21:46:06] [PASSED] 21 VFs
[21:46:06] [PASSED] 22 VFs
[21:46:06] [PASSED] 23 VFs
[21:46:06] [PASSED] 24 VFs
[21:46:06] [PASSED] 25 VFs
[21:46:06] [PASSED] 26 VFs
[21:46:06] [PASSED] 27 VFs
[21:46:06] [PASSED] 28 VFs
[21:46:06] [PASSED] 29 VFs
[21:46:06] [PASSED] 30 VFs
[21:46:06] [PASSED] 31 VFs
[21:46:06] [PASSED] 32 VFs
[21:46:06] [PASSED] 33 VFs
[21:46:06] [PASSED] 34 VFs
[21:46:06] [PASSED] 35 VFs
[21:46:06] [PASSED] 36 VFs
[21:46:06] [PASSED] 37 VFs
[21:46:06] [PASSED] 38 VFs
[21:46:06] [PASSED] 39 VFs
[21:46:06] [PASSED] 40 VFs
[21:46:06] [PASSED] 41 VFs
[21:46:06] [PASSED] 42 VFs
[21:46:06] [PASSED] 43 VFs
[21:46:06] [PASSED] 44 VFs
[21:46:06] [PASSED] 45 VFs
[21:46:06] [PASSED] 46 VFs
[21:46:06] [PASSED] 47 VFs
[21:46:06] [PASSED] 48 VFs
[21:46:06] [PASSED] 49 VFs
[21:46:06] [PASSED] 50 VFs
[21:46:06] [PASSED] 51 VFs
[21:46:06] [PASSED] 52 VFs
[21:46:06] [PASSED] 53 VFs
[21:46:06] [PASSED] 54 VFs
[21:46:06] [PASSED] 55 VFs
[21:46:06] [PASSED] 56 VFs
[21:46:06] [PASSED] 57 VFs
[21:46:06] [PASSED] 58 VFs
[21:46:06] [PASSED] 59 VFs
[21:46:06] [PASSED] 60 VFs
[21:46:06] [PASSED] 61 VFs
[21:46:06] [PASSED] 62 VFs
[21:46:06] [PASSED] 63 VFs
[21:46:06] ==================== [PASSED] fair_ggtt ====================
[21:46:06] ================== [PASSED] pf_gt_config ===================
[21:46:06] ===================== lmtt (1 subtest) =====================
[21:46:06] ======================== test_ops  =========================
[21:46:06] [PASSED] 2-level
[21:46:06] [PASSED] multi-level
[21:46:06] ==================== [PASSED] test_ops =====================
[21:46:06] ====================== [PASSED] lmtt =======================
[21:46:06] ================= pf_service (11 subtests) =================
[21:46:06] [PASSED] pf_negotiate_any
[21:46:06] [PASSED] pf_negotiate_base_match
[21:46:06] [PASSED] pf_negotiate_base_newer
[21:46:06] [PASSED] pf_negotiate_base_next
[21:46:06] [SKIPPED] pf_negotiate_base_older
[21:46:06] [PASSED] pf_negotiate_base_prev
[21:46:06] [PASSED] pf_negotiate_latest_match
[21:46:06] [PASSED] pf_negotiate_latest_newer
[21:46:06] [PASSED] pf_negotiate_latest_next
[21:46:06] [SKIPPED] pf_negotiate_latest_older
[21:46:06] [SKIPPED] pf_negotiate_latest_prev
[21:46:06] =================== [PASSED] pf_service ====================
[21:46:06] ================= xe_guc_g2g (2 subtests) ==================
[21:46:06] ============== xe_live_guc_g2g_kunit_default  ==============
[21:46:06] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[21:46:06] ============== xe_live_guc_g2g_kunit_allmem  ===============
[21:46:06] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[21:46:06] =================== [SKIPPED] xe_guc_g2g ===================
[21:46:06] =================== xe_mocs (2 subtests) ===================
[21:46:06] ================ xe_live_mocs_kernel_kunit  ================
[21:46:06] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[21:46:06] ================ xe_live_mocs_reset_kunit  =================
[21:46:06] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[21:46:06] ==================== [SKIPPED] xe_mocs =====================
[21:46:06] ================= xe_migrate (2 subtests) ==================
[21:46:06] ================= xe_migrate_sanity_kunit  =================
[21:46:06] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[21:46:06] ================== xe_validate_ccs_kunit  ==================
[21:46:06] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[21:46:06] =================== [SKIPPED] xe_migrate ===================
[21:46:06] ================== xe_dma_buf (1 subtest) ==================
[21:46:06] ==================== xe_dma_buf_kunit  =====================
[21:46:06] ================ [SKIPPED] xe_dma_buf_kunit ================
[21:46:06] =================== [SKIPPED] xe_dma_buf ===================
[21:46:06] ================= xe_bo_shrink (1 subtest) =================
[21:46:06] =================== xe_bo_shrink_kunit  ====================
[21:46:06] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[21:46:06] ================== [SKIPPED] xe_bo_shrink ==================
[21:46:06] ==================== xe_bo (2 subtests) ====================
[21:46:06] ================== xe_ccs_migrate_kunit  ===================
[21:46:06] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[21:46:06] ==================== xe_bo_evict_kunit  ====================
[21:46:06] =============== [SKIPPED] xe_bo_evict_kunit ================
[21:46:06] ===================== [SKIPPED] xe_bo ======================
[21:46:06] ==================== args (11 subtests) ====================
[21:46:06] [PASSED] count_args_test
[21:46:06] [PASSED] call_args_example
[21:46:06] [PASSED] call_args_test
[21:46:06] [PASSED] drop_first_arg_example
[21:46:06] [PASSED] drop_first_arg_test
[21:46:06] [PASSED] first_arg_example
[21:46:06] [PASSED] first_arg_test
[21:46:06] [PASSED] last_arg_example
[21:46:06] [PASSED] last_arg_test
[21:46:06] [PASSED] pick_arg_example
[21:46:06] [PASSED] sep_comma_example
[21:46:06] ====================== [PASSED] args =======================
[21:46:06] =================== xe_pci (3 subtests) ====================
[21:46:06] ==================== check_graphics_ip  ====================
[21:46:06] [PASSED] 12.00 Xe_LP
[21:46:06] [PASSED] 12.10 Xe_LP+
[21:46:06] [PASSED] 12.55 Xe_HPG
[21:46:06] [PASSED] 12.60 Xe_HPC
[21:46:06] [PASSED] 12.70 Xe_LPG
[21:46:06] [PASSED] 12.71 Xe_LPG
[21:46:06] [PASSED] 12.74 Xe_LPG+
[21:46:06] [PASSED] 20.01 Xe2_HPG
[21:46:06] [PASSED] 20.02 Xe2_HPG
[21:46:06] [PASSED] 20.04 Xe2_LPG
[21:46:06] [PASSED] 30.00 Xe3_LPG
[21:46:06] [PASSED] 30.01 Xe3_LPG
[21:46:06] [PASSED] 30.03 Xe3_LPG
[21:46:06] [PASSED] 30.04 Xe3_LPG
[21:46:06] [PASSED] 30.05 Xe3_LPG
[21:46:06] [PASSED] 35.11 Xe3p_XPC
[21:46:06] ================ [PASSED] check_graphics_ip ================
[21:46:06] ===================== check_media_ip  ======================
[21:46:06] [PASSED] 12.00 Xe_M
[21:46:06] [PASSED] 12.55 Xe_HPM
[21:46:06] [PASSED] 13.00 Xe_LPM+
[21:46:06] [PASSED] 13.01 Xe2_HPM
[21:46:06] [PASSED] 20.00 Xe2_LPM
[21:46:06] [PASSED] 30.00 Xe3_LPM
[21:46:06] [PASSED] 30.02 Xe3_LPM
[21:46:06] [PASSED] 35.00 Xe3p_LPM
[21:46:06] [PASSED] 35.03 Xe3p_HPM
[21:46:06] ================= [PASSED] check_media_ip ==================
[21:46:06] =================== check_platform_desc  ===================
[21:46:06] [PASSED] 0x9A60 (TIGERLAKE)
[21:46:06] [PASSED] 0x9A68 (TIGERLAKE)
[21:46:06] [PASSED] 0x9A70 (TIGERLAKE)
[21:46:06] [PASSED] 0x9A40 (TIGERLAKE)
[21:46:06] [PASSED] 0x9A49 (TIGERLAKE)
[21:46:06] [PASSED] 0x9A59 (TIGERLAKE)
[21:46:06] [PASSED] 0x9A78 (TIGERLAKE)
[21:46:06] [PASSED] 0x9AC0 (TIGERLAKE)
[21:46:06] [PASSED] 0x9AC9 (TIGERLAKE)
[21:46:06] [PASSED] 0x9AD9 (TIGERLAKE)
[21:46:06] [PASSED] 0x9AF8 (TIGERLAKE)
[21:46:06] [PASSED] 0x4C80 (ROCKETLAKE)
[21:46:06] [PASSED] 0x4C8A (ROCKETLAKE)
[21:46:06] [PASSED] 0x4C8B (ROCKETLAKE)
[21:46:06] [PASSED] 0x4C8C (ROCKETLAKE)
[21:46:06] [PASSED] 0x4C90 (ROCKETLAKE)
[21:46:06] [PASSED] 0x4C9A (ROCKETLAKE)
[21:46:06] [PASSED] 0x4680 (ALDERLAKE_S)
[21:46:06] [PASSED] 0x4682 (ALDERLAKE_S)
[21:46:06] [PASSED] 0x4688 (ALDERLAKE_S)
[21:46:06] [PASSED] 0x468A (ALDERLAKE_S)
[21:46:06] [PASSED] 0x468B (ALDERLAKE_S)
[21:46:06] [PASSED] 0x4690 (ALDERLAKE_S)
[21:46:06] [PASSED] 0x4692 (ALDERLAKE_S)
[21:46:06] [PASSED] 0x4693 (ALDERLAKE_S)
[21:46:06] [PASSED] 0x46A0 (ALDERLAKE_P)
[21:46:06] [PASSED] 0x46A1 (ALDERLAKE_P)
[21:46:06] [PASSED] 0x46A2 (ALDERLAKE_P)
[21:46:06] [PASSED] 0x46A3 (ALDERLAKE_P)
[21:46:06] [PASSED] 0x46A6 (ALDERLAKE_P)
[21:46:06] [PASSED] 0x46A8 (ALDERLAKE_P)
[21:46:06] [PASSED] 0x46AA (ALDERLAKE_P)
[21:46:06] [PASSED] 0x462A (ALDERLAKE_P)
[21:46:06] [PASSED] 0x4626 (ALDERLAKE_P)
[21:46:06] [PASSED] 0x4628 (ALDERLAKE_P)
[21:46:06] [PASSED] 0x46B0 (ALDERLAKE_P)
stty: 'standard input': Inappropriate ioctl for device
[21:46:06] [PASSED] 0x46B1 (ALDERLAKE_P)
[21:46:06] [PASSED] 0x46B2 (ALDERLAKE_P)
[21:46:06] [PASSED] 0x46B3 (ALDERLAKE_P)
[21:46:06] [PASSED] 0x46C0 (ALDERLAKE_P)
[21:46:06] [PASSED] 0x46C1 (ALDERLAKE_P)
[21:46:06] [PASSED] 0x46C2 (ALDERLAKE_P)
[21:46:06] [PASSED] 0x46C3 (ALDERLAKE_P)
[21:46:06] [PASSED] 0x46D0 (ALDERLAKE_N)
[21:46:06] [PASSED] 0x46D1 (ALDERLAKE_N)
[21:46:06] [PASSED] 0x46D2 (ALDERLAKE_N)
[21:46:06] [PASSED] 0x46D3 (ALDERLAKE_N)
[21:46:06] [PASSED] 0x46D4 (ALDERLAKE_N)
[21:46:06] [PASSED] 0xA721 (ALDERLAKE_P)
[21:46:06] [PASSED] 0xA7A1 (ALDERLAKE_P)
[21:46:06] [PASSED] 0xA7A9 (ALDERLAKE_P)
[21:46:06] [PASSED] 0xA7AC (ALDERLAKE_P)
[21:46:06] [PASSED] 0xA7AD (ALDERLAKE_P)
[21:46:06] [PASSED] 0xA720 (ALDERLAKE_P)
[21:46:06] [PASSED] 0xA7A0 (ALDERLAKE_P)
[21:46:06] [PASSED] 0xA7A8 (ALDERLAKE_P)
[21:46:06] [PASSED] 0xA7AA (ALDERLAKE_P)
[21:46:06] [PASSED] 0xA7AB (ALDERLAKE_P)
[21:46:06] [PASSED] 0xA780 (ALDERLAKE_S)
[21:46:06] [PASSED] 0xA781 (ALDERLAKE_S)
[21:46:06] [PASSED] 0xA782 (ALDERLAKE_S)
[21:46:06] [PASSED] 0xA783 (ALDERLAKE_S)
[21:46:06] [PASSED] 0xA788 (ALDERLAKE_S)
[21:46:06] [PASSED] 0xA789 (ALDERLAKE_S)
[21:46:06] [PASSED] 0xA78A (ALDERLAKE_S)
[21:46:06] [PASSED] 0xA78B (ALDERLAKE_S)
[21:46:06] [PASSED] 0x4905 (DG1)
[21:46:06] [PASSED] 0x4906 (DG1)
[21:46:06] [PASSED] 0x4907 (DG1)
[21:46:06] [PASSED] 0x4908 (DG1)
[21:46:06] [PASSED] 0x4909 (DG1)
[21:46:06] [PASSED] 0x56C0 (DG2)
[21:46:06] [PASSED] 0x56C2 (DG2)
[21:46:06] [PASSED] 0x56C1 (DG2)
[21:46:06] [PASSED] 0x7D51 (METEORLAKE)
[21:46:06] [PASSED] 0x7DD1 (METEORLAKE)
[21:46:06] [PASSED] 0x7D41 (METEORLAKE)
[21:46:06] [PASSED] 0x7D67 (METEORLAKE)
[21:46:06] [PASSED] 0xB640 (METEORLAKE)
[21:46:06] [PASSED] 0x56A0 (DG2)
[21:46:06] [PASSED] 0x56A1 (DG2)
[21:46:06] [PASSED] 0x56A2 (DG2)
[21:46:06] [PASSED] 0x56BE (DG2)
[21:46:06] [PASSED] 0x56BF (DG2)
[21:46:06] [PASSED] 0x5690 (DG2)
[21:46:06] [PASSED] 0x5691 (DG2)
[21:46:06] [PASSED] 0x5692 (DG2)
[21:46:06] [PASSED] 0x56A5 (DG2)
[21:46:06] [PASSED] 0x56A6 (DG2)
[21:46:06] [PASSED] 0x56B0 (DG2)
[21:46:06] [PASSED] 0x56B1 (DG2)
[21:46:06] [PASSED] 0x56BA (DG2)
[21:46:06] [PASSED] 0x56BB (DG2)
[21:46:06] [PASSED] 0x56BC (DG2)
[21:46:06] [PASSED] 0x56BD (DG2)
[21:46:06] [PASSED] 0x5693 (DG2)
[21:46:06] [PASSED] 0x5694 (DG2)
[21:46:06] [PASSED] 0x5695 (DG2)
[21:46:06] [PASSED] 0x56A3 (DG2)
[21:46:06] [PASSED] 0x56A4 (DG2)
[21:46:06] [PASSED] 0x56B2 (DG2)
[21:46:06] [PASSED] 0x56B3 (DG2)
[21:46:06] [PASSED] 0x5696 (DG2)
[21:46:06] [PASSED] 0x5697 (DG2)
[21:46:06] [PASSED] 0xB69 (PVC)
[21:46:06] [PASSED] 0xB6E (PVC)
[21:46:06] [PASSED] 0xBD4 (PVC)
[21:46:06] [PASSED] 0xBD5 (PVC)
[21:46:06] [PASSED] 0xBD6 (PVC)
[21:46:06] [PASSED] 0xBD7 (PVC)
[21:46:06] [PASSED] 0xBD8 (PVC)
[21:46:06] [PASSED] 0xBD9 (PVC)
[21:46:06] [PASSED] 0xBDA (PVC)
[21:46:06] [PASSED] 0xBDB (PVC)
[21:46:06] [PASSED] 0xBE0 (PVC)
[21:46:06] [PASSED] 0xBE1 (PVC)
[21:46:06] [PASSED] 0xBE5 (PVC)
[21:46:06] [PASSED] 0x7D40 (METEORLAKE)
[21:46:06] [PASSED] 0x7D45 (METEORLAKE)
[21:46:06] [PASSED] 0x7D55 (METEORLAKE)
[21:46:06] [PASSED] 0x7D60 (METEORLAKE)
[21:46:06] [PASSED] 0x7DD5 (METEORLAKE)
[21:46:06] [PASSED] 0x6420 (LUNARLAKE)
[21:46:06] [PASSED] 0x64A0 (LUNARLAKE)
[21:46:06] [PASSED] 0x64B0 (LUNARLAKE)
[21:46:06] [PASSED] 0xE202 (BATTLEMAGE)
[21:46:06] [PASSED] 0xE209 (BATTLEMAGE)
[21:46:06] [PASSED] 0xE20B (BATTLEMAGE)
[21:46:06] [PASSED] 0xE20C (BATTLEMAGE)
[21:46:06] [PASSED] 0xE20D (BATTLEMAGE)
[21:46:06] [PASSED] 0xE210 (BATTLEMAGE)
[21:46:06] [PASSED] 0xE211 (BATTLEMAGE)
[21:46:06] [PASSED] 0xE212 (BATTLEMAGE)
[21:46:06] [PASSED] 0xE216 (BATTLEMAGE)
[21:46:06] [PASSED] 0xE220 (BATTLEMAGE)
[21:46:06] [PASSED] 0xE221 (BATTLEMAGE)
[21:46:06] [PASSED] 0xE222 (BATTLEMAGE)
[21:46:06] [PASSED] 0xE223 (BATTLEMAGE)
[21:46:06] [PASSED] 0xB080 (PANTHERLAKE)
[21:46:06] [PASSED] 0xB081 (PANTHERLAKE)
[21:46:06] [PASSED] 0xB082 (PANTHERLAKE)
[21:46:06] [PASSED] 0xB083 (PANTHERLAKE)
[21:46:06] [PASSED] 0xB084 (PANTHERLAKE)
[21:46:06] [PASSED] 0xB085 (PANTHERLAKE)
[21:46:06] [PASSED] 0xB086 (PANTHERLAKE)
[21:46:06] [PASSED] 0xB087 (PANTHERLAKE)
[21:46:06] [PASSED] 0xB08F (PANTHERLAKE)
[21:46:06] [PASSED] 0xB090 (PANTHERLAKE)
[21:46:06] [PASSED] 0xB0A0 (PANTHERLAKE)
[21:46:06] [PASSED] 0xB0B0 (PANTHERLAKE)
[21:46:06] [PASSED] 0xD740 (NOVALAKE_S)
[21:46:06] [PASSED] 0xD741 (NOVALAKE_S)
[21:46:06] [PASSED] 0xD742 (NOVALAKE_S)
[21:46:06] [PASSED] 0xD743 (NOVALAKE_S)
[21:46:06] [PASSED] 0xD744 (NOVALAKE_S)
[21:46:06] [PASSED] 0xD745 (NOVALAKE_S)
[21:46:06] [PASSED] 0x674C (CRESCENTISLAND)
[21:46:06] [PASSED] 0xFD80 (PANTHERLAKE)
[21:46:06] [PASSED] 0xFD81 (PANTHERLAKE)
[21:46:06] =============== [PASSED] check_platform_desc ===============
[21:46:06] ===================== [PASSED] xe_pci ======================
[21:46:06] =================== xe_rtp (2 subtests) ====================
[21:46:06] =============== xe_rtp_process_to_sr_tests  ================
[21:46:06] [PASSED] coalesce-same-reg
[21:46:06] [PASSED] no-match-no-add
[21:46:06] [PASSED] match-or
[21:46:06] [PASSED] match-or-xfail
[21:46:06] [PASSED] no-match-no-add-multiple-rules
[21:46:06] [PASSED] two-regs-two-entries
[21:46:06] [PASSED] clr-one-set-other
[21:46:06] [PASSED] set-field
[21:46:06] [PASSED] conflict-duplicate
[21:46:06] [PASSED] conflict-not-disjoint
[21:46:06] [PASSED] conflict-reg-type
[21:46:06] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[21:46:06] ================== xe_rtp_process_tests  ===================
[21:46:06] [PASSED] active1
[21:46:06] [PASSED] active2
[21:46:06] [PASSED] active-inactive
[21:46:06] [PASSED] inactive-active
[21:46:06] [PASSED] inactive-1st_or_active-inactive
[21:46:06] [PASSED] inactive-2nd_or_active-inactive
[21:46:06] [PASSED] inactive-last_or_active-inactive
[21:46:06] [PASSED] inactive-no_or_active-inactive
[21:46:06] ============== [PASSED] xe_rtp_process_tests ===============
[21:46:06] ===================== [PASSED] xe_rtp ======================
[21:46:06] ==================== xe_wa (1 subtest) =====================
[21:46:06] ======================== xe_wa_gt  =========================
[21:46:06] [PASSED] TIGERLAKE B0
[21:46:06] [PASSED] DG1 A0
[21:46:06] [PASSED] DG1 B0
[21:46:06] [PASSED] ALDERLAKE_S A0
[21:46:06] [PASSED] ALDERLAKE_S B0
[21:46:06] [PASSED] ALDERLAKE_S C0
[21:46:06] [PASSED] ALDERLAKE_S D0
[21:46:06] [PASSED] ALDERLAKE_P A0
[21:46:06] [PASSED] ALDERLAKE_P B0
[21:46:06] [PASSED] ALDERLAKE_P C0
[21:46:06] [PASSED] ALDERLAKE_S RPLS D0
[21:46:06] [PASSED] ALDERLAKE_P RPLU E0
[21:46:06] [PASSED] DG2 G10 C0
[21:46:06] [PASSED] DG2 G11 B1
[21:46:06] [PASSED] DG2 G12 A1
[21:46:06] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[21:46:06] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[21:46:06] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[21:46:06] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[21:46:06] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[21:46:06] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[21:46:06] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[21:46:06] ==================== [PASSED] xe_wa_gt =====================
[21:46:06] ====================== [PASSED] xe_wa ======================
[21:46:06] ============================================================
[21:46:06] Testing complete. Ran 510 tests: passed: 492, skipped: 18
[21:46:06] Elapsed time: 35.218s total, 4.238s configuring, 30.507s building, 0.454s running

+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[21:46:07] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[21:46:08] 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
[21:46:33] Starting KUnit Kernel (1/1)...
[21:46:33] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[21:46:33] ============ drm_test_pick_cmdline (2 subtests) ============
[21:46:33] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[21:46:33] =============== drm_test_pick_cmdline_named  ===============
[21:46:33] [PASSED] NTSC
[21:46:33] [PASSED] NTSC-J
[21:46:33] [PASSED] PAL
[21:46:33] [PASSED] PAL-M
[21:46:33] =========== [PASSED] drm_test_pick_cmdline_named ===========
[21:46:33] ============== [PASSED] drm_test_pick_cmdline ==============
[21:46:33] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[21:46:33] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[21:46:33] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[21:46:33] =========== drm_validate_clone_mode (2 subtests) ===========
[21:46:33] ============== drm_test_check_in_clone_mode  ===============
[21:46:33] [PASSED] in_clone_mode
[21:46:33] [PASSED] not_in_clone_mode
[21:46:33] ========== [PASSED] drm_test_check_in_clone_mode ===========
[21:46:33] =============== drm_test_check_valid_clones  ===============
[21:46:33] [PASSED] not_in_clone_mode
[21:46:33] [PASSED] valid_clone
[21:46:33] [PASSED] invalid_clone
[21:46:33] =========== [PASSED] drm_test_check_valid_clones ===========
[21:46:33] ============= [PASSED] drm_validate_clone_mode =============
[21:46:33] ============= drm_validate_modeset (1 subtest) =============
[21:46:33] [PASSED] drm_test_check_connector_changed_modeset
[21:46:33] ============== [PASSED] drm_validate_modeset ===============
[21:46:33] ====== drm_test_bridge_get_current_state (2 subtests) ======
[21:46:33] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[21:46:33] [PASSED] drm_test_drm_bridge_get_current_state_legacy
[21:46:33] ======== [PASSED] drm_test_bridge_get_current_state ========
[21:46:33] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[21:46:33] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[21:46:33] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[21:46:33] [PASSED] drm_test_drm_bridge_helper_reset_crtc_legacy
[21:46:33] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[21:46:33] ============== drm_bridge_alloc (2 subtests) ===============
[21:46:33] [PASSED] drm_test_drm_bridge_alloc_basic
[21:46:33] [PASSED] drm_test_drm_bridge_alloc_get_put
[21:46:33] ================ [PASSED] drm_bridge_alloc =================
[21:46:33] ================== drm_buddy (8 subtests) ==================
[21:46:33] [PASSED] drm_test_buddy_alloc_limit
[21:46:33] [PASSED] drm_test_buddy_alloc_optimistic
[21:46:33] [PASSED] drm_test_buddy_alloc_pessimistic
[21:46:33] [PASSED] drm_test_buddy_alloc_pathological
[21:46:33] [PASSED] drm_test_buddy_alloc_contiguous
[21:46:33] [PASSED] drm_test_buddy_alloc_clear
[21:46:33] [PASSED] drm_test_buddy_alloc_range_bias
[21:46:34] [PASSED] drm_test_buddy_fragmentation_performance
[21:46:34] ==================== [PASSED] drm_buddy ====================
[21:46:34] ============= drm_cmdline_parser (40 subtests) =============
[21:46:34] [PASSED] drm_test_cmdline_force_d_only
[21:46:34] [PASSED] drm_test_cmdline_force_D_only_dvi
[21:46:34] [PASSED] drm_test_cmdline_force_D_only_hdmi
[21:46:34] [PASSED] drm_test_cmdline_force_D_only_not_digital
[21:46:34] [PASSED] drm_test_cmdline_force_e_only
[21:46:34] [PASSED] drm_test_cmdline_res
[21:46:34] [PASSED] drm_test_cmdline_res_vesa
[21:46:34] [PASSED] drm_test_cmdline_res_vesa_rblank
[21:46:34] [PASSED] drm_test_cmdline_res_rblank
[21:46:34] [PASSED] drm_test_cmdline_res_bpp
[21:46:34] [PASSED] drm_test_cmdline_res_refresh
[21:46:34] [PASSED] drm_test_cmdline_res_bpp_refresh
[21:46:34] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[21:46:34] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[21:46:34] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[21:46:34] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[21:46:34] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[21:46:34] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[21:46:34] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[21:46:34] [PASSED] drm_test_cmdline_res_margins_force_on
[21:46:34] [PASSED] drm_test_cmdline_res_vesa_margins
[21:46:34] [PASSED] drm_test_cmdline_name
[21:46:34] [PASSED] drm_test_cmdline_name_bpp
[21:46:34] [PASSED] drm_test_cmdline_name_option
[21:46:34] [PASSED] drm_test_cmdline_name_bpp_option
[21:46:34] [PASSED] drm_test_cmdline_rotate_0
[21:46:34] [PASSED] drm_test_cmdline_rotate_90
[21:46:34] [PASSED] drm_test_cmdline_rotate_180
[21:46:34] [PASSED] drm_test_cmdline_rotate_270
[21:46:34] [PASSED] drm_test_cmdline_hmirror
[21:46:34] [PASSED] drm_test_cmdline_vmirror
[21:46:34] [PASSED] drm_test_cmdline_margin_options
[21:46:34] [PASSED] drm_test_cmdline_multiple_options
[21:46:34] [PASSED] drm_test_cmdline_bpp_extra_and_option
[21:46:34] [PASSED] drm_test_cmdline_extra_and_option
[21:46:34] [PASSED] drm_test_cmdline_freestanding_options
[21:46:34] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[21:46:34] [PASSED] drm_test_cmdline_panel_orientation
[21:46:34] ================ drm_test_cmdline_invalid  =================
[21:46:34] [PASSED] margin_only
[21:46:34] [PASSED] interlace_only
[21:46:34] [PASSED] res_missing_x
[21:46:34] [PASSED] res_missing_y
[21:46:34] [PASSED] res_bad_y
[21:46:34] [PASSED] res_missing_y_bpp
[21:46:34] [PASSED] res_bad_bpp
[21:46:34] [PASSED] res_bad_refresh
[21:46:34] [PASSED] res_bpp_refresh_force_on_off
[21:46:34] [PASSED] res_invalid_mode
[21:46:34] [PASSED] res_bpp_wrong_place_mode
[21:46:34] [PASSED] name_bpp_refresh
[21:46:34] [PASSED] name_refresh
[21:46:34] [PASSED] name_refresh_wrong_mode
[21:46:34] [PASSED] name_refresh_invalid_mode
[21:46:34] [PASSED] rotate_multiple
[21:46:34] [PASSED] rotate_invalid_val
[21:46:34] [PASSED] rotate_truncated
[21:46:34] [PASSED] invalid_option
[21:46:34] [PASSED] invalid_tv_option
[21:46:34] [PASSED] truncated_tv_option
[21:46:34] ============ [PASSED] drm_test_cmdline_invalid =============
[21:46:34] =============== drm_test_cmdline_tv_options  ===============
[21:46:34] [PASSED] NTSC
[21:46:34] [PASSED] NTSC_443
[21:46:34] [PASSED] NTSC_J
[21:46:34] [PASSED] PAL
[21:46:34] [PASSED] PAL_M
[21:46:34] [PASSED] PAL_N
[21:46:34] [PASSED] SECAM
[21:46:34] [PASSED] MONO_525
[21:46:34] [PASSED] MONO_625
[21:46:34] =========== [PASSED] drm_test_cmdline_tv_options ===========
[21:46:34] =============== [PASSED] drm_cmdline_parser ================
[21:46:34] ========== drmm_connector_hdmi_init (20 subtests) ==========
[21:46:34] [PASSED] drm_test_connector_hdmi_init_valid
[21:46:34] [PASSED] drm_test_connector_hdmi_init_bpc_8
[21:46:34] [PASSED] drm_test_connector_hdmi_init_bpc_10
[21:46:34] [PASSED] drm_test_connector_hdmi_init_bpc_12
[21:46:34] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[21:46:34] [PASSED] drm_test_connector_hdmi_init_bpc_null
[21:46:34] [PASSED] drm_test_connector_hdmi_init_formats_empty
[21:46:34] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[21:46:34] === drm_test_connector_hdmi_init_formats_yuv420_allowed  ===
[21:46:34] [PASSED] supported_formats=0x9 yuv420_allowed=1
[21:46:34] [PASSED] supported_formats=0x9 yuv420_allowed=0
[21:46:34] [PASSED] supported_formats=0x3 yuv420_allowed=1
[21:46:34] [PASSED] supported_formats=0x3 yuv420_allowed=0
[21:46:34] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[21:46:34] [PASSED] drm_test_connector_hdmi_init_null_ddc
[21:46:34] [PASSED] drm_test_connector_hdmi_init_null_product
[21:46:34] [PASSED] drm_test_connector_hdmi_init_null_vendor
[21:46:34] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[21:46:34] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[21:46:34] [PASSED] drm_test_connector_hdmi_init_product_valid
[21:46:34] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[21:46:34] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[21:46:34] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[21:46:34] ========= drm_test_connector_hdmi_init_type_valid  =========
[21:46:34] [PASSED] HDMI-A
[21:46:34] [PASSED] HDMI-B
[21:46:34] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[21:46:34] ======== drm_test_connector_hdmi_init_type_invalid  ========
[21:46:34] [PASSED] Unknown
[21:46:34] [PASSED] VGA
[21:46:34] [PASSED] DVI-I
[21:46:34] [PASSED] DVI-D
[21:46:34] [PASSED] DVI-A
[21:46:34] [PASSED] Composite
[21:46:34] [PASSED] SVIDEO
[21:46:34] [PASSED] LVDS
[21:46:34] [PASSED] Component
[21:46:34] [PASSED] DIN
[21:46:34] [PASSED] DP
[21:46:34] [PASSED] TV
[21:46:34] [PASSED] eDP
[21:46:34] [PASSED] Virtual
[21:46:34] [PASSED] DSI
[21:46:34] [PASSED] DPI
[21:46:34] [PASSED] Writeback
[21:46:34] [PASSED] SPI
[21:46:34] [PASSED] USB
[21:46:34] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[21:46:34] ============ [PASSED] drmm_connector_hdmi_init =============
[21:46:34] ============= drmm_connector_init (3 subtests) =============
[21:46:34] [PASSED] drm_test_drmm_connector_init
[21:46:34] [PASSED] drm_test_drmm_connector_init_null_ddc
[21:46:34] ========= drm_test_drmm_connector_init_type_valid  =========
[21:46:34] [PASSED] Unknown
[21:46:34] [PASSED] VGA
[21:46:34] [PASSED] DVI-I
[21:46:34] [PASSED] DVI-D
[21:46:34] [PASSED] DVI-A
[21:46:34] [PASSED] Composite
[21:46:34] [PASSED] SVIDEO
[21:46:34] [PASSED] LVDS
[21:46:34] [PASSED] Component
[21:46:34] [PASSED] DIN
[21:46:34] [PASSED] DP
[21:46:34] [PASSED] HDMI-A
[21:46:34] [PASSED] HDMI-B
[21:46:34] [PASSED] TV
[21:46:34] [PASSED] eDP
[21:46:34] [PASSED] Virtual
[21:46:34] [PASSED] DSI
[21:46:34] [PASSED] DPI
[21:46:34] [PASSED] Writeback
[21:46:34] [PASSED] SPI
[21:46:34] [PASSED] USB
[21:46:34] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[21:46:34] =============== [PASSED] drmm_connector_init ===============
[21:46:34] ========= drm_connector_dynamic_init (6 subtests) ==========
[21:46:34] [PASSED] drm_test_drm_connector_dynamic_init
[21:46:34] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[21:46:34] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[21:46:34] [PASSED] drm_test_drm_connector_dynamic_init_properties
[21:46:34] ===== drm_test_drm_connector_dynamic_init_type_valid  ======
[21:46:34] [PASSED] Unknown
[21:46:34] [PASSED] VGA
[21:46:34] [PASSED] DVI-I
[21:46:34] [PASSED] DVI-D
[21:46:34] [PASSED] DVI-A
[21:46:34] [PASSED] Composite
[21:46:34] [PASSED] SVIDEO
[21:46:34] [PASSED] LVDS
[21:46:34] [PASSED] Component
[21:46:34] [PASSED] DIN
[21:46:34] [PASSED] DP
[21:46:34] [PASSED] HDMI-A
[21:46:34] [PASSED] HDMI-B
[21:46:34] [PASSED] TV
[21:46:34] [PASSED] eDP
[21:46:34] [PASSED] Virtual
[21:46:34] [PASSED] DSI
[21:46:34] [PASSED] DPI
[21:46:34] [PASSED] Writeback
[21:46:34] [PASSED] SPI
[21:46:34] [PASSED] USB
[21:46:34] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[21:46:34] ======== drm_test_drm_connector_dynamic_init_name  =========
[21:46:34] [PASSED] Unknown
[21:46:34] [PASSED] VGA
[21:46:34] [PASSED] DVI-I
[21:46:34] [PASSED] DVI-D
[21:46:34] [PASSED] DVI-A
[21:46:34] [PASSED] Composite
[21:46:34] [PASSED] SVIDEO
[21:46:34] [PASSED] LVDS
[21:46:34] [PASSED] Component
[21:46:34] [PASSED] DIN
[21:46:34] [PASSED] DP
[21:46:34] [PASSED] HDMI-A
[21:46:34] [PASSED] HDMI-B
[21:46:34] [PASSED] TV
[21:46:34] [PASSED] eDP
[21:46:34] [PASSED] Virtual
[21:46:34] [PASSED] DSI
[21:46:34] [PASSED] DPI
[21:46:34] [PASSED] Writeback
[21:46:34] [PASSED] SPI
[21:46:34] [PASSED] USB
[21:46:34] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[21:46:34] =========== [PASSED] drm_connector_dynamic_init ============
[21:46:34] ==== drm_connector_dynamic_register_early (4 subtests) =====
[21:46:34] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[21:46:34] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[21:46:34] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[21:46:34] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[21:46:34] ====== [PASSED] drm_connector_dynamic_register_early =======
[21:46:34] ======= drm_connector_dynamic_register (7 subtests) ========
[21:46:34] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[21:46:34] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[21:46:34] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[21:46:34] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[21:46:34] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[21:46:34] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[21:46:34] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[21:46:34] ========= [PASSED] drm_connector_dynamic_register ==========
[21:46:34] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[21:46:34] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[21:46:34] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[21:46:34] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[21:46:34] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[21:46:34] ========== drm_test_get_tv_mode_from_name_valid  ===========
[21:46:34] [PASSED] NTSC
[21:46:34] [PASSED] NTSC-443
[21:46:34] [PASSED] NTSC-J
[21:46:34] [PASSED] PAL
[21:46:34] [PASSED] PAL-M
[21:46:34] [PASSED] PAL-N
[21:46:34] [PASSED] SECAM
[21:46:34] [PASSED] Mono
[21:46:34] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[21:46:34] [PASSED] drm_test_get_tv_mode_from_name_truncated
[21:46:34] ============ [PASSED] drm_get_tv_mode_from_name ============
[21:46:34] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[21:46:34] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[21:46:34] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[21:46:34] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[21:46:34] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[21:46:34] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[21:46:34] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[21:46:34] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid  =
[21:46:34] [PASSED] VIC 96
[21:46:34] [PASSED] VIC 97
[21:46:34] [PASSED] VIC 101
[21:46:34] [PASSED] VIC 102
[21:46:34] [PASSED] VIC 106
[21:46:34] [PASSED] VIC 107
[21:46:34] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[21:46:34] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[21:46:34] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[21:46:34] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[21:46:34] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[21:46:34] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[21:46:34] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[21:46:34] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[21:46:34] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name  ====
[21:46:34] [PASSED] Automatic
[21:46:34] [PASSED] Full
[21:46:34] [PASSED] Limited 16:235
[21:46:34] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[21:46:34] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[21:46:34] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[21:46:34] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[21:46:34] === drm_test_drm_hdmi_connector_get_output_format_name  ====
[21:46:34] [PASSED] RGB
[21:46:34] [PASSED] YUV 4:2:0
[21:46:34] [PASSED] YUV 4:2:2
[21:46:34] [PASSED] YUV 4:4:4
[21:46:34] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[21:46:34] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[21:46:34] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[21:46:34] ============= drm_damage_helper (21 subtests) ==============
[21:46:34] [PASSED] drm_test_damage_iter_no_damage
[21:46:34] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[21:46:34] [PASSED] drm_test_damage_iter_no_damage_src_moved
[21:46:34] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[21:46:34] [PASSED] drm_test_damage_iter_no_damage_not_visible
[21:46:34] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[21:46:34] [PASSED] drm_test_damage_iter_no_damage_no_fb
[21:46:34] [PASSED] drm_test_damage_iter_simple_damage
[21:46:34] [PASSED] drm_test_damage_iter_single_damage
[21:46:34] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[21:46:34] [PASSED] drm_test_damage_iter_single_damage_outside_src
[21:46:34] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[21:46:34] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[21:46:34] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[21:46:34] [PASSED] drm_test_damage_iter_single_damage_src_moved
[21:46:34] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[21:46:34] [PASSED] drm_test_damage_iter_damage
[21:46:34] [PASSED] drm_test_damage_iter_damage_one_intersect
[21:46:34] [PASSED] drm_test_damage_iter_damage_one_outside
[21:46:34] [PASSED] drm_test_damage_iter_damage_src_moved
[21:46:34] [PASSED] drm_test_damage_iter_damage_not_visible
[21:46:34] ================ [PASSED] drm_damage_helper ================
[21:46:34] ============== drm_dp_mst_helper (3 subtests) ==============
[21:46:34] ============== drm_test_dp_mst_calc_pbn_mode  ==============
[21:46:34] [PASSED] Clock 154000 BPP 30 DSC disabled
[21:46:34] [PASSED] Clock 234000 BPP 30 DSC disabled
[21:46:34] [PASSED] Clock 297000 BPP 24 DSC disabled
[21:46:34] [PASSED] Clock 332880 BPP 24 DSC enabled
[21:46:34] [PASSED] Clock 324540 BPP 24 DSC enabled
[21:46:34] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[21:46:34] ============== drm_test_dp_mst_calc_pbn_div  ===============
[21:46:34] [PASSED] Link rate 2000000 lane count 4
[21:46:34] [PASSED] Link rate 2000000 lane count 2
[21:46:34] [PASSED] Link rate 2000000 lane count 1
[21:46:34] [PASSED] Link rate 1350000 lane count 4
[21:46:34] [PASSED] Link rate 1350000 lane count 2
[21:46:34] [PASSED] Link rate 1350000 lane count 1
[21:46:34] [PASSED] Link rate 1000000 lane count 4
[21:46:34] [PASSED] Link rate 1000000 lane count 2
[21:46:34] [PASSED] Link rate 1000000 lane count 1
[21:46:34] [PASSED] Link rate 810000 lane count 4
[21:46:34] [PASSED] Link rate 810000 lane count 2
[21:46:34] [PASSED] Link rate 810000 lane count 1
[21:46:34] [PASSED] Link rate 540000 lane count 4
[21:46:34] [PASSED] Link rate 540000 lane count 2
[21:46:34] [PASSED] Link rate 540000 lane count 1
[21:46:34] [PASSED] Link rate 270000 lane count 4
[21:46:34] [PASSED] Link rate 270000 lane count 2
[21:46:34] [PASSED] Link rate 270000 lane count 1
[21:46:34] [PASSED] Link rate 162000 lane count 4
[21:46:34] [PASSED] Link rate 162000 lane count 2
[21:46:34] [PASSED] Link rate 162000 lane count 1
[21:46:34] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[21:46:34] ========= drm_test_dp_mst_sideband_msg_req_decode  =========
[21:46:34] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[21:46:34] [PASSED] DP_POWER_UP_PHY with port number
[21:46:34] [PASSED] DP_POWER_DOWN_PHY with port number
[21:46:34] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[21:46:34] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[21:46:34] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[21:46:34] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[21:46:34] [PASSED] DP_QUERY_PAYLOAD with port number
[21:46:34] [PASSED] DP_QUERY_PAYLOAD with VCPI
[21:46:34] [PASSED] DP_REMOTE_DPCD_READ with port number
[21:46:34] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[21:46:34] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[21:46:34] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[21:46:34] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[21:46:34] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[21:46:34] [PASSED] DP_REMOTE_I2C_READ with port number
[21:46:34] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[21:46:34] [PASSED] DP_REMOTE_I2C_READ with transactions array
[21:46:34] [PASSED] DP_REMOTE_I2C_WRITE with port number
[21:46:34] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[21:46:34] [PASSED] DP_REMOTE_I2C_WRITE with data array
[21:46:34] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[21:46:34] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[21:46:34] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[21:46:34] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[21:46:34] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[21:46:34] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[21:46:34] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[21:46:34] ================ [PASSED] drm_dp_mst_helper ================
[21:46:34] ================== drm_exec (7 subtests) ===================
[21:46:34] [PASSED] sanitycheck
[21:46:34] [PASSED] test_lock
[21:46:34] [PASSED] test_lock_unlock
[21:46:34] [PASSED] test_duplicates
[21:46:34] [PASSED] test_prepare
[21:46:34] [PASSED] test_prepare_array
[21:46:34] [PASSED] test_multiple_loops
[21:46:34] ==================== [PASSED] drm_exec =====================
[21:46:34] =========== drm_format_helper_test (17 subtests) ===========
[21:46:34] ============== drm_test_fb_xrgb8888_to_gray8  ==============
[21:46:34] [PASSED] single_pixel_source_buffer
[21:46:34] [PASSED] single_pixel_clip_rectangle
[21:46:34] [PASSED] well_known_colors
[21:46:34] [PASSED] destination_pitch
[21:46:34] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[21:46:34] ============= drm_test_fb_xrgb8888_to_rgb332  ==============
[21:46:34] [PASSED] single_pixel_source_buffer
[21:46:34] [PASSED] single_pixel_clip_rectangle
[21:46:34] [PASSED] well_known_colors
[21:46:34] [PASSED] destination_pitch
[21:46:34] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[21:46:34] ============= drm_test_fb_xrgb8888_to_rgb565  ==============
[21:46:34] [PASSED] single_pixel_source_buffer
[21:46:34] [PASSED] single_pixel_clip_rectangle
[21:46:34] [PASSED] well_known_colors
[21:46:34] [PASSED] destination_pitch
[21:46:34] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[21:46:34] ============ drm_test_fb_xrgb8888_to_xrgb1555  =============
[21:46:34] [PASSED] single_pixel_source_buffer
[21:46:34] [PASSED] single_pixel_clip_rectangle
[21:46:34] [PASSED] well_known_colors
[21:46:34] [PASSED] destination_pitch
[21:46:34] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[21:46:34] ============ drm_test_fb_xrgb8888_to_argb1555  =============
[21:46:34] [PASSED] single_pixel_source_buffer
[21:46:34] [PASSED] single_pixel_clip_rectangle
[21:46:34] [PASSED] well_known_colors
[21:46:34] [PASSED] destination_pitch
[21:46:34] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[21:46:34] ============ drm_test_fb_xrgb8888_to_rgba5551  =============
[21:46:34] [PASSED] single_pixel_source_buffer
[21:46:34] [PASSED] single_pixel_clip_rectangle
[21:46:34] [PASSED] well_known_colors
[21:46:34] [PASSED] destination_pitch
[21:46:34] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[21:46:34] ============= drm_test_fb_xrgb8888_to_rgb888  ==============
[21:46:34] [PASSED] single_pixel_source_buffer
[21:46:34] [PASSED] single_pixel_clip_rectangle
[21:46:34] [PASSED] well_known_colors
[21:46:34] [PASSED] destination_pitch
[21:46:34] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[21:46:34] ============= drm_test_fb_xrgb8888_to_bgr888  ==============
[21:46:34] [PASSED] single_pixel_source_buffer
[21:46:34] [PASSED] single_pixel_clip_rectangle
[21:46:34] [PASSED] well_known_colors
[21:46:34] [PASSED] destination_pitch
[21:46:34] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[21:46:34] ============ drm_test_fb_xrgb8888_to_argb8888  =============
[21:46:34] [PASSED] single_pixel_source_buffer
[21:46:34] [PASSED] single_pixel_clip_rectangle
[21:46:34] [PASSED] well_known_colors
[21:46:34] [PASSED] destination_pitch
[21:46:34] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[21:46:34] =========== drm_test_fb_xrgb8888_to_xrgb2101010  ===========
[21:46:34] [PASSED] single_pixel_source_buffer
[21:46:34] [PASSED] single_pixel_clip_rectangle
[21:46:34] [PASSED] well_known_colors
[21:46:34] [PASSED] destination_pitch
[21:46:34] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[21:46:34] =========== drm_test_fb_xrgb8888_to_argb2101010  ===========
[21:46:34] [PASSED] single_pixel_source_buffer
[21:46:34] [PASSED] single_pixel_clip_rectangle
[21:46:34] [PASSED] well_known_colors
[21:46:34] [PASSED] destination_pitch
[21:46:34] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[21:46:34] ============== drm_test_fb_xrgb8888_to_mono  ===============
[21:46:34] [PASSED] single_pixel_source_buffer
[21:46:34] [PASSED] single_pixel_clip_rectangle
[21:46:34] [PASSED] well_known_colors
[21:46:34] [PASSED] destination_pitch
[21:46:34] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[21:46:34] ==================== drm_test_fb_swab  =====================
[21:46:34] [PASSED] single_pixel_source_buffer
[21:46:34] [PASSED] single_pixel_clip_rectangle
[21:46:34] [PASSED] well_known_colors
[21:46:34] [PASSED] destination_pitch
[21:46:34] ================ [PASSED] drm_test_fb_swab =================
[21:46:34] ============ drm_test_fb_xrgb8888_to_xbgr8888  =============
[21:46:34] [PASSED] single_pixel_source_buffer
[21:46:34] [PASSED] single_pixel_clip_rectangle
[21:46:34] [PASSED] well_known_colors
[21:46:34] [PASSED] destination_pitch
[21:46:34] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[21:46:34] ============ drm_test_fb_xrgb8888_to_abgr8888  =============
[21:46:34] [PASSED] single_pixel_source_buffer
[21:46:34] [PASSED] single_pixel_clip_rectangle
[21:46:34] [PASSED] well_known_colors
[21:46:34] [PASSED] destination_pitch
[21:46:34] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[21:46:34] ================= drm_test_fb_clip_offset  =================
[21:46:34] [PASSED] pass through
[21:46:34] [PASSED] horizontal offset
[21:46:34] [PASSED] vertical offset
[21:46:34] [PASSED] horizontal and vertical offset
[21:46:34] [PASSED] horizontal offset (custom pitch)
[21:46:34] [PASSED] vertical offset (custom pitch)
[21:46:34] [PASSED] horizontal and vertical offset (custom pitch)
[21:46:34] ============= [PASSED] drm_test_fb_clip_offset =============
[21:46:34] =================== drm_test_fb_memcpy  ====================
[21:46:34] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[21:46:34] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[21:46:34] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[21:46:34] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[21:46:34] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[21:46:34] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[21:46:34] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[21:46:34] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[21:46:34] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[21:46:34] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[21:46:34] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[21:46:34] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[21:46:34] =============== [PASSED] drm_test_fb_memcpy ================
[21:46:34] ============= [PASSED] drm_format_helper_test ==============
[21:46:34] ================= drm_format (18 subtests) =================
[21:46:34] [PASSED] drm_test_format_block_width_invalid
[21:46:34] [PASSED] drm_test_format_block_width_one_plane
[21:46:34] [PASSED] drm_test_format_block_width_two_plane
[21:46:34] [PASSED] drm_test_format_block_width_three_plane
[21:46:34] [PASSED] drm_test_format_block_width_tiled
[21:46:34] [PASSED] drm_test_format_block_height_invalid
[21:46:34] [PASSED] drm_test_format_block_height_one_plane
[21:46:34] [PASSED] drm_test_format_block_height_two_plane
[21:46:34] [PASSED] drm_test_format_block_height_three_plane
[21:46:34] [PASSED] drm_test_format_block_height_tiled
[21:46:34] [PASSED] drm_test_format_min_pitch_invalid
[21:46:34] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[21:46:34] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[21:46:34] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[21:46:34] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[21:46:34] [PASSED] drm_test_format_min_pitch_two_plane
[21:46:34] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[21:46:34] [PASSED] drm_test_format_min_pitch_tiled
[21:46:34] =================== [PASSED] drm_format ====================
[21:46:34] ============== drm_framebuffer (10 subtests) ===============
[21:46:34] ========== drm_test_framebuffer_check_src_coords  ==========
[21:46:34] [PASSED] Success: source fits into fb
[21:46:34] [PASSED] Fail: overflowing fb with x-axis coordinate
[21:46:34] [PASSED] Fail: overflowing fb with y-axis coordinate
[21:46:34] [PASSED] Fail: overflowing fb with source width
[21:46:34] [PASSED] Fail: overflowing fb with source height
[21:46:34] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[21:46:34] [PASSED] drm_test_framebuffer_cleanup
[21:46:34] =============== drm_test_framebuffer_create  ===============
[21:46:34] [PASSED] ABGR8888 normal sizes
[21:46:34] [PASSED] ABGR8888 max sizes
[21:46:34] [PASSED] ABGR8888 pitch greater than min required
[21:46:34] [PASSED] ABGR8888 pitch less than min required
[21:46:34] [PASSED] ABGR8888 Invalid width
[21:46:34] [PASSED] ABGR8888 Invalid buffer handle
[21:46:34] [PASSED] No pixel format
[21:46:34] [PASSED] ABGR8888 Width 0
[21:46:34] [PASSED] ABGR8888 Height 0
[21:46:34] [PASSED] ABGR8888 Out of bound height * pitch combination
[21:46:34] [PASSED] ABGR8888 Large buffer offset
[21:46:34] [PASSED] ABGR8888 Buffer offset for inexistent plane
[21:46:34] [PASSED] ABGR8888 Invalid flag
[21:46:34] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[21:46:34] [PASSED] ABGR8888 Valid buffer modifier
[21:46:34] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[21:46:34] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[21:46:34] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[21:46:34] [PASSED] NV12 Normal sizes
[21:46:34] [PASSED] NV12 Max sizes
[21:46:34] [PASSED] NV12 Invalid pitch
[21:46:34] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[21:46:34] [PASSED] NV12 different  modifier per-plane
[21:46:34] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[21:46:34] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[21:46:34] [PASSED] NV12 Modifier for inexistent plane
[21:46:34] [PASSED] NV12 Handle for inexistent plane
[21:46:34] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[21:46:34] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[21:46:34] [PASSED] YVU420 Normal sizes
[21:46:34] [PASSED] YVU420 Max sizes
[21:46:34] [PASSED] YVU420 Invalid pitch
[21:46:34] [PASSED] YVU420 Different pitches
[21:46:34] [PASSED] YVU420 Different buffer offsets/pitches
[21:46:34] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[21:46:34] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[21:46:34] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[21:46:34] [PASSED] YVU420 Valid modifier
[21:46:34] [PASSED] YVU420 Different modifiers per plane
[21:46:34] [PASSED] YVU420 Modifier for inexistent plane
[21:46:34] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[21:46:34] [PASSED] X0L2 Normal sizes
[21:46:34] [PASSED] X0L2 Max sizes
[21:46:34] [PASSED] X0L2 Invalid pitch
[21:46:34] [PASSED] X0L2 Pitch greater than minimum required
[21:46:34] [PASSED] X0L2 Handle for inexistent plane
[21:46:34] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[21:46:34] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[21:46:34] [PASSED] X0L2 Valid modifier
[21:46:34] [PASSED] X0L2 Modifier for inexistent plane
[21:46:34] =========== [PASSED] drm_test_framebuffer_create ===========
[21:46:34] [PASSED] drm_test_framebuffer_free
[21:46:34] [PASSED] drm_test_framebuffer_init
[21:46:34] [PASSED] drm_test_framebuffer_init_bad_format
[21:46:34] [PASSED] drm_test_framebuffer_init_dev_mismatch
[21:46:34] [PASSED] drm_test_framebuffer_lookup
[21:46:34] [PASSED] drm_test_framebuffer_lookup_inexistent
[21:46:34] [PASSED] drm_test_framebuffer_modifiers_not_supported
[21:46:34] ================= [PASSED] drm_framebuffer =================
[21:46:34] ================ drm_gem_shmem (8 subtests) ================
[21:46:34] [PASSED] drm_gem_shmem_test_obj_create
[21:46:34] [PASSED] drm_gem_shmem_test_obj_create_private
[21:46:34] [PASSED] drm_gem_shmem_test_pin_pages
[21:46:34] [PASSED] drm_gem_shmem_test_vmap
[21:46:34] [PASSED] drm_gem_shmem_test_get_pages_sgt
[21:46:34] [PASSED] drm_gem_shmem_test_get_sg_table
[21:46:34] [PASSED] drm_gem_shmem_test_madvise
[21:46:34] [PASSED] drm_gem_shmem_test_purge
[21:46:34] ================== [PASSED] drm_gem_shmem ==================
[21:46:34] === drm_atomic_helper_connector_hdmi_check (27 subtests) ===
[21:46:34] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[21:46:34] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[21:46:34] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[21:46:34] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[21:46:34] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[21:46:34] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[21:46:34] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420  =======
[21:46:34] [PASSED] Automatic
[21:46:34] [PASSED] Full
[21:46:34] [PASSED] Limited 16:235
[21:46:34] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[21:46:34] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[21:46:34] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[21:46:34] [PASSED] drm_test_check_disable_connector
[21:46:34] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[21:46:34] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[21:46:34] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[21:46:34] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[21:46:34] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[21:46:34] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[21:46:34] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[21:46:34] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[21:46:34] [PASSED] drm_test_check_output_bpc_dvi
[21:46:34] [PASSED] drm_test_check_output_bpc_format_vic_1
[21:46:34] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[21:46:34] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[21:46:34] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[21:46:34] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[21:46:34] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[21:46:34] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[21:46:34] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[21:46:34] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[21:46:34] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[21:46:34] [PASSED] drm_test_check_broadcast_rgb_value
[21:46:34] [PASSED] drm_test_check_bpc_8_value
[21:46:34] [PASSED] drm_test_check_bpc_10_value
[21:46:34] [PASSED] drm_test_check_bpc_12_value
[21:46:34] [PASSED] drm_test_check_format_value
[21:46:34] [PASSED] drm_test_check_tmds_char_value
[21:46:34] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[21:46:34] = drm_atomic_helper_connector_hdmi_mode_valid (4 subtests) =
[21:46:34] [PASSED] drm_test_check_mode_valid
[21:46:34] [PASSED] drm_test_check_mode_valid_reject
[21:46:34] [PASSED] drm_test_check_mode_valid_reject_rate
[21:46:34] [PASSED] drm_test_check_mode_valid_reject_max_clock
[21:46:34] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[21:46:34] ================= drm_managed (2 subtests) =================
[21:46:34] [PASSED] drm_test_managed_release_action
[21:46:34] [PASSED] drm_test_managed_run_action
[21:46:34] =================== [PASSED] drm_managed ===================
[21:46:34] =================== drm_mm (6 subtests) ====================
[21:46:34] [PASSED] drm_test_mm_init
[21:46:34] [PASSED] drm_test_mm_debug
[21:46:34] [PASSED] drm_test_mm_align32
[21:46:34] [PASSED] drm_test_mm_align64
[21:46:34] [PASSED] drm_test_mm_lowest
[21:46:34] [PASSED] drm_test_mm_highest
[21:46:34] ===================== [PASSED] drm_mm ======================
[21:46:34] ============= drm_modes_analog_tv (5 subtests) =============
[21:46:34] [PASSED] drm_test_modes_analog_tv_mono_576i
[21:46:34] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[21:46:34] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[21:46:34] [PASSED] drm_test_modes_analog_tv_pal_576i
[21:46:34] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[21:46:34] =============== [PASSED] drm_modes_analog_tv ===============
[21:46:34] ============== drm_plane_helper (2 subtests) ===============
[21:46:34] =============== drm_test_check_plane_state  ================
[21:46:34] [PASSED] clipping_simple
[21:46:34] [PASSED] clipping_rotate_reflect
[21:46:34] [PASSED] positioning_simple
[21:46:34] [PASSED] upscaling
[21:46:34] [PASSED] downscaling
[21:46:34] [PASSED] rounding1
[21:46:34] [PASSED] rounding2
[21:46:34] [PASSED] rounding3
[21:46:34] [PASSED] rounding4
[21:46:34] =========== [PASSED] drm_test_check_plane_state ============
[21:46:34] =========== drm_test_check_invalid_plane_state  ============
[21:46:34] [PASSED] positioning_invalid
[21:46:34] [PASSED] upscaling_invalid
[21:46:34] [PASSED] downscaling_invalid
[21:46:34] ======= [PASSED] drm_test_check_invalid_plane_state ========
[21:46:34] ================ [PASSED] drm_plane_helper =================
[21:46:34] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[21:46:34] ====== drm_test_connector_helper_tv_get_modes_check  =======
[21:46:34] [PASSED] None
[21:46:34] [PASSED] PAL
[21:46:34] [PASSED] NTSC
[21:46:34] [PASSED] Both, NTSC Default
[21:46:34] [PASSED] Both, PAL Default
[21:46:34] [PASSED] Both, NTSC Default, with PAL on command-line
[21:46:34] [PASSED] Both, PAL Default, with NTSC on command-line
[21:46:34] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[21:46:34] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[21:46:34] ================== drm_rect (9 subtests) ===================
[21:46:34] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[21:46:34] [PASSED] drm_test_rect_clip_scaled_not_clipped
[21:46:34] [PASSED] drm_test_rect_clip_scaled_clipped
[21:46:34] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[21:46:34] ================= drm_test_rect_intersect  =================
[21:46:34] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[21:46:34] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[21:46:34] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[21:46:34] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[21:46:34] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[21:46:34] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[21:46:34] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[21:46:34] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[21:46:34] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[21:46:34] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[21:46:34] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[21:46:34] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[21:46:34] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[21:46:34] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[21:46:34] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[21:46:34] ============= [PASSED] drm_test_rect_intersect =============
[21:46:34] ================ drm_test_rect_calc_hscale  ================
[21:46:34] [PASSED] normal use
[21:46:34] [PASSED] out of max range
[21:46:34] [PASSED] out of min range
[21:46:34] [PASSED] zero dst
[21:46:34] [PASSED] negative src
[21:46:34] [PASSED] negative dst
[21:46:34] ============ [PASSED] drm_test_rect_calc_hscale ============
[21:46:34] ================ drm_test_rect_calc_vscale  ================
[21:46:34] [PASSED] normal use
stty: 'standard input': Inappropriate ioctl for device
[21:46:34] [PASSED] out of max range
[21:46:34] [PASSED] out of min range
[21:46:34] [PASSED] zero dst
[21:46:34] [PASSED] negative src
[21:46:34] [PASSED] negative dst
[21:46:34] ============ [PASSED] drm_test_rect_calc_vscale ============
[21:46:34] ================== drm_test_rect_rotate  ===================
[21:46:34] [PASSED] reflect-x
[21:46:34] [PASSED] reflect-y
[21:46:34] [PASSED] rotate-0
[21:46:34] [PASSED] rotate-90
[21:46:34] [PASSED] rotate-180
[21:46:34] [PASSED] rotate-270
[21:46:34] ============== [PASSED] drm_test_rect_rotate ===============
[21:46:34] ================ drm_test_rect_rotate_inv  =================
[21:46:34] [PASSED] reflect-x
[21:46:34] [PASSED] reflect-y
[21:46:34] [PASSED] rotate-0
[21:46:34] [PASSED] rotate-90
[21:46:34] [PASSED] rotate-180
[21:46:34] [PASSED] rotate-270
[21:46:34] ============ [PASSED] drm_test_rect_rotate_inv =============
[21:46:34] ==================== [PASSED] drm_rect =====================
[21:46:34] ============ drm_sysfb_modeset_test (1 subtest) ============
[21:46:34] ============ drm_test_sysfb_build_fourcc_list  =============
[21:46:34] [PASSED] no native formats
[21:46:34] [PASSED] XRGB8888 as native format
[21:46:34] [PASSED] remove duplicates
[21:46:34] [PASSED] convert alpha formats
[21:46:34] [PASSED] random formats
[21:46:34] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[21:46:34] ============= [PASSED] drm_sysfb_modeset_test ==============
[21:46:34] ============================================================
[21:46:34] Testing complete. Ran 622 tests: passed: 622
[21:46:34] Elapsed time: 27.070s total, 1.761s configuring, 24.889s building, 0.403s running

+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[21:46:34] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[21:46:35] 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
[21:46:45] Starting KUnit Kernel (1/1)...
[21:46:45] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[21:46:45] ================= ttm_device (5 subtests) ==================
[21:46:45] [PASSED] ttm_device_init_basic
[21:46:45] [PASSED] ttm_device_init_multiple
[21:46:45] [PASSED] ttm_device_fini_basic
[21:46:45] [PASSED] ttm_device_init_no_vma_man
[21:46:45] ================== ttm_device_init_pools  ==================
[21:46:45] [PASSED] No DMA allocations, no DMA32 required
[21:46:45] [PASSED] DMA allocations, DMA32 required
[21:46:45] [PASSED] No DMA allocations, DMA32 required
[21:46:45] [PASSED] DMA allocations, no DMA32 required
[21:46:45] ============== [PASSED] ttm_device_init_pools ==============
[21:46:45] =================== [PASSED] ttm_device ====================
[21:46:45] ================== ttm_pool (8 subtests) ===================
[21:46:45] ================== ttm_pool_alloc_basic  ===================
[21:46:45] [PASSED] One page
[21:46:45] [PASSED] More than one page
[21:46:45] [PASSED] Above the allocation limit
[21:46:45] [PASSED] One page, with coherent DMA mappings enabled
[21:46:45] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[21:46:45] ============== [PASSED] ttm_pool_alloc_basic ===============
[21:46:45] ============== ttm_pool_alloc_basic_dma_addr  ==============
[21:46:45] [PASSED] One page
[21:46:45] [PASSED] More than one page
[21:46:45] [PASSED] Above the allocation limit
[21:46:45] [PASSED] One page, with coherent DMA mappings enabled
[21:46:45] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[21:46:45] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[21:46:45] [PASSED] ttm_pool_alloc_order_caching_match
[21:46:45] [PASSED] ttm_pool_alloc_caching_mismatch
[21:46:45] [PASSED] ttm_pool_alloc_order_mismatch
[21:46:45] [PASSED] ttm_pool_free_dma_alloc
[21:46:45] [PASSED] ttm_pool_free_no_dma_alloc
[21:46:45] [PASSED] ttm_pool_fini_basic
[21:46:45] ==================== [PASSED] ttm_pool =====================
[21:46:45] ================ ttm_resource (8 subtests) =================
[21:46:45] ================= ttm_resource_init_basic  =================
[21:46:45] [PASSED] Init resource in TTM_PL_SYSTEM
[21:46:45] [PASSED] Init resource in TTM_PL_VRAM
[21:46:45] [PASSED] Init resource in a private placement
[21:46:45] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[21:46:45] ============= [PASSED] ttm_resource_init_basic =============
[21:46:45] [PASSED] ttm_resource_init_pinned
[21:46:45] [PASSED] ttm_resource_fini_basic
[21:46:45] [PASSED] ttm_resource_manager_init_basic
[21:46:45] [PASSED] ttm_resource_manager_usage_basic
[21:46:45] [PASSED] ttm_resource_manager_set_used_basic
[21:46:45] [PASSED] ttm_sys_man_alloc_basic
[21:46:45] [PASSED] ttm_sys_man_free_basic
[21:46:45] ================== [PASSED] ttm_resource ===================
[21:46:45] =================== ttm_tt (15 subtests) ===================
[21:46:45] ==================== ttm_tt_init_basic  ====================
[21:46:45] [PASSED] Page-aligned size
[21:46:45] [PASSED] Extra pages requested
[21:46:45] ================ [PASSED] ttm_tt_init_basic ================
[21:46:45] [PASSED] ttm_tt_init_misaligned
[21:46:45] [PASSED] ttm_tt_fini_basic
[21:46:45] [PASSED] ttm_tt_fini_sg
[21:46:45] [PASSED] ttm_tt_fini_shmem
[21:46:45] [PASSED] ttm_tt_create_basic
[21:46:45] [PASSED] ttm_tt_create_invalid_bo_type
[21:46:45] [PASSED] ttm_tt_create_ttm_exists
[21:46:45] [PASSED] ttm_tt_create_failed
[21:46:45] [PASSED] ttm_tt_destroy_basic
[21:46:45] [PASSED] ttm_tt_populate_null_ttm
[21:46:45] [PASSED] ttm_tt_populate_populated_ttm
[21:46:45] [PASSED] ttm_tt_unpopulate_basic
[21:46:45] [PASSED] ttm_tt_unpopulate_empty_ttm
[21:46:45] [PASSED] ttm_tt_swapin_basic
[21:46:45] ===================== [PASSED] ttm_tt ======================
[21:46:45] =================== ttm_bo (14 subtests) ===================
[21:46:45] =========== ttm_bo_reserve_optimistic_no_ticket  ===========
[21:46:45] [PASSED] Cannot be interrupted and sleeps
[21:46:45] [PASSED] Cannot be interrupted, locks straight away
[21:46:45] [PASSED] Can be interrupted, sleeps
[21:46:45] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[21:46:45] [PASSED] ttm_bo_reserve_locked_no_sleep
[21:46:45] [PASSED] ttm_bo_reserve_no_wait_ticket
[21:46:45] [PASSED] ttm_bo_reserve_double_resv
[21:46:45] [PASSED] ttm_bo_reserve_interrupted
[21:46:45] [PASSED] ttm_bo_reserve_deadlock
[21:46:45] [PASSED] ttm_bo_unreserve_basic
[21:46:45] [PASSED] ttm_bo_unreserve_pinned
[21:46:45] [PASSED] ttm_bo_unreserve_bulk
[21:46:45] [PASSED] ttm_bo_fini_basic
[21:46:45] [PASSED] ttm_bo_fini_shared_resv
[21:46:45] [PASSED] ttm_bo_pin_basic
[21:46:45] [PASSED] ttm_bo_pin_unpin_resource
[21:46:45] [PASSED] ttm_bo_multiple_pin_one_unpin
[21:46:45] ===================== [PASSED] ttm_bo ======================
[21:46:45] ============== ttm_bo_validate (21 subtests) ===============
[21:46:45] ============== ttm_bo_init_reserved_sys_man  ===============
[21:46:45] [PASSED] Buffer object for userspace
[21:46:45] [PASSED] Kernel buffer object
[21:46:45] [PASSED] Shared buffer object
[21:46:45] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[21:46:45] ============== ttm_bo_init_reserved_mock_man  ==============
[21:46:45] [PASSED] Buffer object for userspace
[21:46:45] [PASSED] Kernel buffer object
[21:46:45] [PASSED] Shared buffer object
[21:46:45] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[21:46:45] [PASSED] ttm_bo_init_reserved_resv
[21:46:45] ================== ttm_bo_validate_basic  ==================
[21:46:45] [PASSED] Buffer object for userspace
[21:46:45] [PASSED] Kernel buffer object
[21:46:45] [PASSED] Shared buffer object
[21:46:45] ============== [PASSED] ttm_bo_validate_basic ==============
[21:46:45] [PASSED] ttm_bo_validate_invalid_placement
[21:46:45] ============= ttm_bo_validate_same_placement  ==============
[21:46:45] [PASSED] System manager
[21:46:45] [PASSED] VRAM manager
[21:46:45] ========= [PASSED] ttm_bo_validate_same_placement ==========
[21:46:45] [PASSED] ttm_bo_validate_failed_alloc
[21:46:45] [PASSED] ttm_bo_validate_pinned
[21:46:45] [PASSED] ttm_bo_validate_busy_placement
[21:46:45] ================ ttm_bo_validate_multihop  =================
[21:46:45] [PASSED] Buffer object for userspace
[21:46:45] [PASSED] Kernel buffer object
[21:46:45] [PASSED] Shared buffer object
[21:46:45] ============ [PASSED] ttm_bo_validate_multihop =============
[21:46:45] ========== ttm_bo_validate_no_placement_signaled  ==========
[21:46:45] [PASSED] Buffer object in system domain, no page vector
[21:46:45] [PASSED] Buffer object in system domain with an existing page vector
[21:46:45] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[21:46:45] ======== ttm_bo_validate_no_placement_not_signaled  ========
[21:46:45] [PASSED] Buffer object for userspace
[21:46:45] [PASSED] Kernel buffer object
[21:46:45] [PASSED] Shared buffer object
[21:46:45] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[21:46:45] [PASSED] ttm_bo_validate_move_fence_signaled
[21:46:45] ========= ttm_bo_validate_move_fence_not_signaled  =========
[21:46:45] [PASSED] Waits for GPU
[21:46:45] [PASSED] Tries to lock straight away
[21:46:45] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[21:46:45] [PASSED] ttm_bo_validate_happy_evict
[21:46:45] [PASSED] ttm_bo_validate_all_pinned_evict
[21:46:45] [PASSED] ttm_bo_validate_allowed_only_evict
[21:46:45] [PASSED] ttm_bo_validate_deleted_evict
[21:46:45] [PASSED] ttm_bo_validate_busy_domain_evict
[21:46:45] [PASSED] ttm_bo_validate_evict_gutting
[21:46:45] [PASSED] ttm_bo_validate_recrusive_evict
stty: 'standard input': Inappropriate ioctl for device
[21:46:45] ================= [PASSED] ttm_bo_validate =================
[21:46:45] ============================================================
[21:46:45] Testing complete. Ran 101 tests: passed: 101
[21:46:45] Elapsed time: 11.330s total, 1.703s configuring, 9.361s building, 0.226s running

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



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

* ✗ CI.checksparse: warning for drm/i915: dissolve soc/
  2025-11-19 18:52 [PATCH v2 00/13] drm/i915: dissolve soc/ Jani Nikula
                   ` (14 preceding siblings ...)
  2025-11-19 21:46 ` ✓ CI.KUnit: success " Patchwork
@ 2025-11-19 22:02 ` Patchwork
  2025-11-19 22:29 ` ✓ Xe.CI.BAT: success " Patchwork
                   ` (7 subsequent siblings)
  23 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2025-11-19 22:02 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-xe

== Series Details ==

Series: drm/i915: dissolve soc/
URL   : https://patchwork.freedesktop.org/series/157792/
State : warning

== Summary ==

+ trap cleanup EXIT
+ KERNEL=/kernel
+ MT=/root/linux/maintainer-tools
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools /root/linux/maintainer-tools
Cloning into '/root/linux/maintainer-tools'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ make -C /root/linux/maintainer-tools
make: Entering directory '/root/linux/maintainer-tools'
cc -O2 -g -Wextra -o remap-log remap-log.c
make: Leaving directory '/root/linux/maintainer-tools'
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ /root/linux/maintainer-tools/dim sparse --fast a95032b2166b5ae428c065917b843a1caf1e82b8
Sparse version: 0.6.4 (Ubuntu: 0.6.4-4ubuntu3)
Fast mode used, each commit won't be checked separately.
-
+drivers/gpu/drm/i915/display/intel_alpm.c: note: in included file:
+drivers/gpu/drm/i915/display/intel_casf.c:147:21: error: too long token expansion
+drivers/gpu/drm/i915/display/intel_cdclk.c: note: in included file:
+drivers/gpu/drm/i915/display/intel_ddi.c: note: in included file:
+drivers/gpu/drm/i915/display/intel_display_types.h:2072:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2072:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2072:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2072:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2072:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2072:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2072:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2072:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2072:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2072:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2072:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2072:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2072:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2072:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2072:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2072:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2085:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2085:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2085:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_hdcp.c: note: in included file:
+drivers/gpu/drm/i915/display/intel_hotplug.c: note: in included file:
+drivers/gpu/drm/i915/display/intel_lt_phy.c:1935:35: warning: Using plain integer as NULL pointer
+drivers/gpu/drm/i915/display/intel_pps.c: note: in included file:
+drivers/gpu/drm/i915/display/intel_psr.c: note: in included file:
+drivers/gpu/drm/i915/gt/intel_reset.c:1569:12: warning: context imbalance in '_intel_gt_reset_lock' - different lock contexts for basic block
+drivers/gpu/drm/i915/gt/intel_sseu.c:600:17: error: too long token expansion
+drivers/gpu/drm/i915/i915_active.c:1062:16: warning: context imbalance in '__i915_active_fence_set' - different lock contexts for basic block
+drivers/gpu/drm/i915/i915_drm_client.c:92:9: error: incompatible types in comparison expression (different address spaces):
+drivers/gpu/drm/i915/i915_drm_client.c:92:9: error: incompatible types in comparison expression (different address spaces):
+drivers/gpu/drm/i915/i915_drm_client.c:92:9:    expected struct list_head const *list
+drivers/gpu/drm/i915/i915_drm_client.c:92:9:    got struct list_head [noderef] __rcu *pos
+drivers/gpu/drm/i915/i915_drm_client.c:92:9:    struct list_head *
+drivers/gpu/drm/i915/i915_drm_client.c:92:9:    struct list_head *
+drivers/gpu/drm/i915/i915_drm_client.c:92:9:    struct list_head [noderef] __rcu *
+drivers/gpu/drm/i915/i915_drm_client.c:92:9:    struct list_head [noderef] __rcu *
+drivers/gpu/drm/i915/i915_drm_client.c:92:9: warning: incorrect type in argument 1 (different address spaces)
+drivers/gpu/drm/i915/i915_gpu_error.c:692:3: warning: symbol 'guc_hw_reg_state' was not declared. Should it be static?
+drivers/gpu/drm/i915/i915_irq.c:467:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:467:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:475:16: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:475:16: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:480:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:480:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:480:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:518:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:518:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:526:16: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:526:16: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:531:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:531:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:531:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:575:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:575:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:578:15: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:578:15: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:582:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:582:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:589:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:589:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:589:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:589:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/intel_uncore.c:1930:1: warning: context imbalance in 'fwtable_read8' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:1931:1: warning: context imbalance in 'fwtable_read16' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:1932:1: warning: context imbalance in 'fwtable_read32' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:1933:1: warning: context imbalance in 'fwtable_read64' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:1998:1: warning: context imbalance in 'gen6_write8' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:1999:1: warning: context imbalance in 'gen6_write16' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:2000:1: warning: context imbalance in 'gen6_write32' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:2020:1: warning: context imbalance in 'fwtable_write8' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:2021:1: warning: context imbalance in 'fwtable_write16' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:2022:1: warning: context imbalance in 'fwtable_write32' - unexpected unlock
+drivers/gpu/drm/i915/intel_wakeref.c:148:19: warning: context imbalance in 'wakeref_auto_timeout' - unexpected unlock

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



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

* ✓ Xe.CI.BAT: success for drm/i915: dissolve soc/
  2025-11-19 18:52 [PATCH v2 00/13] drm/i915: dissolve soc/ Jani Nikula
                   ` (15 preceding siblings ...)
  2025-11-19 22:02 ` ✗ CI.checksparse: warning " Patchwork
@ 2025-11-19 22:29 ` Patchwork
  2025-11-20  3:17 ` ✗ Xe.CI.Full: failure " Patchwork
                   ` (6 subsequent siblings)
  23 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2025-11-19 22:29 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-xe

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

== Series Details ==

Series: drm/i915: dissolve soc/
URL   : https://patchwork.freedesktop.org/series/157792/
State : success

== Summary ==

CI Bug Log - changes from xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8_BAT -> xe-pw-157792v1_BAT
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

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

  No changes in participating hosts

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

  Here are the changes found in xe-pw-157792v1_BAT that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@kms_force_connector_basic@force-connector-state:
    - bat-bmg-2:          [PASS][1] -> [ABORT][2] ([Intel XE#1727] / [Intel XE#4760])
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/bat-bmg-2/igt@kms_force_connector_basic@force-connector-state.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/bat-bmg-2/igt@kms_force_connector_basic@force-connector-state.html

  * igt@xe_waitfence@engine:
    - bat-dg2-oem2:       [PASS][3] -> [FAIL][4] ([Intel XE#6519])
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/bat-dg2-oem2/igt@xe_waitfence@engine.html
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/bat-dg2-oem2/igt@xe_waitfence@engine.html

  * igt@xe_waitfence@reltime:
    - bat-dg2-oem2:       [PASS][5] -> [FAIL][6] ([Intel XE#6520])
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/bat-dg2-oem2/igt@xe_waitfence@reltime.html
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/bat-dg2-oem2/igt@xe_waitfence@reltime.html

  
  [Intel XE#1727]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1727
  [Intel XE#4760]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4760
  [Intel XE#6519]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6519
  [Intel XE#6520]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6520


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

  * Linux: xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8 -> xe-pw-157792v1

  IGT_8633: 8633
  xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8: a95032b2166b5ae428c065917b843a1caf1e82b8
  xe-pw-157792v1: 157792v1

== Logs ==

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

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

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

* ✗ Xe.CI.Full: failure for drm/i915: dissolve soc/
  2025-11-19 18:52 [PATCH v2 00/13] drm/i915: dissolve soc/ Jani Nikula
                   ` (16 preceding siblings ...)
  2025-11-19 22:29 ` ✓ Xe.CI.BAT: success " Patchwork
@ 2025-11-20  3:17 ` Patchwork
  2025-11-20 16:52 ` [PATCH v2 00/13] " Ville Syrjälä
                   ` (5 subsequent siblings)
  23 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2025-11-20  3:17 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-xe

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

== Series Details ==

Series: drm/i915: dissolve soc/
URL   : https://patchwork.freedesktop.org/series/157792/
State : failure

== Summary ==

CI Bug Log - changes from xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8_FULL -> xe-pw-157792v1_FULL
====================================================

Summary
-------

  **WARNING**

  Minor unknown changes coming with xe-pw-157792v1_FULL need to be verified
  manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in xe-pw-157792v1_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 (4 -> 4)
------------------------------

  No changes in participating hosts

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

  Here are the unknown changes that may have been introduced in xe-pw-157792v1_FULL:

### IGT changes ###

#### Warnings ####

  * igt@xe_exec_basic@multigpu-many-execqueues-many-vm-null-rebind:
    - shard-dg2-set2:     [INCOMPLETE][1] ([Intel XE#4842]) -> [INCOMPLETE][2]
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-dg2-436/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-null-rebind.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-dg2-464/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-null-rebind.html

  * igt@xe_module_load@load:
    - shard-adlp:         ([PASS][3], [PASS][4], [PASS][5], [SKIP][6], [PASS][7], [PASS][8], [PASS][9], [PASS][10], [PASS][11], [PASS][12], [PASS][13], [PASS][14], [PASS][15], [PASS][16], [PASS][17], [PASS][18], [PASS][19], [PASS][20], [PASS][21], [PASS][22], [PASS][23], [PASS][24], [PASS][25], [PASS][26], [PASS][27]) ([Intel XE#378] / [Intel XE#5612]) -> ([DMESG-WARN][28], [DMESG-WARN][29], [DMESG-WARN][30], [DMESG-WARN][31], [DMESG-WARN][32], [DMESG-WARN][33], [DMESG-WARN][34], [DMESG-WARN][35], [DMESG-WARN][36], [DMESG-WARN][37], [DMESG-WARN][38], [DMESG-WARN][39], [DMESG-WARN][40], [DMESG-WARN][41], [DMESG-WARN][42], [DMESG-WARN][43], [DMESG-WARN][44], [DMESG-WARN][45], [DMESG-WARN][46], [DMESG-WARN][47], [DMESG-WARN][48], [DMESG-WARN][49], [DMESG-WARN][50], [DMESG-WARN][51], [DMESG-WARN][52])
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-adlp-6/igt@xe_module_load@load.html
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-adlp-4/igt@xe_module_load@load.html
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-adlp-2/igt@xe_module_load@load.html
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-adlp-6/igt@xe_module_load@load.html
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-adlp-4/igt@xe_module_load@load.html
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-adlp-4/igt@xe_module_load@load.html
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-adlp-3/igt@xe_module_load@load.html
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-adlp-9/igt@xe_module_load@load.html
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-adlp-9/igt@xe_module_load@load.html
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-adlp-9/igt@xe_module_load@load.html
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-adlp-9/igt@xe_module_load@load.html
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-adlp-4/igt@xe_module_load@load.html
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-adlp-8/igt@xe_module_load@load.html
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-adlp-8/igt@xe_module_load@load.html
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-adlp-2/igt@xe_module_load@load.html
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-adlp-2/igt@xe_module_load@load.html
   [19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-adlp-8/igt@xe_module_load@load.html
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-adlp-8/igt@xe_module_load@load.html
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-adlp-6/igt@xe_module_load@load.html
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-adlp-6/igt@xe_module_load@load.html
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-adlp-6/igt@xe_module_load@load.html
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-adlp-2/igt@xe_module_load@load.html
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-adlp-3/igt@xe_module_load@load.html
   [26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-adlp-3/igt@xe_module_load@load.html
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-adlp-3/igt@xe_module_load@load.html
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-adlp-2/igt@xe_module_load@load.html
   [29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-adlp-4/igt@xe_module_load@load.html
   [30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-adlp-1/igt@xe_module_load@load.html
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-adlp-1/igt@xe_module_load@load.html
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-adlp-1/igt@xe_module_load@load.html
   [33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-adlp-1/igt@xe_module_load@load.html
   [34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-adlp-4/igt@xe_module_load@load.html
   [35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-adlp-4/igt@xe_module_load@load.html
   [36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-adlp-4/igt@xe_module_load@load.html
   [37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-adlp-6/igt@xe_module_load@load.html
   [38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-adlp-6/igt@xe_module_load@load.html
   [39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-adlp-6/igt@xe_module_load@load.html
   [40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-adlp-6/igt@xe_module_load@load.html
   [41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-adlp-8/igt@xe_module_load@load.html
   [42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-adlp-8/igt@xe_module_load@load.html
   [43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-adlp-8/igt@xe_module_load@load.html
   [44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-adlp-9/igt@xe_module_load@load.html
   [45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-adlp-9/igt@xe_module_load@load.html
   [46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-adlp-2/igt@xe_module_load@load.html
   [47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-adlp-2/igt@xe_module_load@load.html
   [48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-adlp-3/igt@xe_module_load@load.html
   [49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-adlp-3/igt@xe_module_load@load.html
   [50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-adlp-3/igt@xe_module_load@load.html
   [51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-adlp-3/igt@xe_module_load@load.html
   [52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-adlp-3/igt@xe_module_load@load.html

  
New tests
---------

  New tests have been introduced between xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8_FULL and xe-pw-157792v1_FULL:

### New IGT tests (2) ###

  * igt@kms_async_flips@crc@pipe-a-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [2.24] s

  * igt@kms_async_flips@crc@pipe-b-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [2.26] s

  

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

  Here are the changes found in xe-pw-157792v1_FULL that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@kms_big_fb@yf-tiled-32bpp-rotate-0:
    - shard-dg2-set2:     NOTRUN -> [SKIP][53] ([Intel XE#1124]) +1 other test skip
   [53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-dg2-432/igt@kms_big_fb@yf-tiled-32bpp-rotate-0.html

  * igt@kms_ccs@bad-rotation-90-y-tiled-gen12-mc-ccs@pipe-d-dp-4:
    - shard-dg2-set2:     NOTRUN -> [SKIP][54] ([Intel XE#455] / [Intel XE#787]) +5 other tests skip
   [54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-dg2-432/igt@kms_ccs@bad-rotation-90-y-tiled-gen12-mc-ccs@pipe-d-dp-4.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs@pipe-d-dp-4:
    - shard-dg2-set2:     [PASS][55] -> [INCOMPLETE][56] ([Intel XE#3862]) +1 other test incomplete
   [55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-dg2-434/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs@pipe-d-dp-4.html
   [56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-dg2-436/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs@pipe-d-dp-4.html

  * igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-mc-ccs@pipe-b-dp-4:
    - shard-dg2-set2:     NOTRUN -> [SKIP][57] ([Intel XE#787]) +20 other tests skip
   [57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-dg2-432/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-mc-ccs@pipe-b-dp-4.html

  * igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs:
    - shard-dg2-set2:     NOTRUN -> [SKIP][58] ([Intel XE#2907])
   [58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-dg2-432/igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-c-dp-4:
    - shard-dg2-set2:     NOTRUN -> [INCOMPLETE][59] ([Intel XE#1727] / [Intel XE#2705] / [Intel XE#3113] / [Intel XE#4212])
   [59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-dg2-435/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-c-dp-4.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc:
    - shard-dg2-set2:     [PASS][60] -> [INCOMPLETE][61] ([Intel XE#1727] / [Intel XE#2705] / [Intel XE#3113] / [Intel XE#4212] / [Intel XE#4345])
   [60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-dg2-466/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc.html
   [61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-dg2-466/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc@pipe-d-hdmi-a-6:
    - shard-dg2-set2:     [PASS][62] -> [INCOMPLETE][63] ([Intel XE#1727] / [Intel XE#2705] / [Intel XE#3113] / [Intel XE#4212])
   [62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-dg2-466/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc@pipe-d-hdmi-a-6.html
   [63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-dg2-466/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc@pipe-d-hdmi-a-6.html

  * igt@kms_chamelium_hpd@vga-hpd-for-each-pipe:
    - shard-dg2-set2:     NOTRUN -> [SKIP][64] ([Intel XE#373]) +2 other tests skip
   [64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-dg2-432/igt@kms_chamelium_hpd@vga-hpd-for-each-pipe.html

  * igt@kms_cursor_crc@cursor-random-32x32:
    - shard-dg2-set2:     NOTRUN -> [SKIP][65] ([Intel XE#455]) +4 other tests skip
   [65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-dg2-432/igt@kms_cursor_crc@cursor-random-32x32.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible@a-edp1:
    - shard-lnl:          [PASS][66] -> [FAIL][67] ([Intel XE#301])
   [66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-lnl-1/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-edp1.html
   [67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-lnl-2/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-edp1.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible@c-edp1:
    - shard-lnl:          [PASS][68] -> [FAIL][69] ([Intel XE#301] / [Intel XE#3149]) +1 other test fail
   [68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-lnl-1/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-edp1.html
   [69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-lnl-2/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-edp1.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-dg2-set2:     [PASS][70] -> [INCOMPLETE][71] ([Intel XE#2049] / [Intel XE#2597]) +3 other tests incomplete
   [70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-dg2-435/igt@kms_flip@flip-vs-suspend-interruptible.html
   [71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-dg2-432/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-mmap-wc:
    - shard-dg2-set2:     NOTRUN -> [SKIP][72] ([Intel XE#651]) +4 other tests skip
   [72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-dg2-463/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-indfb-draw-blt:
    - shard-dg2-set2:     NOTRUN -> [SKIP][73] ([Intel XE#6312])
   [73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-dg2-432/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-move:
    - shard-dg2-set2:     NOTRUN -> [SKIP][74] ([Intel XE#653]) +2 other tests skip
   [74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-dg2-432/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-move.html

  * igt@kms_joiner@basic-big-joiner:
    - shard-dg2-set2:     NOTRUN -> [SKIP][75] ([Intel XE#2925] / [Intel XE#346])
   [75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-dg2-432/igt@kms_joiner@basic-big-joiner.html

  * igt@kms_plane_multiple@tiling-yf:
    - shard-dg2-set2:     NOTRUN -> [SKIP][76] ([Intel XE#5020])
   [76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-dg2-432/igt@kms_plane_multiple@tiling-yf.html

  * igt@kms_psr2_sf@fbc-pr-overlay-primary-update-sf-dmg-area:
    - shard-dg2-set2:     NOTRUN -> [SKIP][77] ([Intel XE#1406] / [Intel XE#1489])
   [77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-dg2-432/igt@kms_psr2_sf@fbc-pr-overlay-primary-update-sf-dmg-area.html

  * igt@kms_psr@fbc-psr-cursor-plane-onoff:
    - shard-dg2-set2:     NOTRUN -> [SKIP][78] ([Intel XE#1406] / [Intel XE#2850] / [Intel XE#929]) +2 other tests skip
   [78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-dg2-432/igt@kms_psr@fbc-psr-cursor-plane-onoff.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270:
    - shard-dg2-set2:     NOTRUN -> [SKIP][79] ([Intel XE#3414])
   [79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-dg2-432/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270.html

  * igt@kms_vrr@cmrr@pipe-a-edp-1:
    - shard-lnl:          [PASS][80] -> [FAIL][81] ([Intel XE#4459]) +1 other test fail
   [80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-lnl-3/igt@kms_vrr@cmrr@pipe-a-edp-1.html
   [81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-lnl-7/igt@kms_vrr@cmrr@pipe-a-edp-1.html

  * igt@kms_vrr@lobf:
    - shard-dg2-set2:     NOTRUN -> [SKIP][82] ([Intel XE#2168])
   [82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-dg2-463/igt@kms_vrr@lobf.html

  * igt@xe_copy_basic@mem-set-linear-0x369:
    - shard-dg2-set2:     NOTRUN -> [SKIP][83] ([Intel XE#1126])
   [83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-dg2-463/igt@xe_copy_basic@mem-set-linear-0x369.html

  * igt@xe_copy_basic@mem-set-linear-0x8fffe:
    - shard-dg2-set2:     NOTRUN -> [SKIP][84] ([Intel XE#5503])
   [84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-dg2-432/igt@xe_copy_basic@mem-set-linear-0x8fffe.html

  * igt@xe_eudebug@discovery-empty:
    - shard-dg2-set2:     NOTRUN -> [SKIP][85] ([Intel XE#4837])
   [85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-dg2-432/igt@xe_eudebug@discovery-empty.html

  * igt@xe_exec_fault_mode@many-bindexecqueue-userptr-rebind-imm:
    - shard-dg2-set2:     NOTRUN -> [SKIP][86] ([Intel XE#288]) +5 other tests skip
   [86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-dg2-432/igt@xe_exec_fault_mode@many-bindexecqueue-userptr-rebind-imm.html

  * igt@xe_exec_mix_modes@exec-spinner-interrupted-dma-fence:
    - shard-dg2-set2:     NOTRUN -> [SKIP][87] ([Intel XE#2360])
   [87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-dg2-463/igt@xe_exec_mix_modes@exec-spinner-interrupted-dma-fence.html

  * igt@xe_exec_system_allocator@many-execqueues-mmap-new-huge:
    - shard-dg2-set2:     NOTRUN -> [SKIP][88] ([Intel XE#4915]) +59 other tests skip
   [88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-dg2-432/igt@xe_exec_system_allocator@many-execqueues-mmap-new-huge.html

  * igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-single-vma:
    - shard-lnl:          [PASS][89] -> [FAIL][90] ([Intel XE#5625])
   [89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-lnl-5/igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-single-vma.html
   [90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-lnl-5/igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-single-vma.html

  * igt@xe_oa@oa-regs-whitelisted:
    - shard-dg2-set2:     NOTRUN -> [SKIP][91] ([Intel XE#3573]) +1 other test skip
   [91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-dg2-432/igt@xe_oa@oa-regs-whitelisted.html

  * igt@xe_pm@vram-d3cold-threshold:
    - shard-dg2-set2:     NOTRUN -> [SKIP][92] ([Intel XE#579])
   [92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-dg2-432/igt@xe_pm@vram-d3cold-threshold.html

  * igt@xe_pmu@engine-activity-accuracy-90@engine-drm_xe_engine_class_copy0:
    - shard-lnl:          [PASS][93] -> [FAIL][94] ([Intel XE#6251])
   [93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-lnl-8/igt@xe_pmu@engine-activity-accuracy-90@engine-drm_xe_engine_class_copy0.html
   [94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-lnl-1/igt@xe_pmu@engine-activity-accuracy-90@engine-drm_xe_engine_class_copy0.html

  * igt@xe_pxp@pxp-optout:
    - shard-dg2-set2:     NOTRUN -> [SKIP][95] ([Intel XE#4733])
   [95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-dg2-432/igt@xe_pxp@pxp-optout.html

  * igt@xe_survivability@runtime-survivability:
    - shard-dg2-set2:     NOTRUN -> [SKIP][96] ([Intel XE#6529])
   [96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-dg2-432/igt@xe_survivability@runtime-survivability.html

  
#### Possible fixes ####

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-a-hdmi-a-6:
    - shard-dg2-set2:     [INCOMPLETE][97] ([Intel XE#1727] / [Intel XE#3113]) -> [PASS][98]
   [97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-dg2-433/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-a-hdmi-a-6.html
   [98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-dg2-435/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-a-hdmi-a-6.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs:
    - shard-dg2-set2:     [INCOMPLETE][99] ([Intel XE#1727] / [Intel XE#2705] / [Intel XE#3113] / [Intel XE#4212] / [Intel XE#4345]) -> [PASS][100]
   [99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs.html
   [100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-c-hdmi-a-6:
    - shard-dg2-set2:     [INCOMPLETE][101] ([Intel XE#1727] / [Intel XE#2705] / [Intel XE#3113] / [Intel XE#4212]) -> [PASS][102]
   [101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-c-hdmi-a-6.html
   [102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-c-hdmi-a-6.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible:
    - shard-dg2-set2:     [FAIL][103] ([Intel XE#301]) -> [PASS][104] +1 other test pass
   [103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-dg2-433/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
   [104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-dg2-464/igt@kms_flip@flip-vs-expired-vblank-interruptible.html

  * igt@xe_pmu@engine-activity-accuracy-90@engine-drm_xe_engine_class_video_decode0:
    - shard-lnl:          [FAIL][105] ([Intel XE#6251]) -> [PASS][106] +1 other test pass
   [105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-lnl-8/igt@xe_pmu@engine-activity-accuracy-90@engine-drm_xe_engine_class_video_decode0.html
   [106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-lnl-1/igt@xe_pmu@engine-activity-accuracy-90@engine-drm_xe_engine_class_video_decode0.html

  
#### Warnings ####

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs:
    - shard-dg2-set2:     [INCOMPLETE][107] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#4345]) -> [INCOMPLETE][108] ([Intel XE#1727] / [Intel XE#2705] / [Intel XE#3113] / [Intel XE#4212] / [Intel XE#4345])
   [107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8/shard-dg2-433/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs.html
   [108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v1/shard-dg2-435/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs.html

  
  [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
  [Intel XE#1126]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1126
  [Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
  [Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
  [Intel XE#1727]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1727
  [Intel XE#2049]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2049
  [Intel XE#2168]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2168
  [Intel XE#2360]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2360
  [Intel XE#2597]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2597
  [Intel XE#2705]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2705
  [Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
  [Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
  [Intel XE#2907]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2907
  [Intel XE#2925]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2925
  [Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
  [Intel XE#3113]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3113
  [Intel XE#3149]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3149
  [Intel XE#3414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3414
  [Intel XE#346]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/346
  [Intel XE#3573]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3573
  [Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
  [Intel XE#378]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/378
  [Intel XE#3862]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3862
  [Intel XE#4212]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4212
  [Intel XE#4345]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4345
  [Intel XE#4459]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4459
  [Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455
  [Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
  [Intel XE#4837]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4837
  [Intel XE#4842]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4842
  [Intel XE#4915]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4915
  [Intel XE#5020]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5020
  [Intel XE#5503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5503
  [Intel XE#5612]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5612
  [Intel XE#5625]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5625
  [Intel XE#579]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/579
  [Intel XE#6251]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6251
  [Intel XE#6312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6312
  [Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
  [Intel XE#6529]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6529
  [Intel XE#653]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/653
  [Intel XE#787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/787
  [Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929


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

  * Linux: xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8 -> xe-pw-157792v1

  IGT_8633: 8633
  xe-4131-a95032b2166b5ae428c065917b843a1caf1e82b8: a95032b2166b5ae428c065917b843a1caf1e82b8
  xe-pw-157792v1: 157792v1

== Logs ==

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

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

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

* Re: [PATCH v2 05/13] drm/i915/dram: convert to struct intel_display
  2025-11-19 18:52 ` [PATCH v2 05/13] drm/i915/dram: convert to struct intel_display Jani Nikula
@ 2025-11-20  8:31   ` Jani Nikula
  2025-11-20 13:59     ` Ville Syrjälä
  2025-11-20 16:18   ` [PATCH v3] " Jani Nikula
  1 sibling, 1 reply; 30+ messages in thread
From: Jani Nikula @ 2025-11-20  8:31 UTC (permalink / raw)
  To: intel-gfx, intel-xe, ville.syrjala

On Wed, 19 Nov 2025, Jani Nikula <jani.nikula@intel.com> wrote:
> Convert everything except uncore access to struct intel_display.
>
> While at it, convert logging to drm_dbg_kms().
>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/gpu/drm/i915/display/i9xx_wm.c        |   2 +-
>  drivers/gpu/drm/i915/display/intel_bw.c       |   2 +-
>  drivers/gpu/drm/i915/display/intel_cdclk.c    |   4 +-
>  .../drm/i915/display/intel_display_power.c    |   2 +-
>  drivers/gpu/drm/i915/display/intel_dram.c     | 205 +++++++++---------
>  drivers/gpu/drm/i915/display/intel_dram.h     |  11 +-
>  drivers/gpu/drm/i915/display/skl_watermark.c  |   4 +-
>  drivers/gpu/drm/i915/i915_driver.c            |   2 +-
>  drivers/gpu/drm/xe/display/xe_display.c       |   2 +-
>  9 files changed, 120 insertions(+), 114 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/i9xx_wm.c b/drivers/gpu/drm/i915/display/i9xx_wm.c
> index 27e2d73bc505..167277cd8877 100644
> --- a/drivers/gpu/drm/i915/display/i9xx_wm.c
> +++ b/drivers/gpu/drm/i915/display/i9xx_wm.c
> @@ -90,7 +90,7 @@ static const struct cxsr_latency cxsr_latency_table[] = {
>  
>  static const struct cxsr_latency *pnv_get_cxsr_latency(struct intel_display *display)
>  {
> -	const struct dram_info *dram_info = intel_dram_info(display->drm);
> +	const struct dram_info *dram_info = intel_dram_info(display);
>  	bool is_ddr3 = dram_info->type == INTEL_DRAM_DDR3;
>  	int i;
>  
> diff --git a/drivers/gpu/drm/i915/display/intel_bw.c b/drivers/gpu/drm/i915/display/intel_bw.c
> index 957c90e62569..d27835ed49c2 100644
> --- a/drivers/gpu/drm/i915/display/intel_bw.c
> +++ b/drivers/gpu/drm/i915/display/intel_bw.c
> @@ -799,7 +799,7 @@ static unsigned int icl_qgv_bw(struct intel_display *display,
>  
>  void intel_bw_init_hw(struct intel_display *display)
>  {
> -	const struct dram_info *dram_info = intel_dram_info(display->drm);
> +	const struct dram_info *dram_info = intel_dram_info(display);
>  
>  	if (!HAS_DISPLAY(display))
>  		return;
> diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c b/drivers/gpu/drm/i915/display/intel_cdclk.c
> index 531819391c8c..5c90e53b4e46 100644
> --- a/drivers/gpu/drm/i915/display/intel_cdclk.c
> +++ b/drivers/gpu/drm/i915/display/intel_cdclk.c
> @@ -3737,10 +3737,8 @@ static int pch_rawclk(struct intel_display *display)
>  
>  static int i9xx_hrawclk(struct intel_display *display)
>  {
> -	struct drm_i915_private *i915 = to_i915(display->drm);
> -
>  	/* hrawclock is 1/4 the FSB frequency */
> -	return DIV_ROUND_CLOSEST(intel_fsb_freq(i915), 4);
> +	return DIV_ROUND_CLOSEST(intel_fsb_freq(display), 4);
>  }
>  
>  /**
> diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c b/drivers/gpu/drm/i915/display/intel_display_power.c
> index 9c5f0277d8c2..08db9bbbfcb1 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_power.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_power.c
> @@ -1616,7 +1616,7 @@ static const struct buddy_page_mask wa_1409767108_buddy_page_masks[] = {
>  
>  static void tgl_bw_buddy_init(struct intel_display *display)
>  {
> -	const struct dram_info *dram_info = intel_dram_info(display->drm);
> +	const struct dram_info *dram_info = intel_dram_info(display);
>  	const struct buddy_page_mask *table;
>  	unsigned long abox_mask = DISPLAY_INFO(display)->abox_mask;
>  	int config, i;
> diff --git a/drivers/gpu/drm/i915/display/intel_dram.c b/drivers/gpu/drm/i915/display/intel_dram.c
> index 7142772f2a6e..3dfcc7938740 100644
> --- a/drivers/gpu/drm/i915/display/intel_dram.c
> +++ b/drivers/gpu/drm/i915/display/intel_dram.c
> @@ -56,14 +56,17 @@ const char *intel_dram_type_str(enum intel_dram_type type)
>  
>  #undef DRAM_TYPE_STR
>  
> -static enum intel_dram_type pnv_dram_type(struct drm_i915_private *i915)
> +static enum intel_dram_type pnv_dram_type(struct intel_display *display)
>  {
> +	struct drm_i915_private *i915 = to_i915(display->drm);
> +
>  	return intel_uncore_read(&i915->uncore, CSHRDDR3CTL) & CSHRDDR3CTL_DDR3 ?
>  		INTEL_DRAM_DDR3 : INTEL_DRAM_DDR2;
>  }
>  
> -static unsigned int pnv_mem_freq(struct drm_i915_private *dev_priv)
> +static unsigned int pnv_mem_freq(struct intel_display *display)
>  {
> +	struct drm_i915_private *dev_priv = to_i915(display->drm);
>  	u32 tmp;
>  
>  	tmp = intel_uncore_read(&dev_priv->uncore, CLKCFG);
> @@ -80,8 +83,9 @@ static unsigned int pnv_mem_freq(struct drm_i915_private *dev_priv)
>  	return 0;
>  }
>  
> -static unsigned int ilk_mem_freq(struct drm_i915_private *dev_priv)
> +static unsigned int ilk_mem_freq(struct intel_display *display)
>  {
> +	struct drm_i915_private *dev_priv = to_i915(display->drm);
>  	u16 ddrpll;
>  
>  	ddrpll = intel_uncore_read16(&dev_priv->uncore, DDRMPLL1);
> @@ -95,19 +99,19 @@ static unsigned int ilk_mem_freq(struct drm_i915_private *dev_priv)
>  	case 0x18:
>  		return 1600000;
>  	default:
> -		drm_dbg(&dev_priv->drm, "unknown memory frequency 0x%02x\n",
> -			ddrpll & 0xff);
> +		drm_dbg_kms(display->drm, "unknown memory frequency 0x%02x\n",
> +			    ddrpll & 0xff);
>  		return 0;
>  	}
>  }
>  
> -static unsigned int chv_mem_freq(struct drm_i915_private *i915)
> +static unsigned int chv_mem_freq(struct intel_display *display)
>  {
>  	u32 val;
>  
> -	vlv_iosf_sb_get(&i915->drm, BIT(VLV_IOSF_SB_CCK));
> -	val = vlv_iosf_sb_read(&i915->drm, VLV_IOSF_SB_CCK, CCK_FUSE_REG);
> -	vlv_iosf_sb_put(&i915->drm, BIT(VLV_IOSF_SB_CCK));
> +	vlv_iosf_sb_get(display->drm, BIT(VLV_IOSF_SB_CCK));
> +	val = vlv_iosf_sb_read(display->drm, VLV_IOSF_SB_CCK, CCK_FUSE_REG);
> +	vlv_iosf_sb_put(display->drm, BIT(VLV_IOSF_SB_CCK));
>  
>  	switch ((val >> 2) & 0x7) {
>  	case 3:
> @@ -117,13 +121,13 @@ static unsigned int chv_mem_freq(struct drm_i915_private *i915)
>  	}
>  }
>  
> -static unsigned int vlv_mem_freq(struct drm_i915_private *i915)
> +static unsigned int vlv_mem_freq(struct intel_display *display)
>  {
>  	u32 val;
>  
> -	vlv_iosf_sb_get(&i915->drm, BIT(VLV_IOSF_SB_PUNIT));
> -	val = vlv_iosf_sb_read(&i915->drm, VLV_IOSF_SB_PUNIT, PUNIT_REG_GPU_FREQ_STS);
> -	vlv_iosf_sb_put(&i915->drm, BIT(VLV_IOSF_SB_PUNIT));
> +	vlv_iosf_sb_get(display->drm, BIT(VLV_IOSF_SB_PUNIT));
> +	val = vlv_iosf_sb_read(display->drm, VLV_IOSF_SB_PUNIT, PUNIT_REG_GPU_FREQ_STS);
> +	vlv_iosf_sb_put(display->drm, BIT(VLV_IOSF_SB_PUNIT));
>  
>  	switch ((val >> 6) & 3) {
>  	case 0:
> @@ -138,22 +142,23 @@ static unsigned int vlv_mem_freq(struct drm_i915_private *i915)
>  	return 0;
>  }
>  
> -unsigned int intel_mem_freq(struct drm_i915_private *i915)
> +unsigned int intel_mem_freq(struct intel_display *display)
>  {
> -	if (IS_PINEVIEW(i915))
> -		return pnv_mem_freq(i915);
> -	else if (GRAPHICS_VER(i915) == 5)
> -		return ilk_mem_freq(i915);
> -	else if (IS_CHERRYVIEW(i915))
> -		return chv_mem_freq(i915);
> -	else if (IS_VALLEYVIEW(i915))
> -		return vlv_mem_freq(i915);
> +	if (display->platform.pineview)
> +		return pnv_mem_freq(display);
> +	else if (DISPLAY_VER(display) == 5)
> +		return ilk_mem_freq(display);
> +	else if (display->platform.cherryview)
> +		return chv_mem_freq(display);
> +	else if (display->platform.valleyview)
> +		return vlv_mem_freq(display);
>  	else
>  		return 0;
>  }
>  
> -static unsigned int i9xx_fsb_freq(struct drm_i915_private *i915)
> +static unsigned int i9xx_fsb_freq(struct intel_display *display)
>  {
> +	struct drm_i915_private *i915 = to_i915(display->drm);
>  	u32 fsb;
>  
>  	/*
> @@ -166,7 +171,7 @@ static unsigned int i9xx_fsb_freq(struct drm_i915_private *i915)
>  	 */
>  	fsb = intel_uncore_read(&i915->uncore, CLKCFG) & CLKCFG_FSB_MASK;
>  
> -	if (IS_PINEVIEW(i915) || IS_MOBILE(i915)) {
> +	if (display->platform.pineview || display->platform.mobile) {
>  		switch (fsb) {
>  		case CLKCFG_FSB_400:
>  			return 400000;
> @@ -207,8 +212,9 @@ static unsigned int i9xx_fsb_freq(struct drm_i915_private *i915)
>  	}
>  }
>  
> -static unsigned int ilk_fsb_freq(struct drm_i915_private *dev_priv)
> +static unsigned int ilk_fsb_freq(struct intel_display *display)
>  {
> +	struct drm_i915_private *dev_priv = to_i915(display->drm);
>  	u16 fsb;
>  
>  	fsb = intel_uncore_read16(&dev_priv->uncore, CSIPLL0) & 0x3ff;
> @@ -229,33 +235,33 @@ static unsigned int ilk_fsb_freq(struct drm_i915_private *dev_priv)
>  	case 0x018:
>  		return 6400000;
>  	default:
> -		drm_dbg(&dev_priv->drm, "unknown fsb frequency 0x%04x\n", fsb);
> +		drm_dbg_kms(display->drm, "unknown fsb frequency 0x%04x\n", fsb);
>  		return 0;
>  	}
>  }
>  
> -unsigned int intel_fsb_freq(struct drm_i915_private *i915)
> +unsigned int intel_fsb_freq(struct intel_display *display)
>  {
> -	if (GRAPHICS_VER(i915) == 5)
> -		return ilk_fsb_freq(i915);
> -	else if (GRAPHICS_VER(i915) == 3 || GRAPHICS_VER(i915) == 4)
> -		return i9xx_fsb_freq(i915);
> +	if (DISPLAY_VER(display) == 5)
> +		return ilk_fsb_freq(display);
> +	else if (IS_DISPLAY_VER(display, 3, 4))
> +		return i9xx_fsb_freq(display);
>  	else
>  		return 0;
>  }
>  
> -static int i915_get_dram_info(struct drm_i915_private *i915, struct dram_info *dram_info)
> +static int i915_get_dram_info(struct intel_display *display, struct dram_info *dram_info)
>  {
> -	dram_info->fsb_freq = intel_fsb_freq(i915);
> +	dram_info->fsb_freq = intel_fsb_freq(display);
>  	if (dram_info->fsb_freq)
> -		drm_dbg(&i915->drm, "FSB frequency: %d kHz\n", dram_info->fsb_freq);
> +		drm_dbg_kms(display->drm, "FSB frequency: %d kHz\n", dram_info->fsb_freq);
>  
> -	dram_info->mem_freq = intel_mem_freq(i915);
> +	dram_info->mem_freq = intel_mem_freq(display);
>  	if (dram_info->mem_freq)
> -		drm_dbg(&i915->drm, "DDR speed: %d kHz\n", dram_info->mem_freq);
> +		drm_dbg_kms(display->drm, "DDR speed: %d kHz\n", dram_info->mem_freq);
>  
> -	if (IS_PINEVIEW(i915))
> -		dram_info->type = pnv_dram_type(i915);
> +	if (display->platform.pineview)
> +		dram_info->type = pnv_dram_type(display);
>  
>  	return 0;
>  }
> @@ -391,22 +397,22 @@ skl_is_16gb_dimm(const struct dram_dimm_info *dimm)
>  }
>  
>  static void
> -skl_dram_print_dimm_info(struct drm_i915_private *i915,
> +skl_dram_print_dimm_info(struct intel_display *display,
>  			 struct dram_dimm_info *dimm,
>  			 int channel, char dimm_name)
>  {
> -	drm_dbg_kms(&i915->drm,
> +	drm_dbg_kms(display->drm,
>  		    "CH%u DIMM %c size: %u Gb, width: X%u, ranks: %u, 16Gb+ DIMMs: %s\n",
>  		    channel, dimm_name, dimm->size, dimm->width, dimm->ranks,
>  		    str_yes_no(skl_is_16gb_dimm(dimm)));
>  }
>  
>  static void
> -skl_dram_get_dimm_l_info(struct drm_i915_private *i915,
> +skl_dram_get_dimm_l_info(struct intel_display *display,
>  			 struct dram_dimm_info *dimm,
>  			 int channel, u32 val)
>  {
> -	if (GRAPHICS_VER(i915) >= 11) {
> +	if (DISPLAY_VER(display) >= 11) {
>  		dimm->size = icl_get_dimm_l_size(val);
>  		dimm->width = icl_get_dimm_l_width(val);
>  		dimm->ranks = icl_get_dimm_l_ranks(val);
> @@ -416,15 +422,15 @@ skl_dram_get_dimm_l_info(struct drm_i915_private *i915,
>  		dimm->ranks = skl_get_dimm_l_ranks(val);
>  	}
>  
> -	skl_dram_print_dimm_info(i915, dimm, channel, 'L');
> +	skl_dram_print_dimm_info(display, dimm, channel, 'L');
>  }
>  
>  static void
> -skl_dram_get_dimm_s_info(struct drm_i915_private *i915,
> +skl_dram_get_dimm_s_info(struct intel_display *display,
>  			 struct dram_dimm_info *dimm,
>  			 int channel, u32 val)
>  {
> -	if (GRAPHICS_VER(i915) >= 11) {
> +	if (DISPLAY_VER(display) >= 11) {
>  		dimm->size = icl_get_dimm_s_size(val);
>  		dimm->width = icl_get_dimm_s_width(val);
>  		dimm->ranks = icl_get_dimm_s_ranks(val);
> @@ -434,19 +440,19 @@ skl_dram_get_dimm_s_info(struct drm_i915_private *i915,
>  		dimm->ranks = skl_get_dimm_s_ranks(val);
>  	}
>  
> -	skl_dram_print_dimm_info(i915, dimm, channel, 'S');
> +	skl_dram_print_dimm_info(display, dimm, channel, 'S');
>  }
>  
>  static int
> -skl_dram_get_channel_info(struct drm_i915_private *i915,
> +skl_dram_get_channel_info(struct intel_display *display,
>  			  struct dram_channel_info *ch,
>  			  int channel, u32 val)
>  {
> -	skl_dram_get_dimm_l_info(i915, &ch->dimm_l, channel, val);
> -	skl_dram_get_dimm_s_info(i915, &ch->dimm_s, channel, val);
> +	skl_dram_get_dimm_l_info(display, &ch->dimm_l, channel, val);
> +	skl_dram_get_dimm_s_info(display, &ch->dimm_s, channel, val);
>  
>  	if (ch->dimm_l.size == 0 && ch->dimm_s.size == 0) {
> -		drm_dbg_kms(&i915->drm, "CH%u not populated\n", channel);
> +		drm_dbg_kms(display->drm, "CH%u not populated\n", channel);
>  		return -EINVAL;
>  	}
>  
> @@ -460,7 +466,7 @@ skl_dram_get_channel_info(struct drm_i915_private *i915,
>  	ch->is_16gb_dimm = skl_is_16gb_dimm(&ch->dimm_l) ||
>  		skl_is_16gb_dimm(&ch->dimm_s);
>  
> -	drm_dbg_kms(&i915->drm, "CH%u ranks: %u, 16Gb+ DIMMs: %s\n",
> +	drm_dbg_kms(display->drm, "CH%u ranks: %u, 16Gb+ DIMMs: %s\n",
>  		    channel, ch->ranks, str_yes_no(ch->is_16gb_dimm));
>  
>  	return 0;
> @@ -476,8 +482,9 @@ intel_is_dram_symmetric(const struct dram_channel_info *ch0,
>  }
>  
>  static int
> -skl_dram_get_channels_info(struct drm_i915_private *i915, struct dram_info *dram_info)
> +skl_dram_get_channels_info(struct intel_display *display, struct dram_info *dram_info)
>  {
> +	struct drm_i915_private *i915 = to_i915(display->drm);
>  	struct dram_channel_info ch0 = {}, ch1 = {};
>  	u32 val;
>  	int ret;
> @@ -487,23 +494,23 @@ skl_dram_get_channels_info(struct drm_i915_private *i915, struct dram_info *dram
>  
>  	val = intel_uncore_read(&i915->uncore,
>  				SKL_MAD_DIMM_CH0_0_0_0_MCHBAR_MCMAIN);
> -	ret = skl_dram_get_channel_info(i915, &ch0, 0, val);
> +	ret = skl_dram_get_channel_info(display, &ch0, 0, val);
>  	if (ret == 0)
>  		dram_info->num_channels++;
>  
>  	val = intel_uncore_read(&i915->uncore,
>  				SKL_MAD_DIMM_CH1_0_0_0_MCHBAR_MCMAIN);
> -	ret = skl_dram_get_channel_info(i915, &ch1, 1, val);
> +	ret = skl_dram_get_channel_info(display, &ch1, 1, val);
>  	if (ret == 0)
>  		dram_info->num_channels++;
>  
>  	if (dram_info->num_channels == 0) {
> -		drm_info(&i915->drm, "Number of memory channels is zero\n");
> +		drm_info(display->drm, "Number of memory channels is zero\n");
>  		return -EINVAL;
>  	}
>  
>  	if (ch0.ranks == 0 && ch1.ranks == 0) {
> -		drm_info(&i915->drm, "couldn't get memory rank information\n");
> +		drm_info(display->drm, "couldn't get memory rank information\n");
>  		return -EINVAL;
>  	}
>  
> @@ -511,18 +518,19 @@ skl_dram_get_channels_info(struct drm_i915_private *i915, struct dram_info *dram
>  
>  	dram_info->symmetric_memory = intel_is_dram_symmetric(&ch0, &ch1);
>  
> -	drm_dbg_kms(&i915->drm, "Memory configuration is symmetric? %s\n",
> +	drm_dbg_kms(display->drm, "Memory configuration is symmetric? %s\n",
>  		    str_yes_no(dram_info->symmetric_memory));
>  
> -	drm_dbg_kms(&i915->drm, "16Gb+ DIMMs: %s\n",
> +	drm_dbg_kms(display->drm, "16Gb+ DIMMs: %s\n",
>  		    str_yes_no(dram_info->has_16gb_dimms));
>  
>  	return 0;
>  }
>  
>  static enum intel_dram_type
> -skl_get_dram_type(struct drm_i915_private *i915)
> +skl_get_dram_type(struct intel_display *display)
>  {
> +	struct drm_i915_private *i915 = to_i915(display->drm);
>  	u32 val;
>  
>  	val = intel_uncore_read(&i915->uncore,
> @@ -544,13 +552,13 @@ skl_get_dram_type(struct drm_i915_private *i915)
>  }
>  
>  static int
> -skl_get_dram_info(struct drm_i915_private *i915, struct dram_info *dram_info)
> +skl_get_dram_info(struct intel_display *display, struct dram_info *dram_info)
>  {
>  	int ret;
>  
> -	dram_info->type = skl_get_dram_type(i915);
> +	dram_info->type = skl_get_dram_type(display);
>  
> -	ret = skl_dram_get_channels_info(i915, dram_info);
> +	ret = skl_dram_get_channels_info(display, dram_info);
>  	if (ret)
>  		return ret;
>  
> @@ -635,8 +643,9 @@ static void bxt_get_dimm_info(struct dram_dimm_info *dimm, u32 val)
>  	dimm->size = bxt_get_dimm_size(val) * intel_dimm_num_devices(dimm);
>  }
>  
> -static int bxt_get_dram_info(struct drm_i915_private *i915, struct dram_info *dram_info)
> +static int bxt_get_dram_info(struct intel_display *display, struct dram_info *dram_info)
>  {
> +	struct drm_i915_private *i915 = to_i915(display->drm);
>  	u32 val;
>  	u8 valid_ranks = 0;
>  	int i;
> @@ -657,11 +666,11 @@ static int bxt_get_dram_info(struct drm_i915_private *i915, struct dram_info *dr
>  		bxt_get_dimm_info(&dimm, val);
>  		type = bxt_get_dimm_type(val);
>  
> -		drm_WARN_ON(&i915->drm, type != INTEL_DRAM_UNKNOWN &&
> +		drm_WARN_ON(display->drm, type != INTEL_DRAM_UNKNOWN &&
>  			    dram_info->type != INTEL_DRAM_UNKNOWN &&
>  			    dram_info->type != type);
>  
> -		drm_dbg_kms(&i915->drm,
> +		drm_dbg_kms(display->drm,
>  			    "CH%u DIMM size: %u Gb, width: X%u, ranks: %u\n",
>  			    i - BXT_D_CR_DRP0_DUNIT_START,
>  			    dimm.size, dimm.width, dimm.ranks);
> @@ -674,25 +683,25 @@ static int bxt_get_dram_info(struct drm_i915_private *i915, struct dram_info *dr
>  	}
>  
>  	if (dram_info->type == INTEL_DRAM_UNKNOWN || valid_ranks == 0) {
> -		drm_info(&i915->drm, "couldn't get memory information\n");
> +		drm_info(display->drm, "couldn't get memory information\n");
>  		return -EINVAL;
>  	}
>  
>  	return 0;
>  }
>  
> -static int icl_pcode_read_mem_global_info(struct drm_i915_private *dev_priv,
> +static int icl_pcode_read_mem_global_info(struct intel_display *display,
>  					  struct dram_info *dram_info)
>  {
>  	u32 val = 0;
>  	int ret;
>  
> -	ret = intel_pcode_read(&dev_priv->drm, ICL_PCODE_MEM_SUBSYSYSTEM_INFO |
> +	ret = intel_pcode_read(display->drm, ICL_PCODE_MEM_SUBSYSYSTEM_INFO |
>  			       ICL_PCODE_MEM_SS_READ_GLOBAL_INFO, &val, NULL);
>  	if (ret)
>  		return ret;
>  
> -	if (GRAPHICS_VER(dev_priv) == 12) {
> +	if (DISPLAY_VER(display) == 12) {

CI tells me this goes south on e.g. ADL-P (or TWL) which has graphics
version 12 but display version 13.

What to do.


BR,
Jani.

>  		switch (val & 0xf) {
>  		case 0:
>  			dram_info->type = INTEL_DRAM_DDR4;
> @@ -743,25 +752,25 @@ static int icl_pcode_read_mem_global_info(struct drm_i915_private *dev_priv,
>  	return 0;
>  }
>  
> -static int gen11_get_dram_info(struct drm_i915_private *i915, struct dram_info *dram_info)
> +static int gen11_get_dram_info(struct intel_display *display, struct dram_info *dram_info)
>  {
>  	int ret;
>  
> -	ret = skl_dram_get_channels_info(i915, dram_info);
> +	ret = skl_dram_get_channels_info(display, dram_info);
>  	if (ret)
>  		return ret;
>  
> -	return icl_pcode_read_mem_global_info(i915, dram_info);
> +	return icl_pcode_read_mem_global_info(display, dram_info);
>  }
>  
> -static int gen12_get_dram_info(struct drm_i915_private *i915, struct dram_info *dram_info)
> +static int gen12_get_dram_info(struct intel_display *display, struct dram_info *dram_info)
>  {
> -	return icl_pcode_read_mem_global_info(i915, dram_info);
> +	return icl_pcode_read_mem_global_info(display, dram_info);
>  }
>  
> -static int xelpdp_get_dram_info(struct drm_i915_private *i915, struct dram_info *dram_info)
> +static int xelpdp_get_dram_info(struct intel_display *display, struct dram_info *dram_info)
>  {
> -	struct intel_display *display = i915->display;
> +	struct drm_i915_private *i915 = to_i915(display->drm);
>  	u32 val = intel_uncore_read(&i915->uncore, MTL_MEM_SS_INFO_GLOBAL);
>  
>  	switch (REG_FIELD_GET(MTL_DDR_TYPE_MASK, val)) {
> @@ -784,11 +793,11 @@ static int xelpdp_get_dram_info(struct drm_i915_private *i915, struct dram_info
>  		dram_info->type = INTEL_DRAM_LPDDR3;
>  		break;
>  	case 8:
> -		drm_WARN_ON(&i915->drm, !IS_DGFX(i915));
> +		drm_WARN_ON(display->drm, !display->platform.dgfx);
>  		dram_info->type = INTEL_DRAM_GDDR;
>  		break;
>  	case 9:
> -		drm_WARN_ON(&i915->drm, !IS_DGFX(i915));
> +		drm_WARN_ON(display->drm, !display->platform.dgfx);
>  		dram_info->type = INTEL_DRAM_GDDR_ECC;
>  		break;
>  	default:
> @@ -806,41 +815,41 @@ static int xelpdp_get_dram_info(struct drm_i915_private *i915, struct dram_info
>  	return 0;
>  }
>  
> -int intel_dram_detect(struct drm_i915_private *i915)
> +int intel_dram_detect(struct intel_display *display)
>  {
> -	struct intel_display *display = i915->display;
> +	struct drm_i915_private *i915 = to_i915(display->drm);
>  	struct dram_info *dram_info;
>  	int ret;
>  
> -	if (IS_DG2(i915) || !intel_display_device_present(display))
> +	if (display->platform.dg2 || !HAS_DISPLAY(display))
>  		return 0;
>  
> -	dram_info = drmm_kzalloc(&i915->drm, sizeof(*dram_info), GFP_KERNEL);
> +	dram_info = drmm_kzalloc(display->drm, sizeof(*dram_info), GFP_KERNEL);
>  	if (!dram_info)
>  		return -ENOMEM;
>  
>  	i915->dram_info = dram_info;
>  
>  	if (DISPLAY_VER(display) >= 14)
> -		ret = xelpdp_get_dram_info(i915, dram_info);
> -	else if (GRAPHICS_VER(i915) >= 12)
> -		ret = gen12_get_dram_info(i915, dram_info);
> -	else if (GRAPHICS_VER(i915) >= 11)
> -		ret = gen11_get_dram_info(i915, dram_info);
> -	else if (IS_BROXTON(i915) || IS_GEMINILAKE(i915))
> -		ret = bxt_get_dram_info(i915, dram_info);
> -	else if (GRAPHICS_VER(i915) >= 9)
> -		ret = skl_get_dram_info(i915, dram_info);
> +		ret = xelpdp_get_dram_info(display, dram_info);
> +	else if (DISPLAY_VER(display) >= 12)
> +		ret = gen12_get_dram_info(display, dram_info);
> +	else if (DISPLAY_VER(display) >= 11)
> +		ret = gen11_get_dram_info(display, dram_info);
> +	else if (display->platform.broxton || display->platform.geminilake)
> +		ret = bxt_get_dram_info(display, dram_info);
> +	else if (DISPLAY_VER(display) >= 9)
> +		ret = skl_get_dram_info(display, dram_info);
>  	else
> -		ret = i915_get_dram_info(i915, dram_info);
> +		ret = i915_get_dram_info(display, dram_info);
>  
> -	drm_dbg_kms(&i915->drm, "DRAM type: %s\n",
> +	drm_dbg_kms(display->drm, "DRAM type: %s\n",
>  		    intel_dram_type_str(dram_info->type));
>  
> -	drm_dbg_kms(&i915->drm, "DRAM channels: %u\n", dram_info->num_channels);
> +	drm_dbg_kms(display->drm, "DRAM channels: %u\n", dram_info->num_channels);
>  
> -	drm_dbg_kms(&i915->drm, "Num QGV points %u\n", dram_info->num_qgv_points);
> -	drm_dbg_kms(&i915->drm, "Num PSF GV points %u\n", dram_info->num_psf_gv_points);
> +	drm_dbg_kms(display->drm, "Num QGV points %u\n", dram_info->num_qgv_points);
> +	drm_dbg_kms(display->drm, "Num PSF GV points %u\n", dram_info->num_psf_gv_points);
>  
>  	/* TODO: Do we want to abort probe on dram detection failures? */
>  	if (ret)
> @@ -854,9 +863,9 @@ int intel_dram_detect(struct drm_i915_private *i915)
>   * checks, and prefer not dereferencing on platforms that shouldn't look at dram
>   * info, to catch accidental and incorrect dram info checks.
>   */
> -const struct dram_info *intel_dram_info(struct drm_device *drm)
> +const struct dram_info *intel_dram_info(struct intel_display *display)
>  {
> -	struct drm_i915_private *i915 = to_i915(drm);
> +	struct drm_i915_private *i915 = to_i915(display->drm);
>  
>  	return i915->dram_info;
>  }
> diff --git a/drivers/gpu/drm/i915/display/intel_dram.h b/drivers/gpu/drm/i915/display/intel_dram.h
> index 58aaf2f91afe..5800b7b4e614 100644
> --- a/drivers/gpu/drm/i915/display/intel_dram.h
> +++ b/drivers/gpu/drm/i915/display/intel_dram.h
> @@ -8,8 +8,7 @@
>  
>  #include <linux/types.h>
>  
> -struct drm_i915_private;
> -struct drm_device;
> +struct intel_display;
>  
>  struct dram_info {
>  	enum intel_dram_type {
> @@ -35,10 +34,10 @@ struct dram_info {
>  	bool has_16gb_dimms;
>  };
>  
> -int intel_dram_detect(struct drm_i915_private *i915);
> -unsigned int intel_fsb_freq(struct drm_i915_private *i915);
> -unsigned int intel_mem_freq(struct drm_i915_private *i915);
> -const struct dram_info *intel_dram_info(struct drm_device *drm);
> +int intel_dram_detect(struct intel_display *display);
> +unsigned int intel_fsb_freq(struct intel_display *display);
> +unsigned int intel_mem_freq(struct intel_display *display);
> +const struct dram_info *intel_dram_info(struct intel_display *display);
>  const char *intel_dram_type_str(enum intel_dram_type type);
>  
>  #endif /* __INTEL_DRAM_H__ */
> diff --git a/drivers/gpu/drm/i915/display/skl_watermark.c b/drivers/gpu/drm/i915/display/skl_watermark.c
> index a33e0cec8cba..7964cfffdaae 100644
> --- a/drivers/gpu/drm/i915/display/skl_watermark.c
> +++ b/drivers/gpu/drm/i915/display/skl_watermark.c
> @@ -3125,7 +3125,7 @@ static bool skl_watermark_ipc_can_enable(struct intel_display *display)
>  	if (display->platform.kabylake ||
>  	    display->platform.coffeelake ||
>  	    display->platform.cometlake) {
> -		const struct dram_info *dram_info = intel_dram_info(display->drm);
> +		const struct dram_info *dram_info = intel_dram_info(display);
>  
>  		return dram_info->symmetric_memory;
>  	}
> @@ -3169,7 +3169,7 @@ static void increase_wm_latency(struct intel_display *display, int inc)
>  
>  static bool need_16gb_dimm_wa(struct intel_display *display)
>  {
> -	const struct dram_info *dram_info = intel_dram_info(display->drm);
> +	const struct dram_info *dram_info = intel_dram_info(display);
>  
>  	return (display->platform.skylake || display->platform.kabylake ||
>  		display->platform.coffeelake || display->platform.cometlake ||
> diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
> index d1f573f1b6cc..2369e2b55096 100644
> --- a/drivers/gpu/drm/i915/i915_driver.c
> +++ b/drivers/gpu/drm/i915/i915_driver.c
> @@ -574,7 +574,7 @@ static int i915_driver_hw_probe(struct drm_i915_private *dev_priv)
>  	 * Fill the dram structure to get the system dram info. This will be
>  	 * used for memory latency calculation.
>  	 */
> -	ret = intel_dram_detect(dev_priv);
> +	ret = intel_dram_detect(display);
>  	if (ret)
>  		goto err_opregion;
>  
> diff --git a/drivers/gpu/drm/xe/display/xe_display.c b/drivers/gpu/drm/xe/display/xe_display.c
> index 9b1d21e03df0..793115077615 100644
> --- a/drivers/gpu/drm/xe/display/xe_display.c
> +++ b/drivers/gpu/drm/xe/display/xe_display.c
> @@ -122,7 +122,7 @@ int xe_display_init_early(struct xe_device *xe)
>  	 * Fill the dram structure to get the system dram info. This will be
>  	 * used for memory latency calculation.
>  	 */
> -	err = intel_dram_detect(xe);
> +	err = intel_dram_detect(display);
>  	if (err)
>  		goto err_opregion;

-- 
Jani Nikula, Intel

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

* Re: [PATCH v2 05/13] drm/i915/dram: convert to struct intel_display
  2025-11-20  8:31   ` Jani Nikula
@ 2025-11-20 13:59     ` Ville Syrjälä
  0 siblings, 0 replies; 30+ messages in thread
From: Ville Syrjälä @ 2025-11-20 13:59 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx, intel-xe

On Thu, Nov 20, 2025 at 10:31:06AM +0200, Jani Nikula wrote:
> On Wed, 19 Nov 2025, Jani Nikula <jani.nikula@intel.com> wrote:
> > Convert everything except uncore access to struct intel_display.
> >
> > While at it, convert logging to drm_dbg_kms().
> >
> > Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> > ---
> >  drivers/gpu/drm/i915/display/i9xx_wm.c        |   2 +-
> >  drivers/gpu/drm/i915/display/intel_bw.c       |   2 +-
> >  drivers/gpu/drm/i915/display/intel_cdclk.c    |   4 +-
> >  .../drm/i915/display/intel_display_power.c    |   2 +-
> >  drivers/gpu/drm/i915/display/intel_dram.c     | 205 +++++++++---------
> >  drivers/gpu/drm/i915/display/intel_dram.h     |  11 +-
> >  drivers/gpu/drm/i915/display/skl_watermark.c  |   4 +-
> >  drivers/gpu/drm/i915/i915_driver.c            |   2 +-
> >  drivers/gpu/drm/xe/display/xe_display.c       |   2 +-
> >  9 files changed, 120 insertions(+), 114 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/i9xx_wm.c b/drivers/gpu/drm/i915/display/i9xx_wm.c
> > index 27e2d73bc505..167277cd8877 100644
> > --- a/drivers/gpu/drm/i915/display/i9xx_wm.c
> > +++ b/drivers/gpu/drm/i915/display/i9xx_wm.c
> > @@ -90,7 +90,7 @@ static const struct cxsr_latency cxsr_latency_table[] = {
> >  
> >  static const struct cxsr_latency *pnv_get_cxsr_latency(struct intel_display *display)
> >  {
> > -	const struct dram_info *dram_info = intel_dram_info(display->drm);
> > +	const struct dram_info *dram_info = intel_dram_info(display);
> >  	bool is_ddr3 = dram_info->type == INTEL_DRAM_DDR3;
> >  	int i;
> >  
> > diff --git a/drivers/gpu/drm/i915/display/intel_bw.c b/drivers/gpu/drm/i915/display/intel_bw.c
> > index 957c90e62569..d27835ed49c2 100644
> > --- a/drivers/gpu/drm/i915/display/intel_bw.c
> > +++ b/drivers/gpu/drm/i915/display/intel_bw.c
> > @@ -799,7 +799,7 @@ static unsigned int icl_qgv_bw(struct intel_display *display,
> >  
> >  void intel_bw_init_hw(struct intel_display *display)
> >  {
> > -	const struct dram_info *dram_info = intel_dram_info(display->drm);
> > +	const struct dram_info *dram_info = intel_dram_info(display);
> >  
> >  	if (!HAS_DISPLAY(display))
> >  		return;
> > diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c b/drivers/gpu/drm/i915/display/intel_cdclk.c
> > index 531819391c8c..5c90e53b4e46 100644
> > --- a/drivers/gpu/drm/i915/display/intel_cdclk.c
> > +++ b/drivers/gpu/drm/i915/display/intel_cdclk.c
> > @@ -3737,10 +3737,8 @@ static int pch_rawclk(struct intel_display *display)
> >  
> >  static int i9xx_hrawclk(struct intel_display *display)
> >  {
> > -	struct drm_i915_private *i915 = to_i915(display->drm);
> > -
> >  	/* hrawclock is 1/4 the FSB frequency */
> > -	return DIV_ROUND_CLOSEST(intel_fsb_freq(i915), 4);
> > +	return DIV_ROUND_CLOSEST(intel_fsb_freq(display), 4);
> >  }
> >  
> >  /**
> > diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c b/drivers/gpu/drm/i915/display/intel_display_power.c
> > index 9c5f0277d8c2..08db9bbbfcb1 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display_power.c
> > +++ b/drivers/gpu/drm/i915/display/intel_display_power.c
> > @@ -1616,7 +1616,7 @@ static const struct buddy_page_mask wa_1409767108_buddy_page_masks[] = {
> >  
> >  static void tgl_bw_buddy_init(struct intel_display *display)
> >  {
> > -	const struct dram_info *dram_info = intel_dram_info(display->drm);
> > +	const struct dram_info *dram_info = intel_dram_info(display);
> >  	const struct buddy_page_mask *table;
> >  	unsigned long abox_mask = DISPLAY_INFO(display)->abox_mask;
> >  	int config, i;
> > diff --git a/drivers/gpu/drm/i915/display/intel_dram.c b/drivers/gpu/drm/i915/display/intel_dram.c
> > index 7142772f2a6e..3dfcc7938740 100644
> > --- a/drivers/gpu/drm/i915/display/intel_dram.c
> > +++ b/drivers/gpu/drm/i915/display/intel_dram.c
> > @@ -56,14 +56,17 @@ const char *intel_dram_type_str(enum intel_dram_type type)
> >  
> >  #undef DRAM_TYPE_STR
> >  
> > -static enum intel_dram_type pnv_dram_type(struct drm_i915_private *i915)
> > +static enum intel_dram_type pnv_dram_type(struct intel_display *display)
> >  {
> > +	struct drm_i915_private *i915 = to_i915(display->drm);
> > +
> >  	return intel_uncore_read(&i915->uncore, CSHRDDR3CTL) & CSHRDDR3CTL_DDR3 ?
> >  		INTEL_DRAM_DDR3 : INTEL_DRAM_DDR2;
> >  }
> >  
> > -static unsigned int pnv_mem_freq(struct drm_i915_private *dev_priv)
> > +static unsigned int pnv_mem_freq(struct intel_display *display)
> >  {
> > +	struct drm_i915_private *dev_priv = to_i915(display->drm);
> >  	u32 tmp;
> >  
> >  	tmp = intel_uncore_read(&dev_priv->uncore, CLKCFG);
> > @@ -80,8 +83,9 @@ static unsigned int pnv_mem_freq(struct drm_i915_private *dev_priv)
> >  	return 0;
> >  }
> >  
> > -static unsigned int ilk_mem_freq(struct drm_i915_private *dev_priv)
> > +static unsigned int ilk_mem_freq(struct intel_display *display)
> >  {
> > +	struct drm_i915_private *dev_priv = to_i915(display->drm);
> >  	u16 ddrpll;
> >  
> >  	ddrpll = intel_uncore_read16(&dev_priv->uncore, DDRMPLL1);
> > @@ -95,19 +99,19 @@ static unsigned int ilk_mem_freq(struct drm_i915_private *dev_priv)
> >  	case 0x18:
> >  		return 1600000;
> >  	default:
> > -		drm_dbg(&dev_priv->drm, "unknown memory frequency 0x%02x\n",
> > -			ddrpll & 0xff);
> > +		drm_dbg_kms(display->drm, "unknown memory frequency 0x%02x\n",
> > +			    ddrpll & 0xff);
> >  		return 0;
> >  	}
> >  }
> >  
> > -static unsigned int chv_mem_freq(struct drm_i915_private *i915)
> > +static unsigned int chv_mem_freq(struct intel_display *display)
> >  {
> >  	u32 val;
> >  
> > -	vlv_iosf_sb_get(&i915->drm, BIT(VLV_IOSF_SB_CCK));
> > -	val = vlv_iosf_sb_read(&i915->drm, VLV_IOSF_SB_CCK, CCK_FUSE_REG);
> > -	vlv_iosf_sb_put(&i915->drm, BIT(VLV_IOSF_SB_CCK));
> > +	vlv_iosf_sb_get(display->drm, BIT(VLV_IOSF_SB_CCK));
> > +	val = vlv_iosf_sb_read(display->drm, VLV_IOSF_SB_CCK, CCK_FUSE_REG);
> > +	vlv_iosf_sb_put(display->drm, BIT(VLV_IOSF_SB_CCK));
> >  
> >  	switch ((val >> 2) & 0x7) {
> >  	case 3:
> > @@ -117,13 +121,13 @@ static unsigned int chv_mem_freq(struct drm_i915_private *i915)
> >  	}
> >  }
> >  
> > -static unsigned int vlv_mem_freq(struct drm_i915_private *i915)
> > +static unsigned int vlv_mem_freq(struct intel_display *display)
> >  {
> >  	u32 val;
> >  
> > -	vlv_iosf_sb_get(&i915->drm, BIT(VLV_IOSF_SB_PUNIT));
> > -	val = vlv_iosf_sb_read(&i915->drm, VLV_IOSF_SB_PUNIT, PUNIT_REG_GPU_FREQ_STS);
> > -	vlv_iosf_sb_put(&i915->drm, BIT(VLV_IOSF_SB_PUNIT));
> > +	vlv_iosf_sb_get(display->drm, BIT(VLV_IOSF_SB_PUNIT));
> > +	val = vlv_iosf_sb_read(display->drm, VLV_IOSF_SB_PUNIT, PUNIT_REG_GPU_FREQ_STS);
> > +	vlv_iosf_sb_put(display->drm, BIT(VLV_IOSF_SB_PUNIT));
> >  
> >  	switch ((val >> 6) & 3) {
> >  	case 0:
> > @@ -138,22 +142,23 @@ static unsigned int vlv_mem_freq(struct drm_i915_private *i915)
> >  	return 0;
> >  }
> >  
> > -unsigned int intel_mem_freq(struct drm_i915_private *i915)
> > +unsigned int intel_mem_freq(struct intel_display *display)
> >  {
> > -	if (IS_PINEVIEW(i915))
> > -		return pnv_mem_freq(i915);
> > -	else if (GRAPHICS_VER(i915) == 5)
> > -		return ilk_mem_freq(i915);
> > -	else if (IS_CHERRYVIEW(i915))
> > -		return chv_mem_freq(i915);
> > -	else if (IS_VALLEYVIEW(i915))
> > -		return vlv_mem_freq(i915);
> > +	if (display->platform.pineview)
> > +		return pnv_mem_freq(display);
> > +	else if (DISPLAY_VER(display) == 5)
> > +		return ilk_mem_freq(display);
> > +	else if (display->platform.cherryview)
> > +		return chv_mem_freq(display);
> > +	else if (display->platform.valleyview)
> > +		return vlv_mem_freq(display);
> >  	else
> >  		return 0;
> >  }
> >  
> > -static unsigned int i9xx_fsb_freq(struct drm_i915_private *i915)
> > +static unsigned int i9xx_fsb_freq(struct intel_display *display)
> >  {
> > +	struct drm_i915_private *i915 = to_i915(display->drm);
> >  	u32 fsb;
> >  
> >  	/*
> > @@ -166,7 +171,7 @@ static unsigned int i9xx_fsb_freq(struct drm_i915_private *i915)
> >  	 */
> >  	fsb = intel_uncore_read(&i915->uncore, CLKCFG) & CLKCFG_FSB_MASK;
> >  
> > -	if (IS_PINEVIEW(i915) || IS_MOBILE(i915)) {
> > +	if (display->platform.pineview || display->platform.mobile) {
> >  		switch (fsb) {
> >  		case CLKCFG_FSB_400:
> >  			return 400000;
> > @@ -207,8 +212,9 @@ static unsigned int i9xx_fsb_freq(struct drm_i915_private *i915)
> >  	}
> >  }
> >  
> > -static unsigned int ilk_fsb_freq(struct drm_i915_private *dev_priv)
> > +static unsigned int ilk_fsb_freq(struct intel_display *display)
> >  {
> > +	struct drm_i915_private *dev_priv = to_i915(display->drm);
> >  	u16 fsb;
> >  
> >  	fsb = intel_uncore_read16(&dev_priv->uncore, CSIPLL0) & 0x3ff;
> > @@ -229,33 +235,33 @@ static unsigned int ilk_fsb_freq(struct drm_i915_private *dev_priv)
> >  	case 0x018:
> >  		return 6400000;
> >  	default:
> > -		drm_dbg(&dev_priv->drm, "unknown fsb frequency 0x%04x\n", fsb);
> > +		drm_dbg_kms(display->drm, "unknown fsb frequency 0x%04x\n", fsb);
> >  		return 0;
> >  	}
> >  }
> >  
> > -unsigned int intel_fsb_freq(struct drm_i915_private *i915)
> > +unsigned int intel_fsb_freq(struct intel_display *display)
> >  {
> > -	if (GRAPHICS_VER(i915) == 5)
> > -		return ilk_fsb_freq(i915);
> > -	else if (GRAPHICS_VER(i915) == 3 || GRAPHICS_VER(i915) == 4)
> > -		return i9xx_fsb_freq(i915);
> > +	if (DISPLAY_VER(display) == 5)
> > +		return ilk_fsb_freq(display);
> > +	else if (IS_DISPLAY_VER(display, 3, 4))
> > +		return i9xx_fsb_freq(display);
> >  	else
> >  		return 0;
> >  }
> >  
> > -static int i915_get_dram_info(struct drm_i915_private *i915, struct dram_info *dram_info)
> > +static int i915_get_dram_info(struct intel_display *display, struct dram_info *dram_info)
> >  {
> > -	dram_info->fsb_freq = intel_fsb_freq(i915);
> > +	dram_info->fsb_freq = intel_fsb_freq(display);
> >  	if (dram_info->fsb_freq)
> > -		drm_dbg(&i915->drm, "FSB frequency: %d kHz\n", dram_info->fsb_freq);
> > +		drm_dbg_kms(display->drm, "FSB frequency: %d kHz\n", dram_info->fsb_freq);
> >  
> > -	dram_info->mem_freq = intel_mem_freq(i915);
> > +	dram_info->mem_freq = intel_mem_freq(display);
> >  	if (dram_info->mem_freq)
> > -		drm_dbg(&i915->drm, "DDR speed: %d kHz\n", dram_info->mem_freq);
> > +		drm_dbg_kms(display->drm, "DDR speed: %d kHz\n", dram_info->mem_freq);
> >  
> > -	if (IS_PINEVIEW(i915))
> > -		dram_info->type = pnv_dram_type(i915);
> > +	if (display->platform.pineview)
> > +		dram_info->type = pnv_dram_type(display);
> >  
> >  	return 0;
> >  }
> > @@ -391,22 +397,22 @@ skl_is_16gb_dimm(const struct dram_dimm_info *dimm)
> >  }
> >  
> >  static void
> > -skl_dram_print_dimm_info(struct drm_i915_private *i915,
> > +skl_dram_print_dimm_info(struct intel_display *display,
> >  			 struct dram_dimm_info *dimm,
> >  			 int channel, char dimm_name)
> >  {
> > -	drm_dbg_kms(&i915->drm,
> > +	drm_dbg_kms(display->drm,
> >  		    "CH%u DIMM %c size: %u Gb, width: X%u, ranks: %u, 16Gb+ DIMMs: %s\n",
> >  		    channel, dimm_name, dimm->size, dimm->width, dimm->ranks,
> >  		    str_yes_no(skl_is_16gb_dimm(dimm)));
> >  }
> >  
> >  static void
> > -skl_dram_get_dimm_l_info(struct drm_i915_private *i915,
> > +skl_dram_get_dimm_l_info(struct intel_display *display,
> >  			 struct dram_dimm_info *dimm,
> >  			 int channel, u32 val)
> >  {
> > -	if (GRAPHICS_VER(i915) >= 11) {
> > +	if (DISPLAY_VER(display) >= 11) {
> >  		dimm->size = icl_get_dimm_l_size(val);
> >  		dimm->width = icl_get_dimm_l_width(val);
> >  		dimm->ranks = icl_get_dimm_l_ranks(val);
> > @@ -416,15 +422,15 @@ skl_dram_get_dimm_l_info(struct drm_i915_private *i915,
> >  		dimm->ranks = skl_get_dimm_l_ranks(val);
> >  	}
> >  
> > -	skl_dram_print_dimm_info(i915, dimm, channel, 'L');
> > +	skl_dram_print_dimm_info(display, dimm, channel, 'L');
> >  }
> >  
> >  static void
> > -skl_dram_get_dimm_s_info(struct drm_i915_private *i915,
> > +skl_dram_get_dimm_s_info(struct intel_display *display,
> >  			 struct dram_dimm_info *dimm,
> >  			 int channel, u32 val)
> >  {
> > -	if (GRAPHICS_VER(i915) >= 11) {
> > +	if (DISPLAY_VER(display) >= 11) {
> >  		dimm->size = icl_get_dimm_s_size(val);
> >  		dimm->width = icl_get_dimm_s_width(val);
> >  		dimm->ranks = icl_get_dimm_s_ranks(val);
> > @@ -434,19 +440,19 @@ skl_dram_get_dimm_s_info(struct drm_i915_private *i915,
> >  		dimm->ranks = skl_get_dimm_s_ranks(val);
> >  	}
> >  
> > -	skl_dram_print_dimm_info(i915, dimm, channel, 'S');
> > +	skl_dram_print_dimm_info(display, dimm, channel, 'S');
> >  }
> >  
> >  static int
> > -skl_dram_get_channel_info(struct drm_i915_private *i915,
> > +skl_dram_get_channel_info(struct intel_display *display,
> >  			  struct dram_channel_info *ch,
> >  			  int channel, u32 val)
> >  {
> > -	skl_dram_get_dimm_l_info(i915, &ch->dimm_l, channel, val);
> > -	skl_dram_get_dimm_s_info(i915, &ch->dimm_s, channel, val);
> > +	skl_dram_get_dimm_l_info(display, &ch->dimm_l, channel, val);
> > +	skl_dram_get_dimm_s_info(display, &ch->dimm_s, channel, val);
> >  
> >  	if (ch->dimm_l.size == 0 && ch->dimm_s.size == 0) {
> > -		drm_dbg_kms(&i915->drm, "CH%u not populated\n", channel);
> > +		drm_dbg_kms(display->drm, "CH%u not populated\n", channel);
> >  		return -EINVAL;
> >  	}
> >  
> > @@ -460,7 +466,7 @@ skl_dram_get_channel_info(struct drm_i915_private *i915,
> >  	ch->is_16gb_dimm = skl_is_16gb_dimm(&ch->dimm_l) ||
> >  		skl_is_16gb_dimm(&ch->dimm_s);
> >  
> > -	drm_dbg_kms(&i915->drm, "CH%u ranks: %u, 16Gb+ DIMMs: %s\n",
> > +	drm_dbg_kms(display->drm, "CH%u ranks: %u, 16Gb+ DIMMs: %s\n",
> >  		    channel, ch->ranks, str_yes_no(ch->is_16gb_dimm));
> >  
> >  	return 0;
> > @@ -476,8 +482,9 @@ intel_is_dram_symmetric(const struct dram_channel_info *ch0,
> >  }
> >  
> >  static int
> > -skl_dram_get_channels_info(struct drm_i915_private *i915, struct dram_info *dram_info)
> > +skl_dram_get_channels_info(struct intel_display *display, struct dram_info *dram_info)
> >  {
> > +	struct drm_i915_private *i915 = to_i915(display->drm);
> >  	struct dram_channel_info ch0 = {}, ch1 = {};
> >  	u32 val;
> >  	int ret;
> > @@ -487,23 +494,23 @@ skl_dram_get_channels_info(struct drm_i915_private *i915, struct dram_info *dram
> >  
> >  	val = intel_uncore_read(&i915->uncore,
> >  				SKL_MAD_DIMM_CH0_0_0_0_MCHBAR_MCMAIN);
> > -	ret = skl_dram_get_channel_info(i915, &ch0, 0, val);
> > +	ret = skl_dram_get_channel_info(display, &ch0, 0, val);
> >  	if (ret == 0)
> >  		dram_info->num_channels++;
> >  
> >  	val = intel_uncore_read(&i915->uncore,
> >  				SKL_MAD_DIMM_CH1_0_0_0_MCHBAR_MCMAIN);
> > -	ret = skl_dram_get_channel_info(i915, &ch1, 1, val);
> > +	ret = skl_dram_get_channel_info(display, &ch1, 1, val);
> >  	if (ret == 0)
> >  		dram_info->num_channels++;
> >  
> >  	if (dram_info->num_channels == 0) {
> > -		drm_info(&i915->drm, "Number of memory channels is zero\n");
> > +		drm_info(display->drm, "Number of memory channels is zero\n");
> >  		return -EINVAL;
> >  	}
> >  
> >  	if (ch0.ranks == 0 && ch1.ranks == 0) {
> > -		drm_info(&i915->drm, "couldn't get memory rank information\n");
> > +		drm_info(display->drm, "couldn't get memory rank information\n");
> >  		return -EINVAL;
> >  	}
> >  
> > @@ -511,18 +518,19 @@ skl_dram_get_channels_info(struct drm_i915_private *i915, struct dram_info *dram
> >  
> >  	dram_info->symmetric_memory = intel_is_dram_symmetric(&ch0, &ch1);
> >  
> > -	drm_dbg_kms(&i915->drm, "Memory configuration is symmetric? %s\n",
> > +	drm_dbg_kms(display->drm, "Memory configuration is symmetric? %s\n",
> >  		    str_yes_no(dram_info->symmetric_memory));
> >  
> > -	drm_dbg_kms(&i915->drm, "16Gb+ DIMMs: %s\n",
> > +	drm_dbg_kms(display->drm, "16Gb+ DIMMs: %s\n",
> >  		    str_yes_no(dram_info->has_16gb_dimms));
> >  
> >  	return 0;
> >  }
> >  
> >  static enum intel_dram_type
> > -skl_get_dram_type(struct drm_i915_private *i915)
> > +skl_get_dram_type(struct intel_display *display)
> >  {
> > +	struct drm_i915_private *i915 = to_i915(display->drm);
> >  	u32 val;
> >  
> >  	val = intel_uncore_read(&i915->uncore,
> > @@ -544,13 +552,13 @@ skl_get_dram_type(struct drm_i915_private *i915)
> >  }
> >  
> >  static int
> > -skl_get_dram_info(struct drm_i915_private *i915, struct dram_info *dram_info)
> > +skl_get_dram_info(struct intel_display *display, struct dram_info *dram_info)
> >  {
> >  	int ret;
> >  
> > -	dram_info->type = skl_get_dram_type(i915);
> > +	dram_info->type = skl_get_dram_type(display);
> >  
> > -	ret = skl_dram_get_channels_info(i915, dram_info);
> > +	ret = skl_dram_get_channels_info(display, dram_info);
> >  	if (ret)
> >  		return ret;
> >  
> > @@ -635,8 +643,9 @@ static void bxt_get_dimm_info(struct dram_dimm_info *dimm, u32 val)
> >  	dimm->size = bxt_get_dimm_size(val) * intel_dimm_num_devices(dimm);
> >  }
> >  
> > -static int bxt_get_dram_info(struct drm_i915_private *i915, struct dram_info *dram_info)
> > +static int bxt_get_dram_info(struct intel_display *display, struct dram_info *dram_info)
> >  {
> > +	struct drm_i915_private *i915 = to_i915(display->drm);
> >  	u32 val;
> >  	u8 valid_ranks = 0;
> >  	int i;
> > @@ -657,11 +666,11 @@ static int bxt_get_dram_info(struct drm_i915_private *i915, struct dram_info *dr
> >  		bxt_get_dimm_info(&dimm, val);
> >  		type = bxt_get_dimm_type(val);
> >  
> > -		drm_WARN_ON(&i915->drm, type != INTEL_DRAM_UNKNOWN &&
> > +		drm_WARN_ON(display->drm, type != INTEL_DRAM_UNKNOWN &&
> >  			    dram_info->type != INTEL_DRAM_UNKNOWN &&
> >  			    dram_info->type != type);
> >  
> > -		drm_dbg_kms(&i915->drm,
> > +		drm_dbg_kms(display->drm,
> >  			    "CH%u DIMM size: %u Gb, width: X%u, ranks: %u\n",
> >  			    i - BXT_D_CR_DRP0_DUNIT_START,
> >  			    dimm.size, dimm.width, dimm.ranks);
> > @@ -674,25 +683,25 @@ static int bxt_get_dram_info(struct drm_i915_private *i915, struct dram_info *dr
> >  	}
> >  
> >  	if (dram_info->type == INTEL_DRAM_UNKNOWN || valid_ranks == 0) {
> > -		drm_info(&i915->drm, "couldn't get memory information\n");
> > +		drm_info(display->drm, "couldn't get memory information\n");
> >  		return -EINVAL;
> >  	}
> >  
> >  	return 0;
> >  }
> >  
> > -static int icl_pcode_read_mem_global_info(struct drm_i915_private *dev_priv,
> > +static int icl_pcode_read_mem_global_info(struct intel_display *display,
> >  					  struct dram_info *dram_info)
> >  {
> >  	u32 val = 0;
> >  	int ret;
> >  
> > -	ret = intel_pcode_read(&dev_priv->drm, ICL_PCODE_MEM_SUBSYSYSTEM_INFO |
> > +	ret = intel_pcode_read(display->drm, ICL_PCODE_MEM_SUBSYSYSTEM_INFO |
> >  			       ICL_PCODE_MEM_SS_READ_GLOBAL_INFO, &val, NULL);
> >  	if (ret)
> >  		return ret;
> >  
> > -	if (GRAPHICS_VER(dev_priv) == 12) {
> > +	if (DISPLAY_VER(display) == 12) {
> 
> CI tells me this goes south on e.g. ADL-P (or TWL) which has graphics
> version 12 but display version 13.
> 
> What to do.

You can just check for >=12 here.

> 
> 
> BR,
> Jani.
> 
> >  		switch (val & 0xf) {
> >  		case 0:
> >  			dram_info->type = INTEL_DRAM_DDR4;
> > @@ -743,25 +752,25 @@ static int icl_pcode_read_mem_global_info(struct drm_i915_private *dev_priv,
> >  	return 0;
> >  }
> >  
> > -static int gen11_get_dram_info(struct drm_i915_private *i915, struct dram_info *dram_info)
> > +static int gen11_get_dram_info(struct intel_display *display, struct dram_info *dram_info)
> >  {
> >  	int ret;
> >  
> > -	ret = skl_dram_get_channels_info(i915, dram_info);
> > +	ret = skl_dram_get_channels_info(display, dram_info);
> >  	if (ret)
> >  		return ret;
> >  
> > -	return icl_pcode_read_mem_global_info(i915, dram_info);
> > +	return icl_pcode_read_mem_global_info(display, dram_info);
> >  }
> >  
> > -static int gen12_get_dram_info(struct drm_i915_private *i915, struct dram_info *dram_info)
> > +static int gen12_get_dram_info(struct intel_display *display, struct dram_info *dram_info)
> >  {
> > -	return icl_pcode_read_mem_global_info(i915, dram_info);
> > +	return icl_pcode_read_mem_global_info(display, dram_info);
> >  }
> >  
> > -static int xelpdp_get_dram_info(struct drm_i915_private *i915, struct dram_info *dram_info)
> > +static int xelpdp_get_dram_info(struct intel_display *display, struct dram_info *dram_info)
> >  {
> > -	struct intel_display *display = i915->display;
> > +	struct drm_i915_private *i915 = to_i915(display->drm);
> >  	u32 val = intel_uncore_read(&i915->uncore, MTL_MEM_SS_INFO_GLOBAL);
> >  
> >  	switch (REG_FIELD_GET(MTL_DDR_TYPE_MASK, val)) {
> > @@ -784,11 +793,11 @@ static int xelpdp_get_dram_info(struct drm_i915_private *i915, struct dram_info
> >  		dram_info->type = INTEL_DRAM_LPDDR3;
> >  		break;
> >  	case 8:
> > -		drm_WARN_ON(&i915->drm, !IS_DGFX(i915));
> > +		drm_WARN_ON(display->drm, !display->platform.dgfx);
> >  		dram_info->type = INTEL_DRAM_GDDR;
> >  		break;
> >  	case 9:
> > -		drm_WARN_ON(&i915->drm, !IS_DGFX(i915));
> > +		drm_WARN_ON(display->drm, !display->platform.dgfx);
> >  		dram_info->type = INTEL_DRAM_GDDR_ECC;
> >  		break;
> >  	default:
> > @@ -806,41 +815,41 @@ static int xelpdp_get_dram_info(struct drm_i915_private *i915, struct dram_info
> >  	return 0;
> >  }
> >  
> > -int intel_dram_detect(struct drm_i915_private *i915)
> > +int intel_dram_detect(struct intel_display *display)
> >  {
> > -	struct intel_display *display = i915->display;
> > +	struct drm_i915_private *i915 = to_i915(display->drm);
> >  	struct dram_info *dram_info;
> >  	int ret;
> >  
> > -	if (IS_DG2(i915) || !intel_display_device_present(display))
> > +	if (display->platform.dg2 || !HAS_DISPLAY(display))
> >  		return 0;
> >  
> > -	dram_info = drmm_kzalloc(&i915->drm, sizeof(*dram_info), GFP_KERNEL);
> > +	dram_info = drmm_kzalloc(display->drm, sizeof(*dram_info), GFP_KERNEL);
> >  	if (!dram_info)
> >  		return -ENOMEM;
> >  
> >  	i915->dram_info = dram_info;
> >  
> >  	if (DISPLAY_VER(display) >= 14)
> > -		ret = xelpdp_get_dram_info(i915, dram_info);
> > -	else if (GRAPHICS_VER(i915) >= 12)
> > -		ret = gen12_get_dram_info(i915, dram_info);
> > -	else if (GRAPHICS_VER(i915) >= 11)
> > -		ret = gen11_get_dram_info(i915, dram_info);
> > -	else if (IS_BROXTON(i915) || IS_GEMINILAKE(i915))
> > -		ret = bxt_get_dram_info(i915, dram_info);
> > -	else if (GRAPHICS_VER(i915) >= 9)
> > -		ret = skl_get_dram_info(i915, dram_info);
> > +		ret = xelpdp_get_dram_info(display, dram_info);
> > +	else if (DISPLAY_VER(display) >= 12)
> > +		ret = gen12_get_dram_info(display, dram_info);
> > +	else if (DISPLAY_VER(display) >= 11)
> > +		ret = gen11_get_dram_info(display, dram_info);
> > +	else if (display->platform.broxton || display->platform.geminilake)
> > +		ret = bxt_get_dram_info(display, dram_info);
> > +	else if (DISPLAY_VER(display) >= 9)
> > +		ret = skl_get_dram_info(display, dram_info);
> >  	else
> > -		ret = i915_get_dram_info(i915, dram_info);
> > +		ret = i915_get_dram_info(display, dram_info);
> >  
> > -	drm_dbg_kms(&i915->drm, "DRAM type: %s\n",
> > +	drm_dbg_kms(display->drm, "DRAM type: %s\n",
> >  		    intel_dram_type_str(dram_info->type));
> >  
> > -	drm_dbg_kms(&i915->drm, "DRAM channels: %u\n", dram_info->num_channels);
> > +	drm_dbg_kms(display->drm, "DRAM channels: %u\n", dram_info->num_channels);
> >  
> > -	drm_dbg_kms(&i915->drm, "Num QGV points %u\n", dram_info->num_qgv_points);
> > -	drm_dbg_kms(&i915->drm, "Num PSF GV points %u\n", dram_info->num_psf_gv_points);
> > +	drm_dbg_kms(display->drm, "Num QGV points %u\n", dram_info->num_qgv_points);
> > +	drm_dbg_kms(display->drm, "Num PSF GV points %u\n", dram_info->num_psf_gv_points);
> >  
> >  	/* TODO: Do we want to abort probe on dram detection failures? */
> >  	if (ret)
> > @@ -854,9 +863,9 @@ int intel_dram_detect(struct drm_i915_private *i915)
> >   * checks, and prefer not dereferencing on platforms that shouldn't look at dram
> >   * info, to catch accidental and incorrect dram info checks.
> >   */
> > -const struct dram_info *intel_dram_info(struct drm_device *drm)
> > +const struct dram_info *intel_dram_info(struct intel_display *display)
> >  {
> > -	struct drm_i915_private *i915 = to_i915(drm);
> > +	struct drm_i915_private *i915 = to_i915(display->drm);
> >  
> >  	return i915->dram_info;
> >  }
> > diff --git a/drivers/gpu/drm/i915/display/intel_dram.h b/drivers/gpu/drm/i915/display/intel_dram.h
> > index 58aaf2f91afe..5800b7b4e614 100644
> > --- a/drivers/gpu/drm/i915/display/intel_dram.h
> > +++ b/drivers/gpu/drm/i915/display/intel_dram.h
> > @@ -8,8 +8,7 @@
> >  
> >  #include <linux/types.h>
> >  
> > -struct drm_i915_private;
> > -struct drm_device;
> > +struct intel_display;
> >  
> >  struct dram_info {
> >  	enum intel_dram_type {
> > @@ -35,10 +34,10 @@ struct dram_info {
> >  	bool has_16gb_dimms;
> >  };
> >  
> > -int intel_dram_detect(struct drm_i915_private *i915);
> > -unsigned int intel_fsb_freq(struct drm_i915_private *i915);
> > -unsigned int intel_mem_freq(struct drm_i915_private *i915);
> > -const struct dram_info *intel_dram_info(struct drm_device *drm);
> > +int intel_dram_detect(struct intel_display *display);
> > +unsigned int intel_fsb_freq(struct intel_display *display);
> > +unsigned int intel_mem_freq(struct intel_display *display);
> > +const struct dram_info *intel_dram_info(struct intel_display *display);
> >  const char *intel_dram_type_str(enum intel_dram_type type);
> >  
> >  #endif /* __INTEL_DRAM_H__ */
> > diff --git a/drivers/gpu/drm/i915/display/skl_watermark.c b/drivers/gpu/drm/i915/display/skl_watermark.c
> > index a33e0cec8cba..7964cfffdaae 100644
> > --- a/drivers/gpu/drm/i915/display/skl_watermark.c
> > +++ b/drivers/gpu/drm/i915/display/skl_watermark.c
> > @@ -3125,7 +3125,7 @@ static bool skl_watermark_ipc_can_enable(struct intel_display *display)
> >  	if (display->platform.kabylake ||
> >  	    display->platform.coffeelake ||
> >  	    display->platform.cometlake) {
> > -		const struct dram_info *dram_info = intel_dram_info(display->drm);
> > +		const struct dram_info *dram_info = intel_dram_info(display);
> >  
> >  		return dram_info->symmetric_memory;
> >  	}
> > @@ -3169,7 +3169,7 @@ static void increase_wm_latency(struct intel_display *display, int inc)
> >  
> >  static bool need_16gb_dimm_wa(struct intel_display *display)
> >  {
> > -	const struct dram_info *dram_info = intel_dram_info(display->drm);
> > +	const struct dram_info *dram_info = intel_dram_info(display);
> >  
> >  	return (display->platform.skylake || display->platform.kabylake ||
> >  		display->platform.coffeelake || display->platform.cometlake ||
> > diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
> > index d1f573f1b6cc..2369e2b55096 100644
> > --- a/drivers/gpu/drm/i915/i915_driver.c
> > +++ b/drivers/gpu/drm/i915/i915_driver.c
> > @@ -574,7 +574,7 @@ static int i915_driver_hw_probe(struct drm_i915_private *dev_priv)
> >  	 * Fill the dram structure to get the system dram info. This will be
> >  	 * used for memory latency calculation.
> >  	 */
> > -	ret = intel_dram_detect(dev_priv);
> > +	ret = intel_dram_detect(display);
> >  	if (ret)
> >  		goto err_opregion;
> >  
> > diff --git a/drivers/gpu/drm/xe/display/xe_display.c b/drivers/gpu/drm/xe/display/xe_display.c
> > index 9b1d21e03df0..793115077615 100644
> > --- a/drivers/gpu/drm/xe/display/xe_display.c
> > +++ b/drivers/gpu/drm/xe/display/xe_display.c
> > @@ -122,7 +122,7 @@ int xe_display_init_early(struct xe_device *xe)
> >  	 * Fill the dram structure to get the system dram info. This will be
> >  	 * used for memory latency calculation.
> >  	 */
> > -	err = intel_dram_detect(xe);
> > +	err = intel_dram_detect(display);
> >  	if (err)
> >  		goto err_opregion;
> 
> -- 
> Jani Nikula, Intel

-- 
Ville Syrjälä
Intel

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

* [PATCH v3] drm/i915/dram: convert to struct intel_display
  2025-11-19 18:52 ` [PATCH v2 05/13] drm/i915/dram: convert to struct intel_display Jani Nikula
  2025-11-20  8:31   ` Jani Nikula
@ 2025-11-20 16:18   ` Jani Nikula
  1 sibling, 0 replies; 30+ messages in thread
From: Jani Nikula @ 2025-11-20 16:18 UTC (permalink / raw)
  To: Jani Nikula, intel-gfx, intel-xe

Convert everything except uncore access to struct
intel_display. Converting the graphics version checks to display version
checks needs a tweak for display version 13, which have graphics version
12.

While at it, convert logging to drm_dbg_kms().

v2: Handle display version 13

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/display/i9xx_wm.c        |   2 +-
 drivers/gpu/drm/i915/display/intel_bw.c       |   2 +-
 drivers/gpu/drm/i915/display/intel_cdclk.c    |   4 +-
 .../drm/i915/display/intel_display_power.c    |   2 +-
 drivers/gpu/drm/i915/display/intel_dram.c     | 205 +++++++++---------
 drivers/gpu/drm/i915/display/intel_dram.h     |  11 +-
 drivers/gpu/drm/i915/display/skl_watermark.c  |   4 +-
 drivers/gpu/drm/i915/i915_driver.c            |   2 +-
 drivers/gpu/drm/xe/display/xe_display.c       |   2 +-
 9 files changed, 120 insertions(+), 114 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/i9xx_wm.c b/drivers/gpu/drm/i915/display/i9xx_wm.c
index 27e2d73bc505..167277cd8877 100644
--- a/drivers/gpu/drm/i915/display/i9xx_wm.c
+++ b/drivers/gpu/drm/i915/display/i9xx_wm.c
@@ -90,7 +90,7 @@ static const struct cxsr_latency cxsr_latency_table[] = {
 
 static const struct cxsr_latency *pnv_get_cxsr_latency(struct intel_display *display)
 {
-	const struct dram_info *dram_info = intel_dram_info(display->drm);
+	const struct dram_info *dram_info = intel_dram_info(display);
 	bool is_ddr3 = dram_info->type == INTEL_DRAM_DDR3;
 	int i;
 
diff --git a/drivers/gpu/drm/i915/display/intel_bw.c b/drivers/gpu/drm/i915/display/intel_bw.c
index 957c90e62569..d27835ed49c2 100644
--- a/drivers/gpu/drm/i915/display/intel_bw.c
+++ b/drivers/gpu/drm/i915/display/intel_bw.c
@@ -799,7 +799,7 @@ static unsigned int icl_qgv_bw(struct intel_display *display,
 
 void intel_bw_init_hw(struct intel_display *display)
 {
-	const struct dram_info *dram_info = intel_dram_info(display->drm);
+	const struct dram_info *dram_info = intel_dram_info(display);
 
 	if (!HAS_DISPLAY(display))
 		return;
diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c b/drivers/gpu/drm/i915/display/intel_cdclk.c
index 531819391c8c..5c90e53b4e46 100644
--- a/drivers/gpu/drm/i915/display/intel_cdclk.c
+++ b/drivers/gpu/drm/i915/display/intel_cdclk.c
@@ -3737,10 +3737,8 @@ static int pch_rawclk(struct intel_display *display)
 
 static int i9xx_hrawclk(struct intel_display *display)
 {
-	struct drm_i915_private *i915 = to_i915(display->drm);
-
 	/* hrawclock is 1/4 the FSB frequency */
-	return DIV_ROUND_CLOSEST(intel_fsb_freq(i915), 4);
+	return DIV_ROUND_CLOSEST(intel_fsb_freq(display), 4);
 }
 
 /**
diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c b/drivers/gpu/drm/i915/display/intel_display_power.c
index 9c5f0277d8c2..08db9bbbfcb1 100644
--- a/drivers/gpu/drm/i915/display/intel_display_power.c
+++ b/drivers/gpu/drm/i915/display/intel_display_power.c
@@ -1616,7 +1616,7 @@ static const struct buddy_page_mask wa_1409767108_buddy_page_masks[] = {
 
 static void tgl_bw_buddy_init(struct intel_display *display)
 {
-	const struct dram_info *dram_info = intel_dram_info(display->drm);
+	const struct dram_info *dram_info = intel_dram_info(display);
 	const struct buddy_page_mask *table;
 	unsigned long abox_mask = DISPLAY_INFO(display)->abox_mask;
 	int config, i;
diff --git a/drivers/gpu/drm/i915/display/intel_dram.c b/drivers/gpu/drm/i915/display/intel_dram.c
index 7142772f2a6e..b4fa1fe8709c 100644
--- a/drivers/gpu/drm/i915/display/intel_dram.c
+++ b/drivers/gpu/drm/i915/display/intel_dram.c
@@ -56,14 +56,17 @@ const char *intel_dram_type_str(enum intel_dram_type type)
 
 #undef DRAM_TYPE_STR
 
-static enum intel_dram_type pnv_dram_type(struct drm_i915_private *i915)
+static enum intel_dram_type pnv_dram_type(struct intel_display *display)
 {
+	struct drm_i915_private *i915 = to_i915(display->drm);
+
 	return intel_uncore_read(&i915->uncore, CSHRDDR3CTL) & CSHRDDR3CTL_DDR3 ?
 		INTEL_DRAM_DDR3 : INTEL_DRAM_DDR2;
 }
 
-static unsigned int pnv_mem_freq(struct drm_i915_private *dev_priv)
+static unsigned int pnv_mem_freq(struct intel_display *display)
 {
+	struct drm_i915_private *dev_priv = to_i915(display->drm);
 	u32 tmp;
 
 	tmp = intel_uncore_read(&dev_priv->uncore, CLKCFG);
@@ -80,8 +83,9 @@ static unsigned int pnv_mem_freq(struct drm_i915_private *dev_priv)
 	return 0;
 }
 
-static unsigned int ilk_mem_freq(struct drm_i915_private *dev_priv)
+static unsigned int ilk_mem_freq(struct intel_display *display)
 {
+	struct drm_i915_private *dev_priv = to_i915(display->drm);
 	u16 ddrpll;
 
 	ddrpll = intel_uncore_read16(&dev_priv->uncore, DDRMPLL1);
@@ -95,19 +99,19 @@ static unsigned int ilk_mem_freq(struct drm_i915_private *dev_priv)
 	case 0x18:
 		return 1600000;
 	default:
-		drm_dbg(&dev_priv->drm, "unknown memory frequency 0x%02x\n",
-			ddrpll & 0xff);
+		drm_dbg_kms(display->drm, "unknown memory frequency 0x%02x\n",
+			    ddrpll & 0xff);
 		return 0;
 	}
 }
 
-static unsigned int chv_mem_freq(struct drm_i915_private *i915)
+static unsigned int chv_mem_freq(struct intel_display *display)
 {
 	u32 val;
 
-	vlv_iosf_sb_get(&i915->drm, BIT(VLV_IOSF_SB_CCK));
-	val = vlv_iosf_sb_read(&i915->drm, VLV_IOSF_SB_CCK, CCK_FUSE_REG);
-	vlv_iosf_sb_put(&i915->drm, BIT(VLV_IOSF_SB_CCK));
+	vlv_iosf_sb_get(display->drm, BIT(VLV_IOSF_SB_CCK));
+	val = vlv_iosf_sb_read(display->drm, VLV_IOSF_SB_CCK, CCK_FUSE_REG);
+	vlv_iosf_sb_put(display->drm, BIT(VLV_IOSF_SB_CCK));
 
 	switch ((val >> 2) & 0x7) {
 	case 3:
@@ -117,13 +121,13 @@ static unsigned int chv_mem_freq(struct drm_i915_private *i915)
 	}
 }
 
-static unsigned int vlv_mem_freq(struct drm_i915_private *i915)
+static unsigned int vlv_mem_freq(struct intel_display *display)
 {
 	u32 val;
 
-	vlv_iosf_sb_get(&i915->drm, BIT(VLV_IOSF_SB_PUNIT));
-	val = vlv_iosf_sb_read(&i915->drm, VLV_IOSF_SB_PUNIT, PUNIT_REG_GPU_FREQ_STS);
-	vlv_iosf_sb_put(&i915->drm, BIT(VLV_IOSF_SB_PUNIT));
+	vlv_iosf_sb_get(display->drm, BIT(VLV_IOSF_SB_PUNIT));
+	val = vlv_iosf_sb_read(display->drm, VLV_IOSF_SB_PUNIT, PUNIT_REG_GPU_FREQ_STS);
+	vlv_iosf_sb_put(display->drm, BIT(VLV_IOSF_SB_PUNIT));
 
 	switch ((val >> 6) & 3) {
 	case 0:
@@ -138,22 +142,23 @@ static unsigned int vlv_mem_freq(struct drm_i915_private *i915)
 	return 0;
 }
 
-unsigned int intel_mem_freq(struct drm_i915_private *i915)
+unsigned int intel_mem_freq(struct intel_display *display)
 {
-	if (IS_PINEVIEW(i915))
-		return pnv_mem_freq(i915);
-	else if (GRAPHICS_VER(i915) == 5)
-		return ilk_mem_freq(i915);
-	else if (IS_CHERRYVIEW(i915))
-		return chv_mem_freq(i915);
-	else if (IS_VALLEYVIEW(i915))
-		return vlv_mem_freq(i915);
+	if (display->platform.pineview)
+		return pnv_mem_freq(display);
+	else if (DISPLAY_VER(display) == 5)
+		return ilk_mem_freq(display);
+	else if (display->platform.cherryview)
+		return chv_mem_freq(display);
+	else if (display->platform.valleyview)
+		return vlv_mem_freq(display);
 	else
 		return 0;
 }
 
-static unsigned int i9xx_fsb_freq(struct drm_i915_private *i915)
+static unsigned int i9xx_fsb_freq(struct intel_display *display)
 {
+	struct drm_i915_private *i915 = to_i915(display->drm);
 	u32 fsb;
 
 	/*
@@ -166,7 +171,7 @@ static unsigned int i9xx_fsb_freq(struct drm_i915_private *i915)
 	 */
 	fsb = intel_uncore_read(&i915->uncore, CLKCFG) & CLKCFG_FSB_MASK;
 
-	if (IS_PINEVIEW(i915) || IS_MOBILE(i915)) {
+	if (display->platform.pineview || display->platform.mobile) {
 		switch (fsb) {
 		case CLKCFG_FSB_400:
 			return 400000;
@@ -207,8 +212,9 @@ static unsigned int i9xx_fsb_freq(struct drm_i915_private *i915)
 	}
 }
 
-static unsigned int ilk_fsb_freq(struct drm_i915_private *dev_priv)
+static unsigned int ilk_fsb_freq(struct intel_display *display)
 {
+	struct drm_i915_private *dev_priv = to_i915(display->drm);
 	u16 fsb;
 
 	fsb = intel_uncore_read16(&dev_priv->uncore, CSIPLL0) & 0x3ff;
@@ -229,33 +235,33 @@ static unsigned int ilk_fsb_freq(struct drm_i915_private *dev_priv)
 	case 0x018:
 		return 6400000;
 	default:
-		drm_dbg(&dev_priv->drm, "unknown fsb frequency 0x%04x\n", fsb);
+		drm_dbg_kms(display->drm, "unknown fsb frequency 0x%04x\n", fsb);
 		return 0;
 	}
 }
 
-unsigned int intel_fsb_freq(struct drm_i915_private *i915)
+unsigned int intel_fsb_freq(struct intel_display *display)
 {
-	if (GRAPHICS_VER(i915) == 5)
-		return ilk_fsb_freq(i915);
-	else if (GRAPHICS_VER(i915) == 3 || GRAPHICS_VER(i915) == 4)
-		return i9xx_fsb_freq(i915);
+	if (DISPLAY_VER(display) == 5)
+		return ilk_fsb_freq(display);
+	else if (IS_DISPLAY_VER(display, 3, 4))
+		return i9xx_fsb_freq(display);
 	else
 		return 0;
 }
 
-static int i915_get_dram_info(struct drm_i915_private *i915, struct dram_info *dram_info)
+static int i915_get_dram_info(struct intel_display *display, struct dram_info *dram_info)
 {
-	dram_info->fsb_freq = intel_fsb_freq(i915);
+	dram_info->fsb_freq = intel_fsb_freq(display);
 	if (dram_info->fsb_freq)
-		drm_dbg(&i915->drm, "FSB frequency: %d kHz\n", dram_info->fsb_freq);
+		drm_dbg_kms(display->drm, "FSB frequency: %d kHz\n", dram_info->fsb_freq);
 
-	dram_info->mem_freq = intel_mem_freq(i915);
+	dram_info->mem_freq = intel_mem_freq(display);
 	if (dram_info->mem_freq)
-		drm_dbg(&i915->drm, "DDR speed: %d kHz\n", dram_info->mem_freq);
+		drm_dbg_kms(display->drm, "DDR speed: %d kHz\n", dram_info->mem_freq);
 
-	if (IS_PINEVIEW(i915))
-		dram_info->type = pnv_dram_type(i915);
+	if (display->platform.pineview)
+		dram_info->type = pnv_dram_type(display);
 
 	return 0;
 }
@@ -391,22 +397,22 @@ skl_is_16gb_dimm(const struct dram_dimm_info *dimm)
 }
 
 static void
-skl_dram_print_dimm_info(struct drm_i915_private *i915,
+skl_dram_print_dimm_info(struct intel_display *display,
 			 struct dram_dimm_info *dimm,
 			 int channel, char dimm_name)
 {
-	drm_dbg_kms(&i915->drm,
+	drm_dbg_kms(display->drm,
 		    "CH%u DIMM %c size: %u Gb, width: X%u, ranks: %u, 16Gb+ DIMMs: %s\n",
 		    channel, dimm_name, dimm->size, dimm->width, dimm->ranks,
 		    str_yes_no(skl_is_16gb_dimm(dimm)));
 }
 
 static void
-skl_dram_get_dimm_l_info(struct drm_i915_private *i915,
+skl_dram_get_dimm_l_info(struct intel_display *display,
 			 struct dram_dimm_info *dimm,
 			 int channel, u32 val)
 {
-	if (GRAPHICS_VER(i915) >= 11) {
+	if (DISPLAY_VER(display) >= 11) {
 		dimm->size = icl_get_dimm_l_size(val);
 		dimm->width = icl_get_dimm_l_width(val);
 		dimm->ranks = icl_get_dimm_l_ranks(val);
@@ -416,15 +422,15 @@ skl_dram_get_dimm_l_info(struct drm_i915_private *i915,
 		dimm->ranks = skl_get_dimm_l_ranks(val);
 	}
 
-	skl_dram_print_dimm_info(i915, dimm, channel, 'L');
+	skl_dram_print_dimm_info(display, dimm, channel, 'L');
 }
 
 static void
-skl_dram_get_dimm_s_info(struct drm_i915_private *i915,
+skl_dram_get_dimm_s_info(struct intel_display *display,
 			 struct dram_dimm_info *dimm,
 			 int channel, u32 val)
 {
-	if (GRAPHICS_VER(i915) >= 11) {
+	if (DISPLAY_VER(display) >= 11) {
 		dimm->size = icl_get_dimm_s_size(val);
 		dimm->width = icl_get_dimm_s_width(val);
 		dimm->ranks = icl_get_dimm_s_ranks(val);
@@ -434,19 +440,19 @@ skl_dram_get_dimm_s_info(struct drm_i915_private *i915,
 		dimm->ranks = skl_get_dimm_s_ranks(val);
 	}
 
-	skl_dram_print_dimm_info(i915, dimm, channel, 'S');
+	skl_dram_print_dimm_info(display, dimm, channel, 'S');
 }
 
 static int
-skl_dram_get_channel_info(struct drm_i915_private *i915,
+skl_dram_get_channel_info(struct intel_display *display,
 			  struct dram_channel_info *ch,
 			  int channel, u32 val)
 {
-	skl_dram_get_dimm_l_info(i915, &ch->dimm_l, channel, val);
-	skl_dram_get_dimm_s_info(i915, &ch->dimm_s, channel, val);
+	skl_dram_get_dimm_l_info(display, &ch->dimm_l, channel, val);
+	skl_dram_get_dimm_s_info(display, &ch->dimm_s, channel, val);
 
 	if (ch->dimm_l.size == 0 && ch->dimm_s.size == 0) {
-		drm_dbg_kms(&i915->drm, "CH%u not populated\n", channel);
+		drm_dbg_kms(display->drm, "CH%u not populated\n", channel);
 		return -EINVAL;
 	}
 
@@ -460,7 +466,7 @@ skl_dram_get_channel_info(struct drm_i915_private *i915,
 	ch->is_16gb_dimm = skl_is_16gb_dimm(&ch->dimm_l) ||
 		skl_is_16gb_dimm(&ch->dimm_s);
 
-	drm_dbg_kms(&i915->drm, "CH%u ranks: %u, 16Gb+ DIMMs: %s\n",
+	drm_dbg_kms(display->drm, "CH%u ranks: %u, 16Gb+ DIMMs: %s\n",
 		    channel, ch->ranks, str_yes_no(ch->is_16gb_dimm));
 
 	return 0;
@@ -476,8 +482,9 @@ intel_is_dram_symmetric(const struct dram_channel_info *ch0,
 }
 
 static int
-skl_dram_get_channels_info(struct drm_i915_private *i915, struct dram_info *dram_info)
+skl_dram_get_channels_info(struct intel_display *display, struct dram_info *dram_info)
 {
+	struct drm_i915_private *i915 = to_i915(display->drm);
 	struct dram_channel_info ch0 = {}, ch1 = {};
 	u32 val;
 	int ret;
@@ -487,23 +494,23 @@ skl_dram_get_channels_info(struct drm_i915_private *i915, struct dram_info *dram
 
 	val = intel_uncore_read(&i915->uncore,
 				SKL_MAD_DIMM_CH0_0_0_0_MCHBAR_MCMAIN);
-	ret = skl_dram_get_channel_info(i915, &ch0, 0, val);
+	ret = skl_dram_get_channel_info(display, &ch0, 0, val);
 	if (ret == 0)
 		dram_info->num_channels++;
 
 	val = intel_uncore_read(&i915->uncore,
 				SKL_MAD_DIMM_CH1_0_0_0_MCHBAR_MCMAIN);
-	ret = skl_dram_get_channel_info(i915, &ch1, 1, val);
+	ret = skl_dram_get_channel_info(display, &ch1, 1, val);
 	if (ret == 0)
 		dram_info->num_channels++;
 
 	if (dram_info->num_channels == 0) {
-		drm_info(&i915->drm, "Number of memory channels is zero\n");
+		drm_info(display->drm, "Number of memory channels is zero\n");
 		return -EINVAL;
 	}
 
 	if (ch0.ranks == 0 && ch1.ranks == 0) {
-		drm_info(&i915->drm, "couldn't get memory rank information\n");
+		drm_info(display->drm, "couldn't get memory rank information\n");
 		return -EINVAL;
 	}
 
@@ -511,18 +518,19 @@ skl_dram_get_channels_info(struct drm_i915_private *i915, struct dram_info *dram
 
 	dram_info->symmetric_memory = intel_is_dram_symmetric(&ch0, &ch1);
 
-	drm_dbg_kms(&i915->drm, "Memory configuration is symmetric? %s\n",
+	drm_dbg_kms(display->drm, "Memory configuration is symmetric? %s\n",
 		    str_yes_no(dram_info->symmetric_memory));
 
-	drm_dbg_kms(&i915->drm, "16Gb+ DIMMs: %s\n",
+	drm_dbg_kms(display->drm, "16Gb+ DIMMs: %s\n",
 		    str_yes_no(dram_info->has_16gb_dimms));
 
 	return 0;
 }
 
 static enum intel_dram_type
-skl_get_dram_type(struct drm_i915_private *i915)
+skl_get_dram_type(struct intel_display *display)
 {
+	struct drm_i915_private *i915 = to_i915(display->drm);
 	u32 val;
 
 	val = intel_uncore_read(&i915->uncore,
@@ -544,13 +552,13 @@ skl_get_dram_type(struct drm_i915_private *i915)
 }
 
 static int
-skl_get_dram_info(struct drm_i915_private *i915, struct dram_info *dram_info)
+skl_get_dram_info(struct intel_display *display, struct dram_info *dram_info)
 {
 	int ret;
 
-	dram_info->type = skl_get_dram_type(i915);
+	dram_info->type = skl_get_dram_type(display);
 
-	ret = skl_dram_get_channels_info(i915, dram_info);
+	ret = skl_dram_get_channels_info(display, dram_info);
 	if (ret)
 		return ret;
 
@@ -635,8 +643,9 @@ static void bxt_get_dimm_info(struct dram_dimm_info *dimm, u32 val)
 	dimm->size = bxt_get_dimm_size(val) * intel_dimm_num_devices(dimm);
 }
 
-static int bxt_get_dram_info(struct drm_i915_private *i915, struct dram_info *dram_info)
+static int bxt_get_dram_info(struct intel_display *display, struct dram_info *dram_info)
 {
+	struct drm_i915_private *i915 = to_i915(display->drm);
 	u32 val;
 	u8 valid_ranks = 0;
 	int i;
@@ -657,11 +666,11 @@ static int bxt_get_dram_info(struct drm_i915_private *i915, struct dram_info *dr
 		bxt_get_dimm_info(&dimm, val);
 		type = bxt_get_dimm_type(val);
 
-		drm_WARN_ON(&i915->drm, type != INTEL_DRAM_UNKNOWN &&
+		drm_WARN_ON(display->drm, type != INTEL_DRAM_UNKNOWN &&
 			    dram_info->type != INTEL_DRAM_UNKNOWN &&
 			    dram_info->type != type);
 
-		drm_dbg_kms(&i915->drm,
+		drm_dbg_kms(display->drm,
 			    "CH%u DIMM size: %u Gb, width: X%u, ranks: %u\n",
 			    i - BXT_D_CR_DRP0_DUNIT_START,
 			    dimm.size, dimm.width, dimm.ranks);
@@ -674,25 +683,25 @@ static int bxt_get_dram_info(struct drm_i915_private *i915, struct dram_info *dr
 	}
 
 	if (dram_info->type == INTEL_DRAM_UNKNOWN || valid_ranks == 0) {
-		drm_info(&i915->drm, "couldn't get memory information\n");
+		drm_info(display->drm, "couldn't get memory information\n");
 		return -EINVAL;
 	}
 
 	return 0;
 }
 
-static int icl_pcode_read_mem_global_info(struct drm_i915_private *dev_priv,
+static int icl_pcode_read_mem_global_info(struct intel_display *display,
 					  struct dram_info *dram_info)
 {
 	u32 val = 0;
 	int ret;
 
-	ret = intel_pcode_read(&dev_priv->drm, ICL_PCODE_MEM_SUBSYSYSTEM_INFO |
+	ret = intel_pcode_read(display->drm, ICL_PCODE_MEM_SUBSYSYSTEM_INFO |
 			       ICL_PCODE_MEM_SS_READ_GLOBAL_INFO, &val, NULL);
 	if (ret)
 		return ret;
 
-	if (GRAPHICS_VER(dev_priv) == 12) {
+	if (DISPLAY_VER(display) >= 12) {
 		switch (val & 0xf) {
 		case 0:
 			dram_info->type = INTEL_DRAM_DDR4;
@@ -743,25 +752,25 @@ static int icl_pcode_read_mem_global_info(struct drm_i915_private *dev_priv,
 	return 0;
 }
 
-static int gen11_get_dram_info(struct drm_i915_private *i915, struct dram_info *dram_info)
+static int gen11_get_dram_info(struct intel_display *display, struct dram_info *dram_info)
 {
 	int ret;
 
-	ret = skl_dram_get_channels_info(i915, dram_info);
+	ret = skl_dram_get_channels_info(display, dram_info);
 	if (ret)
 		return ret;
 
-	return icl_pcode_read_mem_global_info(i915, dram_info);
+	return icl_pcode_read_mem_global_info(display, dram_info);
 }
 
-static int gen12_get_dram_info(struct drm_i915_private *i915, struct dram_info *dram_info)
+static int gen12_get_dram_info(struct intel_display *display, struct dram_info *dram_info)
 {
-	return icl_pcode_read_mem_global_info(i915, dram_info);
+	return icl_pcode_read_mem_global_info(display, dram_info);
 }
 
-static int xelpdp_get_dram_info(struct drm_i915_private *i915, struct dram_info *dram_info)
+static int xelpdp_get_dram_info(struct intel_display *display, struct dram_info *dram_info)
 {
-	struct intel_display *display = i915->display;
+	struct drm_i915_private *i915 = to_i915(display->drm);
 	u32 val = intel_uncore_read(&i915->uncore, MTL_MEM_SS_INFO_GLOBAL);
 
 	switch (REG_FIELD_GET(MTL_DDR_TYPE_MASK, val)) {
@@ -784,11 +793,11 @@ static int xelpdp_get_dram_info(struct drm_i915_private *i915, struct dram_info
 		dram_info->type = INTEL_DRAM_LPDDR3;
 		break;
 	case 8:
-		drm_WARN_ON(&i915->drm, !IS_DGFX(i915));
+		drm_WARN_ON(display->drm, !display->platform.dgfx);
 		dram_info->type = INTEL_DRAM_GDDR;
 		break;
 	case 9:
-		drm_WARN_ON(&i915->drm, !IS_DGFX(i915));
+		drm_WARN_ON(display->drm, !display->platform.dgfx);
 		dram_info->type = INTEL_DRAM_GDDR_ECC;
 		break;
 	default:
@@ -806,41 +815,41 @@ static int xelpdp_get_dram_info(struct drm_i915_private *i915, struct dram_info
 	return 0;
 }
 
-int intel_dram_detect(struct drm_i915_private *i915)
+int intel_dram_detect(struct intel_display *display)
 {
-	struct intel_display *display = i915->display;
+	struct drm_i915_private *i915 = to_i915(display->drm);
 	struct dram_info *dram_info;
 	int ret;
 
-	if (IS_DG2(i915) || !intel_display_device_present(display))
+	if (display->platform.dg2 || !HAS_DISPLAY(display))
 		return 0;
 
-	dram_info = drmm_kzalloc(&i915->drm, sizeof(*dram_info), GFP_KERNEL);
+	dram_info = drmm_kzalloc(display->drm, sizeof(*dram_info), GFP_KERNEL);
 	if (!dram_info)
 		return -ENOMEM;
 
 	i915->dram_info = dram_info;
 
 	if (DISPLAY_VER(display) >= 14)
-		ret = xelpdp_get_dram_info(i915, dram_info);
-	else if (GRAPHICS_VER(i915) >= 12)
-		ret = gen12_get_dram_info(i915, dram_info);
-	else if (GRAPHICS_VER(i915) >= 11)
-		ret = gen11_get_dram_info(i915, dram_info);
-	else if (IS_BROXTON(i915) || IS_GEMINILAKE(i915))
-		ret = bxt_get_dram_info(i915, dram_info);
-	else if (GRAPHICS_VER(i915) >= 9)
-		ret = skl_get_dram_info(i915, dram_info);
+		ret = xelpdp_get_dram_info(display, dram_info);
+	else if (DISPLAY_VER(display) >= 12)
+		ret = gen12_get_dram_info(display, dram_info);
+	else if (DISPLAY_VER(display) >= 11)
+		ret = gen11_get_dram_info(display, dram_info);
+	else if (display->platform.broxton || display->platform.geminilake)
+		ret = bxt_get_dram_info(display, dram_info);
+	else if (DISPLAY_VER(display) >= 9)
+		ret = skl_get_dram_info(display, dram_info);
 	else
-		ret = i915_get_dram_info(i915, dram_info);
+		ret = i915_get_dram_info(display, dram_info);
 
-	drm_dbg_kms(&i915->drm, "DRAM type: %s\n",
+	drm_dbg_kms(display->drm, "DRAM type: %s\n",
 		    intel_dram_type_str(dram_info->type));
 
-	drm_dbg_kms(&i915->drm, "DRAM channels: %u\n", dram_info->num_channels);
+	drm_dbg_kms(display->drm, "DRAM channels: %u\n", dram_info->num_channels);
 
-	drm_dbg_kms(&i915->drm, "Num QGV points %u\n", dram_info->num_qgv_points);
-	drm_dbg_kms(&i915->drm, "Num PSF GV points %u\n", dram_info->num_psf_gv_points);
+	drm_dbg_kms(display->drm, "Num QGV points %u\n", dram_info->num_qgv_points);
+	drm_dbg_kms(display->drm, "Num PSF GV points %u\n", dram_info->num_psf_gv_points);
 
 	/* TODO: Do we want to abort probe on dram detection failures? */
 	if (ret)
@@ -854,9 +863,9 @@ int intel_dram_detect(struct drm_i915_private *i915)
  * checks, and prefer not dereferencing on platforms that shouldn't look at dram
  * info, to catch accidental and incorrect dram info checks.
  */
-const struct dram_info *intel_dram_info(struct drm_device *drm)
+const struct dram_info *intel_dram_info(struct intel_display *display)
 {
-	struct drm_i915_private *i915 = to_i915(drm);
+	struct drm_i915_private *i915 = to_i915(display->drm);
 
 	return i915->dram_info;
 }
diff --git a/drivers/gpu/drm/i915/display/intel_dram.h b/drivers/gpu/drm/i915/display/intel_dram.h
index 58aaf2f91afe..5800b7b4e614 100644
--- a/drivers/gpu/drm/i915/display/intel_dram.h
+++ b/drivers/gpu/drm/i915/display/intel_dram.h
@@ -8,8 +8,7 @@
 
 #include <linux/types.h>
 
-struct drm_i915_private;
-struct drm_device;
+struct intel_display;
 
 struct dram_info {
 	enum intel_dram_type {
@@ -35,10 +34,10 @@ struct dram_info {
 	bool has_16gb_dimms;
 };
 
-int intel_dram_detect(struct drm_i915_private *i915);
-unsigned int intel_fsb_freq(struct drm_i915_private *i915);
-unsigned int intel_mem_freq(struct drm_i915_private *i915);
-const struct dram_info *intel_dram_info(struct drm_device *drm);
+int intel_dram_detect(struct intel_display *display);
+unsigned int intel_fsb_freq(struct intel_display *display);
+unsigned int intel_mem_freq(struct intel_display *display);
+const struct dram_info *intel_dram_info(struct intel_display *display);
 const char *intel_dram_type_str(enum intel_dram_type type);
 
 #endif /* __INTEL_DRAM_H__ */
diff --git a/drivers/gpu/drm/i915/display/skl_watermark.c b/drivers/gpu/drm/i915/display/skl_watermark.c
index a33e0cec8cba..7964cfffdaae 100644
--- a/drivers/gpu/drm/i915/display/skl_watermark.c
+++ b/drivers/gpu/drm/i915/display/skl_watermark.c
@@ -3125,7 +3125,7 @@ static bool skl_watermark_ipc_can_enable(struct intel_display *display)
 	if (display->platform.kabylake ||
 	    display->platform.coffeelake ||
 	    display->platform.cometlake) {
-		const struct dram_info *dram_info = intel_dram_info(display->drm);
+		const struct dram_info *dram_info = intel_dram_info(display);
 
 		return dram_info->symmetric_memory;
 	}
@@ -3169,7 +3169,7 @@ static void increase_wm_latency(struct intel_display *display, int inc)
 
 static bool need_16gb_dimm_wa(struct intel_display *display)
 {
-	const struct dram_info *dram_info = intel_dram_info(display->drm);
+	const struct dram_info *dram_info = intel_dram_info(display);
 
 	return (display->platform.skylake || display->platform.kabylake ||
 		display->platform.coffeelake || display->platform.cometlake ||
diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
index d1f573f1b6cc..2369e2b55096 100644
--- a/drivers/gpu/drm/i915/i915_driver.c
+++ b/drivers/gpu/drm/i915/i915_driver.c
@@ -574,7 +574,7 @@ static int i915_driver_hw_probe(struct drm_i915_private *dev_priv)
 	 * Fill the dram structure to get the system dram info. This will be
 	 * used for memory latency calculation.
 	 */
-	ret = intel_dram_detect(dev_priv);
+	ret = intel_dram_detect(display);
 	if (ret)
 		goto err_opregion;
 
diff --git a/drivers/gpu/drm/xe/display/xe_display.c b/drivers/gpu/drm/xe/display/xe_display.c
index 9b1d21e03df0..793115077615 100644
--- a/drivers/gpu/drm/xe/display/xe_display.c
+++ b/drivers/gpu/drm/xe/display/xe_display.c
@@ -122,7 +122,7 @@ int xe_display_init_early(struct xe_device *xe)
 	 * Fill the dram structure to get the system dram info. This will be
 	 * used for memory latency calculation.
 	 */
-	err = intel_dram_detect(xe);
+	err = intel_dram_detect(display);
 	if (err)
 		goto err_opregion;
 
-- 
2.47.3


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

* Re: [PATCH v2 00/13] drm/i915: dissolve soc/
  2025-11-19 18:52 [PATCH v2 00/13] drm/i915: dissolve soc/ Jani Nikula
                   ` (17 preceding siblings ...)
  2025-11-20  3:17 ` ✗ Xe.CI.Full: failure " Patchwork
@ 2025-11-20 16:52 ` Ville Syrjälä
  2025-11-20 19:19 ` ✗ CI.checkpatch: warning for drm/i915: dissolve soc/ (rev2) Patchwork
                   ` (4 subsequent siblings)
  23 siblings, 0 replies; 30+ messages in thread
From: Ville Syrjälä @ 2025-11-20 16:52 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx, intel-xe

On Wed, Nov 19, 2025 at 08:52:39PM +0200, Jani Nikula wrote:
> Split soc/ to i915 and display specific parts, and relocate code
> accordingly.
> 
> In v2, cover all of soc/.
> 
> BR,
> Jani.
> 
> Jani Nikula (13):
>   drm/i915/edram: extract i915_edram.[ch] for edram detection
>   drm/i915: split out i915_freq.[ch]
>   drm/i915: move intel_dram.[ch] from soc/ to display/
>   drm/xe: remove MISSING_CASE() from compat i915_utils.h
>   drm/i915/dram: convert to struct intel_display
>   drm/i915: move dram_info to struct intel_display
>   drm/i915: move intel_rom.[ch] from soc/ to display/
>   drm/xe: remove remaining platform checks from compat i915_drv.h
>   drm/i915/gmch: split out i915_gmch.[ch] from soc
>   drm/i915/gmch: switch to use pci_bus_{read,write}_config_word()
>   drm/i915/gmch: convert intel_gmch.c to struct intel_display
>   drm/i915: merge soc/intel_gmch.[ch] to display/intel_vga.c
>   drm/xe/vga: use the same intel_gmch_vga_set_decode() as i915

Looks all right to me. Series is
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

> 
>  drivers/gpu/drm/i915/Makefile                 |  11 +-
>  drivers/gpu/drm/i915/display/i9xx_wm.c        |   5 +-
>  drivers/gpu/drm/i915/display/intel_bios.c     |   3 +-
>  drivers/gpu/drm/i915/display/intel_bw.c       |   5 +-
>  drivers/gpu/drm/i915/display/intel_cdclk.c    |   7 +-
>  .../gpu/drm/i915/display/intel_display_core.h |   4 +
>  .../drm/i915/display/intel_display_power.c    |   5 +-
>  .../drm/i915/{soc => display}/intel_dram.c    | 249 ++++++++----------
>  .../drm/i915/{soc => display}/intel_dram.h    |  12 +-
>  .../gpu/drm/i915/{soc => display}/intel_rom.c |   0
>  .../gpu/drm/i915/{soc => display}/intel_rom.h |   0
>  drivers/gpu/drm/i915/display/intel_vga.c      |  44 +++-
>  drivers/gpu/drm/i915/display/skl_watermark.c  |   6 +-
>  .../gpu/drm/i915/gt/intel_gt_clock_utils.c    |   4 +-
>  drivers/gpu/drm/i915/gt/intel_rps.c           |   6 +-
>  drivers/gpu/drm/i915/i915_driver.c            |  18 +-
>  drivers/gpu/drm/i915/i915_drv.h               |   3 -
>  drivers/gpu/drm/i915/i915_edram.c             |  44 ++++
>  drivers/gpu/drm/i915/i915_edram.h             |  11 +
>  drivers/gpu/drm/i915/i915_freq.c              | 111 ++++++++
>  drivers/gpu/drm/i915/i915_freq.h              |  13 +
>  .../i915/{soc/intel_gmch.c => i915_gmch.c}    |  61 +----
>  drivers/gpu/drm/i915/i915_gmch.h              |  13 +
>  drivers/gpu/drm/i915/soc/intel_gmch.h         |  20 --
>  drivers/gpu/drm/xe/Makefile                   |  13 +-
>  .../gpu/drm/xe/compat-i915-headers/i915_drv.h |  15 --
>  .../drm/xe/compat-i915-headers/i915_utils.h   |   6 -
>  .../xe/compat-i915-headers/soc/intel_dram.h   |   6 -
>  .../xe/compat-i915-headers/soc/intel_gmch.h   |   6 -
>  .../xe/compat-i915-headers/soc/intel_rom.h    |   6 -
>  drivers/gpu/drm/xe/display/xe_display.c       |   4 +-
>  drivers/gpu/drm/xe/display/xe_display_misc.c  |  16 --
>  drivers/gpu/drm/xe/xe_device_types.h          |   8 -
>  33 files changed, 394 insertions(+), 341 deletions(-)
>  rename drivers/gpu/drm/i915/{soc => display}/intel_dram.c (70%)
>  rename drivers/gpu/drm/i915/{soc => display}/intel_dram.h (68%)
>  rename drivers/gpu/drm/i915/{soc => display}/intel_rom.c (100%)
>  rename drivers/gpu/drm/i915/{soc => display}/intel_rom.h (100%)
>  create mode 100644 drivers/gpu/drm/i915/i915_edram.c
>  create mode 100644 drivers/gpu/drm/i915/i915_edram.h
>  create mode 100644 drivers/gpu/drm/i915/i915_freq.c
>  create mode 100644 drivers/gpu/drm/i915/i915_freq.h
>  rename drivers/gpu/drm/i915/{soc/intel_gmch.c => i915_gmch.c} (68%)
>  create mode 100644 drivers/gpu/drm/i915/i915_gmch.h
>  delete mode 100644 drivers/gpu/drm/i915/soc/intel_gmch.h
>  delete mode 100644 drivers/gpu/drm/xe/compat-i915-headers/soc/intel_dram.h
>  delete mode 100644 drivers/gpu/drm/xe/compat-i915-headers/soc/intel_gmch.h
>  delete mode 100644 drivers/gpu/drm/xe/compat-i915-headers/soc/intel_rom.h
>  delete mode 100644 drivers/gpu/drm/xe/display/xe_display_misc.c
> 
> -- 
> 2.47.3

-- 
Ville Syrjälä
Intel

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

* ✗ CI.checkpatch: warning for drm/i915: dissolve soc/ (rev2)
  2025-11-19 18:52 [PATCH v2 00/13] drm/i915: dissolve soc/ Jani Nikula
                   ` (18 preceding siblings ...)
  2025-11-20 16:52 ` [PATCH v2 00/13] " Ville Syrjälä
@ 2025-11-20 19:19 ` Patchwork
  2025-11-20 19:21 ` ✓ CI.KUnit: success " Patchwork
                   ` (3 subsequent siblings)
  23 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2025-11-20 19:19 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-xe

== Series Details ==

Series: drm/i915: dissolve soc/ (rev2)
URL   : https://patchwork.freedesktop.org/series/157792/
State : warning

== Summary ==

+ KERNEL=/kernel
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools mt
Cloning into 'mt'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ git -C mt rev-list -n1 origin/master
2de9a3901bc28757c7906b454717b64e2a214021
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit 0d943d9ca07e3e52e1f32b216d0115982d387c83
Author: Jani Nikula <jani.nikula@intel.com>
Date:   Wed Nov 19 20:52:52 2025 +0200

    drm/xe/vga: use the same intel_gmch_vga_set_decode() as i915
    
    Drop the #ifdef I915, and use the same intel_gmch_vga_set_decode() for
    both i915 and xe.
    
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
+ /mt/dim checkpatch 3d718db04a365cc44a3bc81ffa4db7bbd2e645d7 drm-intel
c1877a71173b drm/i915/edram: extract i915_edram.[ch] for edram detection
-:48: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#48: 
new file mode 100644

total: 0 errors, 1 warnings, 0 checks, 99 lines checked
b70838457b07 drm/i915: split out i915_freq.[ch]
-:82: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#82: 
new file mode 100644

total: 0 errors, 1 warnings, 0 checks, 172 lines checked
57eef214ba18 drm/i915: move intel_dram.[ch] from soc/ to display/
-:119: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#119: 
rename from drivers/gpu/drm/i915/soc/intel_dram.c

total: 0 errors, 1 warnings, 0 checks, 143 lines checked
24d0e6688075 drm/xe: remove MISSING_CASE() from compat i915_utils.h
f41a8ec2326d drm/i915/dram: convert to struct intel_display
2f61ba005236 drm/i915: move dram_info to struct intel_display
e805c4f80dba drm/i915: move intel_rom.[ch] from soc/ to display/
-:58: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#58: 
rename from drivers/gpu/drm/i915/soc/intel_rom.c

total: 0 errors, 1 warnings, 0 checks, 59 lines checked
4f993700b177 drm/xe: remove remaining platform checks from compat i915_drv.h
831c39f82388 drm/i915/gmch: split out i915_gmch.[ch] from soc
-:81: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#81: 
new file mode 100644

total: 0 errors, 1 warnings, 0 checks, 363 lines checked
744f78f9028f drm/i915/gmch: switch to use pci_bus_{read, write}_config_word()
a3dba9b7fe9a drm/i915/gmch: convert intel_gmch.c to struct intel_display
ac2970096674 drm/i915: merge soc/intel_gmch.[ch] to display/intel_vga.c
-:108: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#108: 
deleted file mode 100644

total: 0 errors, 1 warnings, 0 checks, 85 lines checked
0d943d9ca07e drm/xe/vga: use the same intel_gmch_vga_set_decode() as i915



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

* ✓ CI.KUnit: success for drm/i915: dissolve soc/ (rev2)
  2025-11-19 18:52 [PATCH v2 00/13] drm/i915: dissolve soc/ Jani Nikula
                   ` (19 preceding siblings ...)
  2025-11-20 19:19 ` ✗ CI.checkpatch: warning for drm/i915: dissolve soc/ (rev2) Patchwork
@ 2025-11-20 19:21 ` Patchwork
  2025-11-20 19:36 ` ✗ CI.checksparse: warning " Patchwork
                   ` (2 subsequent siblings)
  23 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2025-11-20 19:21 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-xe

== Series Details ==

Series: drm/i915: dissolve soc/ (rev2)
URL   : https://patchwork.freedesktop.org/series/157792/
State : success

== Summary ==

+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[19:19:50] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[19:19:54] 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
[19:20:24] Starting KUnit Kernel (1/1)...
[19:20:24] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[19:20:24] ================== guc_buf (11 subtests) ===================
[19:20:24] [PASSED] test_smallest
[19:20:24] [PASSED] test_largest
[19:20:24] [PASSED] test_granular
[19:20:24] [PASSED] test_unique
[19:20:24] [PASSED] test_overlap
[19:20:24] [PASSED] test_reusable
[19:20:24] [PASSED] test_too_big
[19:20:24] [PASSED] test_flush
[19:20:24] [PASSED] test_lookup
[19:20:24] [PASSED] test_data
[19:20:24] [PASSED] test_class
[19:20:24] ===================== [PASSED] guc_buf =====================
[19:20:24] =================== guc_dbm (7 subtests) ===================
[19:20:24] [PASSED] test_empty
[19:20:24] [PASSED] test_default
[19:20:24] ======================== test_size  ========================
[19:20:24] [PASSED] 4
[19:20:24] [PASSED] 8
[19:20:24] [PASSED] 32
[19:20:24] [PASSED] 256
[19:20:24] ==================== [PASSED] test_size ====================
[19:20:24] ======================= test_reuse  ========================
[19:20:24] [PASSED] 4
[19:20:24] [PASSED] 8
[19:20:24] [PASSED] 32
[19:20:24] [PASSED] 256
[19:20:24] =================== [PASSED] test_reuse ====================
[19:20:24] =================== test_range_overlap  ====================
[19:20:24] [PASSED] 4
[19:20:24] [PASSED] 8
[19:20:24] [PASSED] 32
[19:20:24] [PASSED] 256
[19:20:24] =============== [PASSED] test_range_overlap ================
[19:20:24] =================== test_range_compact  ====================
[19:20:24] [PASSED] 4
[19:20:24] [PASSED] 8
[19:20:24] [PASSED] 32
[19:20:24] [PASSED] 256
[19:20:24] =============== [PASSED] test_range_compact ================
[19:20:24] ==================== test_range_spare  =====================
[19:20:24] [PASSED] 4
[19:20:24] [PASSED] 8
[19:20:24] [PASSED] 32
[19:20:24] [PASSED] 256
[19:20:24] ================ [PASSED] test_range_spare =================
[19:20:24] ===================== [PASSED] guc_dbm =====================
[19:20:24] =================== guc_idm (6 subtests) ===================
[19:20:24] [PASSED] bad_init
[19:20:24] [PASSED] no_init
[19:20:24] [PASSED] init_fini
[19:20:24] [PASSED] check_used
[19:20:25] [PASSED] check_quota
[19:20:25] [PASSED] check_all
[19:20:25] ===================== [PASSED] guc_idm =====================
[19:20:25] ================== no_relay (3 subtests) ===================
[19:20:25] [PASSED] xe_drops_guc2pf_if_not_ready
[19:20:25] [PASSED] xe_drops_guc2vf_if_not_ready
[19:20:25] [PASSED] xe_rejects_send_if_not_ready
[19:20:25] ==================== [PASSED] no_relay =====================
[19:20:25] ================== pf_relay (14 subtests) ==================
[19:20:25] [PASSED] pf_rejects_guc2pf_too_short
[19:20:25] [PASSED] pf_rejects_guc2pf_too_long
[19:20:25] [PASSED] pf_rejects_guc2pf_no_payload
[19:20:25] [PASSED] pf_fails_no_payload
[19:20:25] [PASSED] pf_fails_bad_origin
[19:20:25] [PASSED] pf_fails_bad_type
[19:20:25] [PASSED] pf_txn_reports_error
[19:20:25] [PASSED] pf_txn_sends_pf2guc
[19:20:25] [PASSED] pf_sends_pf2guc
[19:20:25] [SKIPPED] pf_loopback_nop
[19:20:25] [SKIPPED] pf_loopback_echo
[19:20:25] [SKIPPED] pf_loopback_fail
[19:20:25] [SKIPPED] pf_loopback_busy
[19:20:25] [SKIPPED] pf_loopback_retry
[19:20:25] ==================== [PASSED] pf_relay =====================
[19:20:25] ================== vf_relay (3 subtests) ===================
[19:20:25] [PASSED] vf_rejects_guc2vf_too_short
[19:20:25] [PASSED] vf_rejects_guc2vf_too_long
[19:20:25] [PASSED] vf_rejects_guc2vf_no_payload
[19:20:25] ==================== [PASSED] vf_relay =====================
[19:20:25] ================ pf_gt_config (6 subtests) =================
[19:20:25] [PASSED] fair_contexts_1vf
[19:20:25] [PASSED] fair_doorbells_1vf
[19:20:25] [PASSED] fair_ggtt_1vf
[19:20:25] ====================== fair_contexts  ======================
[19:20:25] [PASSED] 1 VF
[19:20:25] [PASSED] 2 VFs
[19:20:25] [PASSED] 3 VFs
[19:20:25] [PASSED] 4 VFs
[19:20:25] [PASSED] 5 VFs
[19:20:25] [PASSED] 6 VFs
[19:20:25] [PASSED] 7 VFs
[19:20:25] [PASSED] 8 VFs
[19:20:25] [PASSED] 9 VFs
[19:20:25] [PASSED] 10 VFs
[19:20:25] [PASSED] 11 VFs
[19:20:25] [PASSED] 12 VFs
[19:20:25] [PASSED] 13 VFs
[19:20:25] [PASSED] 14 VFs
[19:20:25] [PASSED] 15 VFs
[19:20:25] [PASSED] 16 VFs
[19:20:25] [PASSED] 17 VFs
[19:20:25] [PASSED] 18 VFs
[19:20:25] [PASSED] 19 VFs
[19:20:25] [PASSED] 20 VFs
[19:20:25] [PASSED] 21 VFs
[19:20:25] [PASSED] 22 VFs
[19:20:25] [PASSED] 23 VFs
[19:20:25] [PASSED] 24 VFs
[19:20:25] [PASSED] 25 VFs
[19:20:25] [PASSED] 26 VFs
[19:20:25] [PASSED] 27 VFs
[19:20:25] [PASSED] 28 VFs
[19:20:25] [PASSED] 29 VFs
[19:20:25] [PASSED] 30 VFs
[19:20:25] [PASSED] 31 VFs
[19:20:25] [PASSED] 32 VFs
[19:20:25] [PASSED] 33 VFs
[19:20:25] [PASSED] 34 VFs
[19:20:25] [PASSED] 35 VFs
[19:20:25] [PASSED] 36 VFs
[19:20:25] [PASSED] 37 VFs
[19:20:25] [PASSED] 38 VFs
[19:20:25] [PASSED] 39 VFs
[19:20:25] [PASSED] 40 VFs
[19:20:25] [PASSED] 41 VFs
[19:20:25] [PASSED] 42 VFs
[19:20:25] [PASSED] 43 VFs
[19:20:25] [PASSED] 44 VFs
[19:20:25] [PASSED] 45 VFs
[19:20:25] [PASSED] 46 VFs
[19:20:25] [PASSED] 47 VFs
[19:20:25] [PASSED] 48 VFs
[19:20:25] [PASSED] 49 VFs
[19:20:25] [PASSED] 50 VFs
[19:20:25] [PASSED] 51 VFs
[19:20:25] [PASSED] 52 VFs
[19:20:25] [PASSED] 53 VFs
[19:20:25] [PASSED] 54 VFs
[19:20:25] [PASSED] 55 VFs
[19:20:25] [PASSED] 56 VFs
[19:20:25] [PASSED] 57 VFs
[19:20:25] [PASSED] 58 VFs
[19:20:25] [PASSED] 59 VFs
[19:20:25] [PASSED] 60 VFs
[19:20:25] [PASSED] 61 VFs
[19:20:25] [PASSED] 62 VFs
[19:20:25] [PASSED] 63 VFs
[19:20:25] ================== [PASSED] fair_contexts ==================
[19:20:25] ===================== fair_doorbells  ======================
[19:20:25] [PASSED] 1 VF
[19:20:25] [PASSED] 2 VFs
[19:20:25] [PASSED] 3 VFs
[19:20:25] [PASSED] 4 VFs
[19:20:25] [PASSED] 5 VFs
[19:20:25] [PASSED] 6 VFs
[19:20:25] [PASSED] 7 VFs
[19:20:25] [PASSED] 8 VFs
[19:20:25] [PASSED] 9 VFs
[19:20:25] [PASSED] 10 VFs
[19:20:25] [PASSED] 11 VFs
[19:20:25] [PASSED] 12 VFs
[19:20:25] [PASSED] 13 VFs
[19:20:25] [PASSED] 14 VFs
[19:20:25] [PASSED] 15 VFs
[19:20:25] [PASSED] 16 VFs
[19:20:25] [PASSED] 17 VFs
[19:20:25] [PASSED] 18 VFs
[19:20:25] [PASSED] 19 VFs
[19:20:25] [PASSED] 20 VFs
[19:20:25] [PASSED] 21 VFs
[19:20:25] [PASSED] 22 VFs
[19:20:25] [PASSED] 23 VFs
[19:20:25] [PASSED] 24 VFs
[19:20:25] [PASSED] 25 VFs
[19:20:25] [PASSED] 26 VFs
[19:20:25] [PASSED] 27 VFs
[19:20:25] [PASSED] 28 VFs
[19:20:25] [PASSED] 29 VFs
[19:20:25] [PASSED] 30 VFs
[19:20:25] [PASSED] 31 VFs
[19:20:25] [PASSED] 32 VFs
[19:20:25] [PASSED] 33 VFs
[19:20:25] [PASSED] 34 VFs
[19:20:25] [PASSED] 35 VFs
[19:20:25] [PASSED] 36 VFs
[19:20:25] [PASSED] 37 VFs
[19:20:25] [PASSED] 38 VFs
[19:20:25] [PASSED] 39 VFs
[19:20:25] [PASSED] 40 VFs
[19:20:25] [PASSED] 41 VFs
[19:20:25] [PASSED] 42 VFs
[19:20:25] [PASSED] 43 VFs
[19:20:25] [PASSED] 44 VFs
[19:20:25] [PASSED] 45 VFs
[19:20:25] [PASSED] 46 VFs
[19:20:25] [PASSED] 47 VFs
[19:20:25] [PASSED] 48 VFs
[19:20:25] [PASSED] 49 VFs
[19:20:25] [PASSED] 50 VFs
[19:20:25] [PASSED] 51 VFs
[19:20:25] [PASSED] 52 VFs
[19:20:25] [PASSED] 53 VFs
[19:20:25] [PASSED] 54 VFs
[19:20:25] [PASSED] 55 VFs
[19:20:25] [PASSED] 56 VFs
[19:20:25] [PASSED] 57 VFs
[19:20:25] [PASSED] 58 VFs
[19:20:25] [PASSED] 59 VFs
[19:20:25] [PASSED] 60 VFs
[19:20:25] [PASSED] 61 VFs
[19:20:25] [PASSED] 62 VFs
[19:20:25] [PASSED] 63 VFs
[19:20:25] ================= [PASSED] fair_doorbells ==================
[19:20:25] ======================== fair_ggtt  ========================
[19:20:25] [PASSED] 1 VF
[19:20:25] [PASSED] 2 VFs
[19:20:25] [PASSED] 3 VFs
[19:20:25] [PASSED] 4 VFs
[19:20:25] [PASSED] 5 VFs
[19:20:25] [PASSED] 6 VFs
[19:20:25] [PASSED] 7 VFs
[19:20:25] [PASSED] 8 VFs
[19:20:25] [PASSED] 9 VFs
[19:20:25] [PASSED] 10 VFs
[19:20:25] [PASSED] 11 VFs
[19:20:25] [PASSED] 12 VFs
[19:20:25] [PASSED] 13 VFs
[19:20:25] [PASSED] 14 VFs
[19:20:25] [PASSED] 15 VFs
[19:20:25] [PASSED] 16 VFs
[19:20:25] [PASSED] 17 VFs
[19:20:25] [PASSED] 18 VFs
[19:20:25] [PASSED] 19 VFs
[19:20:25] [PASSED] 20 VFs
[19:20:25] [PASSED] 21 VFs
[19:20:25] [PASSED] 22 VFs
[19:20:25] [PASSED] 23 VFs
[19:20:25] [PASSED] 24 VFs
[19:20:25] [PASSED] 25 VFs
[19:20:25] [PASSED] 26 VFs
[19:20:25] [PASSED] 27 VFs
[19:20:25] [PASSED] 28 VFs
[19:20:25] [PASSED] 29 VFs
[19:20:25] [PASSED] 30 VFs
[19:20:25] [PASSED] 31 VFs
[19:20:25] [PASSED] 32 VFs
[19:20:25] [PASSED] 33 VFs
[19:20:25] [PASSED] 34 VFs
[19:20:25] [PASSED] 35 VFs
[19:20:25] [PASSED] 36 VFs
[19:20:25] [PASSED] 37 VFs
[19:20:25] [PASSED] 38 VFs
[19:20:25] [PASSED] 39 VFs
[19:20:25] [PASSED] 40 VFs
[19:20:25] [PASSED] 41 VFs
[19:20:25] [PASSED] 42 VFs
[19:20:25] [PASSED] 43 VFs
[19:20:25] [PASSED] 44 VFs
[19:20:25] [PASSED] 45 VFs
[19:20:25] [PASSED] 46 VFs
[19:20:25] [PASSED] 47 VFs
[19:20:25] [PASSED] 48 VFs
[19:20:25] [PASSED] 49 VFs
[19:20:25] [PASSED] 50 VFs
[19:20:25] [PASSED] 51 VFs
[19:20:25] [PASSED] 52 VFs
[19:20:25] [PASSED] 53 VFs
[19:20:25] [PASSED] 54 VFs
[19:20:25] [PASSED] 55 VFs
[19:20:25] [PASSED] 56 VFs
[19:20:25] [PASSED] 57 VFs
[19:20:25] [PASSED] 58 VFs
[19:20:25] [PASSED] 59 VFs
[19:20:25] [PASSED] 60 VFs
[19:20:25] [PASSED] 61 VFs
[19:20:25] [PASSED] 62 VFs
[19:20:25] [PASSED] 63 VFs
[19:20:25] ==================== [PASSED] fair_ggtt ====================
[19:20:25] ================== [PASSED] pf_gt_config ===================
[19:20:25] ===================== lmtt (1 subtest) =====================
[19:20:25] ======================== test_ops  =========================
[19:20:25] [PASSED] 2-level
[19:20:25] [PASSED] multi-level
[19:20:25] ==================== [PASSED] test_ops =====================
[19:20:25] ====================== [PASSED] lmtt =======================
[19:20:25] ================= pf_service (11 subtests) =================
[19:20:25] [PASSED] pf_negotiate_any
[19:20:25] [PASSED] pf_negotiate_base_match
[19:20:25] [PASSED] pf_negotiate_base_newer
[19:20:25] [PASSED] pf_negotiate_base_next
[19:20:25] [SKIPPED] pf_negotiate_base_older
[19:20:25] [PASSED] pf_negotiate_base_prev
[19:20:25] [PASSED] pf_negotiate_latest_match
[19:20:25] [PASSED] pf_negotiate_latest_newer
[19:20:25] [PASSED] pf_negotiate_latest_next
[19:20:25] [SKIPPED] pf_negotiate_latest_older
[19:20:25] [SKIPPED] pf_negotiate_latest_prev
[19:20:25] =================== [PASSED] pf_service ====================
[19:20:25] ================= xe_guc_g2g (2 subtests) ==================
[19:20:25] ============== xe_live_guc_g2g_kunit_default  ==============
[19:20:25] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[19:20:25] ============== xe_live_guc_g2g_kunit_allmem  ===============
[19:20:25] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[19:20:25] =================== [SKIPPED] xe_guc_g2g ===================
[19:20:25] =================== xe_mocs (2 subtests) ===================
[19:20:25] ================ xe_live_mocs_kernel_kunit  ================
[19:20:25] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[19:20:25] ================ xe_live_mocs_reset_kunit  =================
[19:20:25] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[19:20:25] ==================== [SKIPPED] xe_mocs =====================
[19:20:25] ================= xe_migrate (2 subtests) ==================
[19:20:25] ================= xe_migrate_sanity_kunit  =================
[19:20:25] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[19:20:25] ================== xe_validate_ccs_kunit  ==================
[19:20:25] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[19:20:25] =================== [SKIPPED] xe_migrate ===================
[19:20:25] ================== xe_dma_buf (1 subtest) ==================
[19:20:25] ==================== xe_dma_buf_kunit  =====================
[19:20:25] ================ [SKIPPED] xe_dma_buf_kunit ================
[19:20:25] =================== [SKIPPED] xe_dma_buf ===================
[19:20:25] ================= xe_bo_shrink (1 subtest) =================
[19:20:25] =================== xe_bo_shrink_kunit  ====================
[19:20:25] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[19:20:25] ================== [SKIPPED] xe_bo_shrink ==================
[19:20:25] ==================== xe_bo (2 subtests) ====================
[19:20:25] ================== xe_ccs_migrate_kunit  ===================
[19:20:25] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[19:20:25] ==================== xe_bo_evict_kunit  ====================
[19:20:25] =============== [SKIPPED] xe_bo_evict_kunit ================
[19:20:25] ===================== [SKIPPED] xe_bo ======================
[19:20:25] ==================== args (11 subtests) ====================
[19:20:25] [PASSED] count_args_test
[19:20:25] [PASSED] call_args_example
[19:20:25] [PASSED] call_args_test
[19:20:25] [PASSED] drop_first_arg_example
[19:20:25] [PASSED] drop_first_arg_test
[19:20:25] [PASSED] first_arg_example
[19:20:25] [PASSED] first_arg_test
[19:20:25] [PASSED] last_arg_example
[19:20:25] [PASSED] last_arg_test
[19:20:25] [PASSED] pick_arg_example
[19:20:25] [PASSED] sep_comma_example
[19:20:25] ====================== [PASSED] args =======================
[19:20:25] =================== xe_pci (3 subtests) ====================
[19:20:25] ==================== check_graphics_ip  ====================
[19:20:25] [PASSED] 12.00 Xe_LP
[19:20:25] [PASSED] 12.10 Xe_LP+
[19:20:25] [PASSED] 12.55 Xe_HPG
[19:20:25] [PASSED] 12.60 Xe_HPC
[19:20:25] [PASSED] 12.70 Xe_LPG
[19:20:25] [PASSED] 12.71 Xe_LPG
[19:20:25] [PASSED] 12.74 Xe_LPG+
[19:20:25] [PASSED] 20.01 Xe2_HPG
[19:20:25] [PASSED] 20.02 Xe2_HPG
[19:20:25] [PASSED] 20.04 Xe2_LPG
[19:20:25] [PASSED] 30.00 Xe3_LPG
[19:20:25] [PASSED] 30.01 Xe3_LPG
[19:20:25] [PASSED] 30.03 Xe3_LPG
[19:20:25] [PASSED] 30.04 Xe3_LPG
[19:20:25] [PASSED] 30.05 Xe3_LPG
[19:20:25] [PASSED] 35.11 Xe3p_XPC
[19:20:25] ================ [PASSED] check_graphics_ip ================
[19:20:25] ===================== check_media_ip  ======================
[19:20:25] [PASSED] 12.00 Xe_M
[19:20:25] [PASSED] 12.55 Xe_HPM
[19:20:25] [PASSED] 13.00 Xe_LPM+
[19:20:25] [PASSED] 13.01 Xe2_HPM
[19:20:25] [PASSED] 20.00 Xe2_LPM
[19:20:25] [PASSED] 30.00 Xe3_LPM
[19:20:25] [PASSED] 30.02 Xe3_LPM
[19:20:25] [PASSED] 35.00 Xe3p_LPM
[19:20:25] [PASSED] 35.03 Xe3p_HPM
[19:20:25] ================= [PASSED] check_media_ip ==================
[19:20:25] =================== check_platform_desc  ===================
[19:20:25] [PASSED] 0x9A60 (TIGERLAKE)
[19:20:25] [PASSED] 0x9A68 (TIGERLAKE)
[19:20:25] [PASSED] 0x9A70 (TIGERLAKE)
[19:20:25] [PASSED] 0x9A40 (TIGERLAKE)
[19:20:25] [PASSED] 0x9A49 (TIGERLAKE)
[19:20:25] [PASSED] 0x9A59 (TIGERLAKE)
[19:20:25] [PASSED] 0x9A78 (TIGERLAKE)
[19:20:25] [PASSED] 0x9AC0 (TIGERLAKE)
[19:20:25] [PASSED] 0x9AC9 (TIGERLAKE)
[19:20:25] [PASSED] 0x9AD9 (TIGERLAKE)
[19:20:25] [PASSED] 0x9AF8 (TIGERLAKE)
[19:20:25] [PASSED] 0x4C80 (ROCKETLAKE)
[19:20:25] [PASSED] 0x4C8A (ROCKETLAKE)
[19:20:25] [PASSED] 0x4C8B (ROCKETLAKE)
[19:20:25] [PASSED] 0x4C8C (ROCKETLAKE)
[19:20:25] [PASSED] 0x4C90 (ROCKETLAKE)
[19:20:25] [PASSED] 0x4C9A (ROCKETLAKE)
[19:20:25] [PASSED] 0x4680 (ALDERLAKE_S)
[19:20:25] [PASSED] 0x4682 (ALDERLAKE_S)
[19:20:25] [PASSED] 0x4688 (ALDERLAKE_S)
[19:20:25] [PASSED] 0x468A (ALDERLAKE_S)
[19:20:25] [PASSED] 0x468B (ALDERLAKE_S)
[19:20:25] [PASSED] 0x4690 (ALDERLAKE_S)
[19:20:25] [PASSED] 0x4692 (ALDERLAKE_S)
[19:20:25] [PASSED] 0x4693 (ALDERLAKE_S)
[19:20:25] [PASSED] 0x46A0 (ALDERLAKE_P)
[19:20:25] [PASSED] 0x46A1 (ALDERLAKE_P)
[19:20:25] [PASSED] 0x46A2 (ALDERLAKE_P)
[19:20:25] [PASSED] 0x46A3 (ALDERLAKE_P)
[19:20:25] [PASSED] 0x46A6 (ALDERLAKE_P)
[19:20:25] [PASSED] 0x46A8 (ALDERLAKE_P)
[19:20:25] [PASSED] 0x46AA (ALDERLAKE_P)
[19:20:25] [PASSED] 0x462A (ALDERLAKE_P)
[19:20:25] [PASSED] 0x4626 (ALDERLAKE_P)
[19:20:25] [PASSED] 0x4628 (ALDERLAKE_P)
[19:20:25] [PASSED] 0x46B0 (ALDERLAKE_P)
stty: 'standard input': Inappropriate ioctl for device
[19:20:25] [PASSED] 0x46B1 (ALDERLAKE_P)
[19:20:25] [PASSED] 0x46B2 (ALDERLAKE_P)
[19:20:25] [PASSED] 0x46B3 (ALDERLAKE_P)
[19:20:25] [PASSED] 0x46C0 (ALDERLAKE_P)
[19:20:25] [PASSED] 0x46C1 (ALDERLAKE_P)
[19:20:25] [PASSED] 0x46C2 (ALDERLAKE_P)
[19:20:25] [PASSED] 0x46C3 (ALDERLAKE_P)
[19:20:25] [PASSED] 0x46D0 (ALDERLAKE_N)
[19:20:25] [PASSED] 0x46D1 (ALDERLAKE_N)
[19:20:25] [PASSED] 0x46D2 (ALDERLAKE_N)
[19:20:25] [PASSED] 0x46D3 (ALDERLAKE_N)
[19:20:25] [PASSED] 0x46D4 (ALDERLAKE_N)
[19:20:25] [PASSED] 0xA721 (ALDERLAKE_P)
[19:20:25] [PASSED] 0xA7A1 (ALDERLAKE_P)
[19:20:25] [PASSED] 0xA7A9 (ALDERLAKE_P)
[19:20:25] [PASSED] 0xA7AC (ALDERLAKE_P)
[19:20:25] [PASSED] 0xA7AD (ALDERLAKE_P)
[19:20:25] [PASSED] 0xA720 (ALDERLAKE_P)
[19:20:25] [PASSED] 0xA7A0 (ALDERLAKE_P)
[19:20:25] [PASSED] 0xA7A8 (ALDERLAKE_P)
[19:20:25] [PASSED] 0xA7AA (ALDERLAKE_P)
[19:20:25] [PASSED] 0xA7AB (ALDERLAKE_P)
[19:20:25] [PASSED] 0xA780 (ALDERLAKE_S)
[19:20:25] [PASSED] 0xA781 (ALDERLAKE_S)
[19:20:25] [PASSED] 0xA782 (ALDERLAKE_S)
[19:20:25] [PASSED] 0xA783 (ALDERLAKE_S)
[19:20:25] [PASSED] 0xA788 (ALDERLAKE_S)
[19:20:25] [PASSED] 0xA789 (ALDERLAKE_S)
[19:20:25] [PASSED] 0xA78A (ALDERLAKE_S)
[19:20:25] [PASSED] 0xA78B (ALDERLAKE_S)
[19:20:25] [PASSED] 0x4905 (DG1)
[19:20:25] [PASSED] 0x4906 (DG1)
[19:20:25] [PASSED] 0x4907 (DG1)
[19:20:25] [PASSED] 0x4908 (DG1)
[19:20:25] [PASSED] 0x4909 (DG1)
[19:20:25] [PASSED] 0x56C0 (DG2)
[19:20:25] [PASSED] 0x56C2 (DG2)
[19:20:25] [PASSED] 0x56C1 (DG2)
[19:20:25] [PASSED] 0x7D51 (METEORLAKE)
[19:20:25] [PASSED] 0x7DD1 (METEORLAKE)
[19:20:25] [PASSED] 0x7D41 (METEORLAKE)
[19:20:25] [PASSED] 0x7D67 (METEORLAKE)
[19:20:25] [PASSED] 0xB640 (METEORLAKE)
[19:20:25] [PASSED] 0x56A0 (DG2)
[19:20:25] [PASSED] 0x56A1 (DG2)
[19:20:25] [PASSED] 0x56A2 (DG2)
[19:20:25] [PASSED] 0x56BE (DG2)
[19:20:25] [PASSED] 0x56BF (DG2)
[19:20:25] [PASSED] 0x5690 (DG2)
[19:20:25] [PASSED] 0x5691 (DG2)
[19:20:25] [PASSED] 0x5692 (DG2)
[19:20:25] [PASSED] 0x56A5 (DG2)
[19:20:25] [PASSED] 0x56A6 (DG2)
[19:20:25] [PASSED] 0x56B0 (DG2)
[19:20:25] [PASSED] 0x56B1 (DG2)
[19:20:25] [PASSED] 0x56BA (DG2)
[19:20:25] [PASSED] 0x56BB (DG2)
[19:20:25] [PASSED] 0x56BC (DG2)
[19:20:25] [PASSED] 0x56BD (DG2)
[19:20:25] [PASSED] 0x5693 (DG2)
[19:20:25] [PASSED] 0x5694 (DG2)
[19:20:25] [PASSED] 0x5695 (DG2)
[19:20:25] [PASSED] 0x56A3 (DG2)
[19:20:25] [PASSED] 0x56A4 (DG2)
[19:20:25] [PASSED] 0x56B2 (DG2)
[19:20:25] [PASSED] 0x56B3 (DG2)
[19:20:25] [PASSED] 0x5696 (DG2)
[19:20:25] [PASSED] 0x5697 (DG2)
[19:20:25] [PASSED] 0xB69 (PVC)
[19:20:25] [PASSED] 0xB6E (PVC)
[19:20:25] [PASSED] 0xBD4 (PVC)
[19:20:25] [PASSED] 0xBD5 (PVC)
[19:20:25] [PASSED] 0xBD6 (PVC)
[19:20:25] [PASSED] 0xBD7 (PVC)
[19:20:25] [PASSED] 0xBD8 (PVC)
[19:20:25] [PASSED] 0xBD9 (PVC)
[19:20:25] [PASSED] 0xBDA (PVC)
[19:20:25] [PASSED] 0xBDB (PVC)
[19:20:25] [PASSED] 0xBE0 (PVC)
[19:20:25] [PASSED] 0xBE1 (PVC)
[19:20:25] [PASSED] 0xBE5 (PVC)
[19:20:25] [PASSED] 0x7D40 (METEORLAKE)
[19:20:25] [PASSED] 0x7D45 (METEORLAKE)
[19:20:25] [PASSED] 0x7D55 (METEORLAKE)
[19:20:25] [PASSED] 0x7D60 (METEORLAKE)
[19:20:25] [PASSED] 0x7DD5 (METEORLAKE)
[19:20:25] [PASSED] 0x6420 (LUNARLAKE)
[19:20:25] [PASSED] 0x64A0 (LUNARLAKE)
[19:20:25] [PASSED] 0x64B0 (LUNARLAKE)
[19:20:25] [PASSED] 0xE202 (BATTLEMAGE)
[19:20:25] [PASSED] 0xE209 (BATTLEMAGE)
[19:20:25] [PASSED] 0xE20B (BATTLEMAGE)
[19:20:25] [PASSED] 0xE20C (BATTLEMAGE)
[19:20:25] [PASSED] 0xE20D (BATTLEMAGE)
[19:20:25] [PASSED] 0xE210 (BATTLEMAGE)
[19:20:25] [PASSED] 0xE211 (BATTLEMAGE)
[19:20:25] [PASSED] 0xE212 (BATTLEMAGE)
[19:20:25] [PASSED] 0xE216 (BATTLEMAGE)
[19:20:25] [PASSED] 0xE220 (BATTLEMAGE)
[19:20:25] [PASSED] 0xE221 (BATTLEMAGE)
[19:20:25] [PASSED] 0xE222 (BATTLEMAGE)
[19:20:25] [PASSED] 0xE223 (BATTLEMAGE)
[19:20:25] [PASSED] 0xB080 (PANTHERLAKE)
[19:20:25] [PASSED] 0xB081 (PANTHERLAKE)
[19:20:25] [PASSED] 0xB082 (PANTHERLAKE)
[19:20:25] [PASSED] 0xB083 (PANTHERLAKE)
[19:20:25] [PASSED] 0xB084 (PANTHERLAKE)
[19:20:25] [PASSED] 0xB085 (PANTHERLAKE)
[19:20:25] [PASSED] 0xB086 (PANTHERLAKE)
[19:20:25] [PASSED] 0xB087 (PANTHERLAKE)
[19:20:25] [PASSED] 0xB08F (PANTHERLAKE)
[19:20:25] [PASSED] 0xB090 (PANTHERLAKE)
[19:20:25] [PASSED] 0xB0A0 (PANTHERLAKE)
[19:20:25] [PASSED] 0xB0B0 (PANTHERLAKE)
[19:20:25] [PASSED] 0xD740 (NOVALAKE_S)
[19:20:25] [PASSED] 0xD741 (NOVALAKE_S)
[19:20:25] [PASSED] 0xD742 (NOVALAKE_S)
[19:20:25] [PASSED] 0xD743 (NOVALAKE_S)
[19:20:25] [PASSED] 0xD744 (NOVALAKE_S)
[19:20:25] [PASSED] 0xD745 (NOVALAKE_S)
[19:20:25] [PASSED] 0x674C (CRESCENTISLAND)
[19:20:25] [PASSED] 0xFD80 (PANTHERLAKE)
[19:20:25] [PASSED] 0xFD81 (PANTHERLAKE)
[19:20:25] =============== [PASSED] check_platform_desc ===============
[19:20:25] ===================== [PASSED] xe_pci ======================
[19:20:25] =================== xe_rtp (2 subtests) ====================
[19:20:25] =============== xe_rtp_process_to_sr_tests  ================
[19:20:25] [PASSED] coalesce-same-reg
[19:20:25] [PASSED] no-match-no-add
[19:20:25] [PASSED] match-or
[19:20:25] [PASSED] match-or-xfail
[19:20:25] [PASSED] no-match-no-add-multiple-rules
[19:20:25] [PASSED] two-regs-two-entries
[19:20:25] [PASSED] clr-one-set-other
[19:20:25] [PASSED] set-field
[19:20:25] [PASSED] conflict-duplicate
[19:20:25] [PASSED] conflict-not-disjoint
[19:20:25] [PASSED] conflict-reg-type
[19:20:25] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[19:20:25] ================== xe_rtp_process_tests  ===================
[19:20:25] [PASSED] active1
[19:20:25] [PASSED] active2
[19:20:25] [PASSED] active-inactive
[19:20:25] [PASSED] inactive-active
[19:20:25] [PASSED] inactive-1st_or_active-inactive
[19:20:25] [PASSED] inactive-2nd_or_active-inactive
[19:20:25] [PASSED] inactive-last_or_active-inactive
[19:20:25] [PASSED] inactive-no_or_active-inactive
[19:20:25] ============== [PASSED] xe_rtp_process_tests ===============
[19:20:25] ===================== [PASSED] xe_rtp ======================
[19:20:25] ==================== xe_wa (1 subtest) =====================
[19:20:25] ======================== xe_wa_gt  =========================
[19:20:25] [PASSED] TIGERLAKE B0
[19:20:25] [PASSED] DG1 A0
[19:20:25] [PASSED] DG1 B0
[19:20:25] [PASSED] ALDERLAKE_S A0
[19:20:25] [PASSED] ALDERLAKE_S B0
[19:20:25] [PASSED] ALDERLAKE_S C0
[19:20:25] [PASSED] ALDERLAKE_S D0
[19:20:25] [PASSED] ALDERLAKE_P A0
[19:20:25] [PASSED] ALDERLAKE_P B0
[19:20:25] [PASSED] ALDERLAKE_P C0
[19:20:25] [PASSED] ALDERLAKE_S RPLS D0
[19:20:25] [PASSED] ALDERLAKE_P RPLU E0
[19:20:25] [PASSED] DG2 G10 C0
[19:20:25] [PASSED] DG2 G11 B1
[19:20:25] [PASSED] DG2 G12 A1
[19:20:25] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[19:20:25] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[19:20:25] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[19:20:25] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[19:20:25] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[19:20:25] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[19:20:25] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[19:20:25] ==================== [PASSED] xe_wa_gt =====================
[19:20:25] ====================== [PASSED] xe_wa ======================
[19:20:25] ============================================================
[19:20:25] Testing complete. Ran 510 tests: passed: 492, skipped: 18
[19:20:25] Elapsed time: 34.772s total, 4.256s configuring, 30.047s building, 0.460s running

+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[19:20:25] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[19:20:26] 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
[19:20:51] Starting KUnit Kernel (1/1)...
[19:20:51] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[19:20:51] ============ drm_test_pick_cmdline (2 subtests) ============
[19:20:51] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[19:20:51] =============== drm_test_pick_cmdline_named  ===============
[19:20:51] [PASSED] NTSC
[19:20:51] [PASSED] NTSC-J
[19:20:51] [PASSED] PAL
[19:20:51] [PASSED] PAL-M
[19:20:51] =========== [PASSED] drm_test_pick_cmdline_named ===========
[19:20:51] ============== [PASSED] drm_test_pick_cmdline ==============
[19:20:51] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[19:20:51] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[19:20:51] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[19:20:51] =========== drm_validate_clone_mode (2 subtests) ===========
[19:20:51] ============== drm_test_check_in_clone_mode  ===============
[19:20:51] [PASSED] in_clone_mode
[19:20:51] [PASSED] not_in_clone_mode
[19:20:51] ========== [PASSED] drm_test_check_in_clone_mode ===========
[19:20:51] =============== drm_test_check_valid_clones  ===============
[19:20:51] [PASSED] not_in_clone_mode
[19:20:51] [PASSED] valid_clone
[19:20:51] [PASSED] invalid_clone
[19:20:51] =========== [PASSED] drm_test_check_valid_clones ===========
[19:20:51] ============= [PASSED] drm_validate_clone_mode =============
[19:20:51] ============= drm_validate_modeset (1 subtest) =============
[19:20:51] [PASSED] drm_test_check_connector_changed_modeset
[19:20:51] ============== [PASSED] drm_validate_modeset ===============
[19:20:51] ====== drm_test_bridge_get_current_state (2 subtests) ======
[19:20:51] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[19:20:51] [PASSED] drm_test_drm_bridge_get_current_state_legacy
[19:20:51] ======== [PASSED] drm_test_bridge_get_current_state ========
[19:20:51] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[19:20:51] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[19:20:51] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[19:20:51] [PASSED] drm_test_drm_bridge_helper_reset_crtc_legacy
[19:20:51] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[19:20:51] ============== drm_bridge_alloc (2 subtests) ===============
[19:20:51] [PASSED] drm_test_drm_bridge_alloc_basic
[19:20:51] [PASSED] drm_test_drm_bridge_alloc_get_put
[19:20:51] ================ [PASSED] drm_bridge_alloc =================
[19:20:51] ================== drm_buddy (8 subtests) ==================
[19:20:51] [PASSED] drm_test_buddy_alloc_limit
[19:20:51] [PASSED] drm_test_buddy_alloc_optimistic
[19:20:51] [PASSED] drm_test_buddy_alloc_pessimistic
[19:20:51] [PASSED] drm_test_buddy_alloc_pathological
[19:20:51] [PASSED] drm_test_buddy_alloc_contiguous
[19:20:51] [PASSED] drm_test_buddy_alloc_clear
[19:20:51] [PASSED] drm_test_buddy_alloc_range_bias
[19:20:51] [PASSED] drm_test_buddy_fragmentation_performance
[19:20:51] ==================== [PASSED] drm_buddy ====================
[19:20:51] ============= drm_cmdline_parser (40 subtests) =============
[19:20:51] [PASSED] drm_test_cmdline_force_d_only
[19:20:51] [PASSED] drm_test_cmdline_force_D_only_dvi
[19:20:51] [PASSED] drm_test_cmdline_force_D_only_hdmi
[19:20:51] [PASSED] drm_test_cmdline_force_D_only_not_digital
[19:20:51] [PASSED] drm_test_cmdline_force_e_only
[19:20:51] [PASSED] drm_test_cmdline_res
[19:20:51] [PASSED] drm_test_cmdline_res_vesa
[19:20:51] [PASSED] drm_test_cmdline_res_vesa_rblank
[19:20:51] [PASSED] drm_test_cmdline_res_rblank
[19:20:51] [PASSED] drm_test_cmdline_res_bpp
[19:20:51] [PASSED] drm_test_cmdline_res_refresh
[19:20:51] [PASSED] drm_test_cmdline_res_bpp_refresh
[19:20:51] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[19:20:51] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[19:20:51] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[19:20:51] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[19:20:51] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[19:20:51] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[19:20:51] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[19:20:51] [PASSED] drm_test_cmdline_res_margins_force_on
[19:20:51] [PASSED] drm_test_cmdline_res_vesa_margins
[19:20:51] [PASSED] drm_test_cmdline_name
[19:20:51] [PASSED] drm_test_cmdline_name_bpp
[19:20:51] [PASSED] drm_test_cmdline_name_option
[19:20:51] [PASSED] drm_test_cmdline_name_bpp_option
[19:20:51] [PASSED] drm_test_cmdline_rotate_0
[19:20:51] [PASSED] drm_test_cmdline_rotate_90
[19:20:51] [PASSED] drm_test_cmdline_rotate_180
[19:20:51] [PASSED] drm_test_cmdline_rotate_270
[19:20:51] [PASSED] drm_test_cmdline_hmirror
[19:20:51] [PASSED] drm_test_cmdline_vmirror
[19:20:51] [PASSED] drm_test_cmdline_margin_options
[19:20:51] [PASSED] drm_test_cmdline_multiple_options
[19:20:51] [PASSED] drm_test_cmdline_bpp_extra_and_option
[19:20:51] [PASSED] drm_test_cmdline_extra_and_option
[19:20:51] [PASSED] drm_test_cmdline_freestanding_options
[19:20:51] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[19:20:51] [PASSED] drm_test_cmdline_panel_orientation
[19:20:51] ================ drm_test_cmdline_invalid  =================
[19:20:51] [PASSED] margin_only
[19:20:51] [PASSED] interlace_only
[19:20:51] [PASSED] res_missing_x
[19:20:51] [PASSED] res_missing_y
[19:20:51] [PASSED] res_bad_y
[19:20:51] [PASSED] res_missing_y_bpp
[19:20:51] [PASSED] res_bad_bpp
[19:20:51] [PASSED] res_bad_refresh
[19:20:51] [PASSED] res_bpp_refresh_force_on_off
[19:20:51] [PASSED] res_invalid_mode
[19:20:51] [PASSED] res_bpp_wrong_place_mode
[19:20:51] [PASSED] name_bpp_refresh
[19:20:51] [PASSED] name_refresh
[19:20:51] [PASSED] name_refresh_wrong_mode
[19:20:51] [PASSED] name_refresh_invalid_mode
[19:20:51] [PASSED] rotate_multiple
[19:20:51] [PASSED] rotate_invalid_val
[19:20:51] [PASSED] rotate_truncated
[19:20:51] [PASSED] invalid_option
[19:20:51] [PASSED] invalid_tv_option
[19:20:51] [PASSED] truncated_tv_option
[19:20:51] ============ [PASSED] drm_test_cmdline_invalid =============
[19:20:51] =============== drm_test_cmdline_tv_options  ===============
[19:20:51] [PASSED] NTSC
[19:20:51] [PASSED] NTSC_443
[19:20:51] [PASSED] NTSC_J
[19:20:51] [PASSED] PAL
[19:20:51] [PASSED] PAL_M
[19:20:51] [PASSED] PAL_N
[19:20:51] [PASSED] SECAM
[19:20:51] [PASSED] MONO_525
[19:20:51] [PASSED] MONO_625
[19:20:51] =========== [PASSED] drm_test_cmdline_tv_options ===========
[19:20:51] =============== [PASSED] drm_cmdline_parser ================
[19:20:51] ========== drmm_connector_hdmi_init (20 subtests) ==========
[19:20:51] [PASSED] drm_test_connector_hdmi_init_valid
[19:20:51] [PASSED] drm_test_connector_hdmi_init_bpc_8
[19:20:51] [PASSED] drm_test_connector_hdmi_init_bpc_10
[19:20:51] [PASSED] drm_test_connector_hdmi_init_bpc_12
[19:20:51] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[19:20:51] [PASSED] drm_test_connector_hdmi_init_bpc_null
[19:20:51] [PASSED] drm_test_connector_hdmi_init_formats_empty
[19:20:51] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[19:20:51] === drm_test_connector_hdmi_init_formats_yuv420_allowed  ===
[19:20:51] [PASSED] supported_formats=0x9 yuv420_allowed=1
[19:20:51] [PASSED] supported_formats=0x9 yuv420_allowed=0
[19:20:51] [PASSED] supported_formats=0x3 yuv420_allowed=1
[19:20:51] [PASSED] supported_formats=0x3 yuv420_allowed=0
[19:20:51] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[19:20:51] [PASSED] drm_test_connector_hdmi_init_null_ddc
[19:20:51] [PASSED] drm_test_connector_hdmi_init_null_product
[19:20:51] [PASSED] drm_test_connector_hdmi_init_null_vendor
[19:20:51] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[19:20:51] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[19:20:51] [PASSED] drm_test_connector_hdmi_init_product_valid
[19:20:51] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[19:20:51] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[19:20:51] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[19:20:51] ========= drm_test_connector_hdmi_init_type_valid  =========
[19:20:51] [PASSED] HDMI-A
[19:20:51] [PASSED] HDMI-B
[19:20:51] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[19:20:51] ======== drm_test_connector_hdmi_init_type_invalid  ========
[19:20:51] [PASSED] Unknown
[19:20:51] [PASSED] VGA
[19:20:51] [PASSED] DVI-I
[19:20:51] [PASSED] DVI-D
[19:20:51] [PASSED] DVI-A
[19:20:51] [PASSED] Composite
[19:20:51] [PASSED] SVIDEO
[19:20:51] [PASSED] LVDS
[19:20:51] [PASSED] Component
[19:20:51] [PASSED] DIN
[19:20:51] [PASSED] DP
[19:20:51] [PASSED] TV
[19:20:51] [PASSED] eDP
[19:20:51] [PASSED] Virtual
[19:20:51] [PASSED] DSI
[19:20:51] [PASSED] DPI
[19:20:51] [PASSED] Writeback
[19:20:51] [PASSED] SPI
[19:20:51] [PASSED] USB
[19:20:51] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[19:20:51] ============ [PASSED] drmm_connector_hdmi_init =============
[19:20:51] ============= drmm_connector_init (3 subtests) =============
[19:20:51] [PASSED] drm_test_drmm_connector_init
[19:20:51] [PASSED] drm_test_drmm_connector_init_null_ddc
[19:20:51] ========= drm_test_drmm_connector_init_type_valid  =========
[19:20:51] [PASSED] Unknown
[19:20:51] [PASSED] VGA
[19:20:51] [PASSED] DVI-I
[19:20:51] [PASSED] DVI-D
[19:20:51] [PASSED] DVI-A
[19:20:51] [PASSED] Composite
[19:20:51] [PASSED] SVIDEO
[19:20:51] [PASSED] LVDS
[19:20:51] [PASSED] Component
[19:20:51] [PASSED] DIN
[19:20:51] [PASSED] DP
[19:20:51] [PASSED] HDMI-A
[19:20:51] [PASSED] HDMI-B
[19:20:51] [PASSED] TV
[19:20:51] [PASSED] eDP
[19:20:51] [PASSED] Virtual
[19:20:51] [PASSED] DSI
[19:20:51] [PASSED] DPI
[19:20:51] [PASSED] Writeback
[19:20:51] [PASSED] SPI
[19:20:51] [PASSED] USB
[19:20:51] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[19:20:51] =============== [PASSED] drmm_connector_init ===============
[19:20:51] ========= drm_connector_dynamic_init (6 subtests) ==========
[19:20:51] [PASSED] drm_test_drm_connector_dynamic_init
[19:20:51] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[19:20:51] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[19:20:51] [PASSED] drm_test_drm_connector_dynamic_init_properties
[19:20:51] ===== drm_test_drm_connector_dynamic_init_type_valid  ======
[19:20:51] [PASSED] Unknown
[19:20:51] [PASSED] VGA
[19:20:51] [PASSED] DVI-I
[19:20:51] [PASSED] DVI-D
[19:20:51] [PASSED] DVI-A
[19:20:51] [PASSED] Composite
[19:20:51] [PASSED] SVIDEO
[19:20:51] [PASSED] LVDS
[19:20:51] [PASSED] Component
[19:20:51] [PASSED] DIN
[19:20:51] [PASSED] DP
[19:20:51] [PASSED] HDMI-A
[19:20:51] [PASSED] HDMI-B
[19:20:51] [PASSED] TV
[19:20:51] [PASSED] eDP
[19:20:51] [PASSED] Virtual
[19:20:51] [PASSED] DSI
[19:20:51] [PASSED] DPI
[19:20:51] [PASSED] Writeback
[19:20:51] [PASSED] SPI
[19:20:51] [PASSED] USB
[19:20:51] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[19:20:51] ======== drm_test_drm_connector_dynamic_init_name  =========
[19:20:51] [PASSED] Unknown
[19:20:51] [PASSED] VGA
[19:20:51] [PASSED] DVI-I
[19:20:51] [PASSED] DVI-D
[19:20:51] [PASSED] DVI-A
[19:20:51] [PASSED] Composite
[19:20:51] [PASSED] SVIDEO
[19:20:51] [PASSED] LVDS
[19:20:51] [PASSED] Component
[19:20:51] [PASSED] DIN
[19:20:51] [PASSED] DP
[19:20:51] [PASSED] HDMI-A
[19:20:51] [PASSED] HDMI-B
[19:20:51] [PASSED] TV
[19:20:51] [PASSED] eDP
[19:20:51] [PASSED] Virtual
[19:20:51] [PASSED] DSI
[19:20:51] [PASSED] DPI
[19:20:51] [PASSED] Writeback
[19:20:51] [PASSED] SPI
[19:20:51] [PASSED] USB
[19:20:51] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[19:20:51] =========== [PASSED] drm_connector_dynamic_init ============
[19:20:51] ==== drm_connector_dynamic_register_early (4 subtests) =====
[19:20:51] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[19:20:51] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[19:20:51] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[19:20:51] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[19:20:51] ====== [PASSED] drm_connector_dynamic_register_early =======
[19:20:51] ======= drm_connector_dynamic_register (7 subtests) ========
[19:20:51] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[19:20:51] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[19:20:51] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[19:20:51] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[19:20:51] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[19:20:51] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[19:20:51] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[19:20:51] ========= [PASSED] drm_connector_dynamic_register ==========
[19:20:51] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[19:20:51] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[19:20:51] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[19:20:51] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[19:20:51] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[19:20:51] ========== drm_test_get_tv_mode_from_name_valid  ===========
[19:20:51] [PASSED] NTSC
[19:20:51] [PASSED] NTSC-443
[19:20:51] [PASSED] NTSC-J
[19:20:51] [PASSED] PAL
[19:20:51] [PASSED] PAL-M
[19:20:51] [PASSED] PAL-N
[19:20:51] [PASSED] SECAM
[19:20:51] [PASSED] Mono
[19:20:51] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[19:20:51] [PASSED] drm_test_get_tv_mode_from_name_truncated
[19:20:51] ============ [PASSED] drm_get_tv_mode_from_name ============
[19:20:51] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[19:20:51] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[19:20:51] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[19:20:51] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[19:20:51] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[19:20:51] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[19:20:51] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[19:20:51] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid  =
[19:20:51] [PASSED] VIC 96
[19:20:51] [PASSED] VIC 97
[19:20:51] [PASSED] VIC 101
[19:20:51] [PASSED] VIC 102
[19:20:51] [PASSED] VIC 106
[19:20:51] [PASSED] VIC 107
[19:20:51] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[19:20:51] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[19:20:51] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[19:20:51] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[19:20:51] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[19:20:51] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[19:20:51] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[19:20:51] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[19:20:51] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name  ====
[19:20:51] [PASSED] Automatic
[19:20:51] [PASSED] Full
[19:20:51] [PASSED] Limited 16:235
[19:20:51] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[19:20:51] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[19:20:51] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[19:20:51] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[19:20:51] === drm_test_drm_hdmi_connector_get_output_format_name  ====
[19:20:51] [PASSED] RGB
[19:20:51] [PASSED] YUV 4:2:0
[19:20:51] [PASSED] YUV 4:2:2
[19:20:51] [PASSED] YUV 4:4:4
[19:20:51] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[19:20:51] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[19:20:51] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[19:20:51] ============= drm_damage_helper (21 subtests) ==============
[19:20:51] [PASSED] drm_test_damage_iter_no_damage
[19:20:51] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[19:20:51] [PASSED] drm_test_damage_iter_no_damage_src_moved
[19:20:51] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[19:20:51] [PASSED] drm_test_damage_iter_no_damage_not_visible
[19:20:51] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[19:20:51] [PASSED] drm_test_damage_iter_no_damage_no_fb
[19:20:51] [PASSED] drm_test_damage_iter_simple_damage
[19:20:51] [PASSED] drm_test_damage_iter_single_damage
[19:20:51] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[19:20:51] [PASSED] drm_test_damage_iter_single_damage_outside_src
[19:20:51] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[19:20:51] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[19:20:51] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[19:20:51] [PASSED] drm_test_damage_iter_single_damage_src_moved
[19:20:51] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[19:20:51] [PASSED] drm_test_damage_iter_damage
[19:20:51] [PASSED] drm_test_damage_iter_damage_one_intersect
[19:20:51] [PASSED] drm_test_damage_iter_damage_one_outside
[19:20:51] [PASSED] drm_test_damage_iter_damage_src_moved
[19:20:51] [PASSED] drm_test_damage_iter_damage_not_visible
[19:20:51] ================ [PASSED] drm_damage_helper ================
[19:20:51] ============== drm_dp_mst_helper (3 subtests) ==============
[19:20:51] ============== drm_test_dp_mst_calc_pbn_mode  ==============
[19:20:51] [PASSED] Clock 154000 BPP 30 DSC disabled
[19:20:51] [PASSED] Clock 234000 BPP 30 DSC disabled
[19:20:51] [PASSED] Clock 297000 BPP 24 DSC disabled
[19:20:51] [PASSED] Clock 332880 BPP 24 DSC enabled
[19:20:51] [PASSED] Clock 324540 BPP 24 DSC enabled
[19:20:51] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[19:20:51] ============== drm_test_dp_mst_calc_pbn_div  ===============
[19:20:51] [PASSED] Link rate 2000000 lane count 4
[19:20:51] [PASSED] Link rate 2000000 lane count 2
[19:20:51] [PASSED] Link rate 2000000 lane count 1
[19:20:51] [PASSED] Link rate 1350000 lane count 4
[19:20:51] [PASSED] Link rate 1350000 lane count 2
[19:20:51] [PASSED] Link rate 1350000 lane count 1
[19:20:51] [PASSED] Link rate 1000000 lane count 4
[19:20:51] [PASSED] Link rate 1000000 lane count 2
[19:20:51] [PASSED] Link rate 1000000 lane count 1
[19:20:51] [PASSED] Link rate 810000 lane count 4
[19:20:51] [PASSED] Link rate 810000 lane count 2
[19:20:51] [PASSED] Link rate 810000 lane count 1
[19:20:51] [PASSED] Link rate 540000 lane count 4
[19:20:51] [PASSED] Link rate 540000 lane count 2
[19:20:51] [PASSED] Link rate 540000 lane count 1
[19:20:51] [PASSED] Link rate 270000 lane count 4
[19:20:51] [PASSED] Link rate 270000 lane count 2
[19:20:51] [PASSED] Link rate 270000 lane count 1
[19:20:51] [PASSED] Link rate 162000 lane count 4
[19:20:51] [PASSED] Link rate 162000 lane count 2
[19:20:51] [PASSED] Link rate 162000 lane count 1
[19:20:51] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[19:20:51] ========= drm_test_dp_mst_sideband_msg_req_decode  =========
[19:20:51] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[19:20:51] [PASSED] DP_POWER_UP_PHY with port number
[19:20:51] [PASSED] DP_POWER_DOWN_PHY with port number
[19:20:51] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[19:20:51] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[19:20:51] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[19:20:51] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[19:20:51] [PASSED] DP_QUERY_PAYLOAD with port number
[19:20:51] [PASSED] DP_QUERY_PAYLOAD with VCPI
[19:20:51] [PASSED] DP_REMOTE_DPCD_READ with port number
[19:20:51] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[19:20:51] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[19:20:51] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[19:20:51] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[19:20:51] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[19:20:51] [PASSED] DP_REMOTE_I2C_READ with port number
[19:20:51] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[19:20:51] [PASSED] DP_REMOTE_I2C_READ with transactions array
[19:20:51] [PASSED] DP_REMOTE_I2C_WRITE with port number
[19:20:51] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[19:20:51] [PASSED] DP_REMOTE_I2C_WRITE with data array
[19:20:51] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[19:20:51] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[19:20:51] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[19:20:51] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[19:20:51] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[19:20:51] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[19:20:51] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[19:20:51] ================ [PASSED] drm_dp_mst_helper ================
[19:20:51] ================== drm_exec (7 subtests) ===================
[19:20:51] [PASSED] sanitycheck
[19:20:51] [PASSED] test_lock
[19:20:51] [PASSED] test_lock_unlock
[19:20:51] [PASSED] test_duplicates
[19:20:51] [PASSED] test_prepare
[19:20:51] [PASSED] test_prepare_array
[19:20:51] [PASSED] test_multiple_loops
[19:20:51] ==================== [PASSED] drm_exec =====================
[19:20:51] =========== drm_format_helper_test (17 subtests) ===========
[19:20:51] ============== drm_test_fb_xrgb8888_to_gray8  ==============
[19:20:51] [PASSED] single_pixel_source_buffer
[19:20:51] [PASSED] single_pixel_clip_rectangle
[19:20:51] [PASSED] well_known_colors
[19:20:51] [PASSED] destination_pitch
[19:20:51] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[19:20:51] ============= drm_test_fb_xrgb8888_to_rgb332  ==============
[19:20:51] [PASSED] single_pixel_source_buffer
[19:20:51] [PASSED] single_pixel_clip_rectangle
[19:20:51] [PASSED] well_known_colors
[19:20:51] [PASSED] destination_pitch
[19:20:51] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[19:20:51] ============= drm_test_fb_xrgb8888_to_rgb565  ==============
[19:20:51] [PASSED] single_pixel_source_buffer
[19:20:51] [PASSED] single_pixel_clip_rectangle
[19:20:51] [PASSED] well_known_colors
[19:20:51] [PASSED] destination_pitch
[19:20:51] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[19:20:51] ============ drm_test_fb_xrgb8888_to_xrgb1555  =============
[19:20:51] [PASSED] single_pixel_source_buffer
[19:20:51] [PASSED] single_pixel_clip_rectangle
[19:20:51] [PASSED] well_known_colors
[19:20:51] [PASSED] destination_pitch
[19:20:51] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[19:20:51] ============ drm_test_fb_xrgb8888_to_argb1555  =============
[19:20:51] [PASSED] single_pixel_source_buffer
[19:20:51] [PASSED] single_pixel_clip_rectangle
[19:20:51] [PASSED] well_known_colors
[19:20:51] [PASSED] destination_pitch
[19:20:51] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[19:20:51] ============ drm_test_fb_xrgb8888_to_rgba5551  =============
[19:20:51] [PASSED] single_pixel_source_buffer
[19:20:51] [PASSED] single_pixel_clip_rectangle
[19:20:51] [PASSED] well_known_colors
[19:20:51] [PASSED] destination_pitch
[19:20:51] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[19:20:51] ============= drm_test_fb_xrgb8888_to_rgb888  ==============
[19:20:51] [PASSED] single_pixel_source_buffer
[19:20:51] [PASSED] single_pixel_clip_rectangle
[19:20:51] [PASSED] well_known_colors
[19:20:51] [PASSED] destination_pitch
[19:20:51] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[19:20:51] ============= drm_test_fb_xrgb8888_to_bgr888  ==============
[19:20:51] [PASSED] single_pixel_source_buffer
[19:20:51] [PASSED] single_pixel_clip_rectangle
[19:20:51] [PASSED] well_known_colors
[19:20:51] [PASSED] destination_pitch
[19:20:51] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[19:20:51] ============ drm_test_fb_xrgb8888_to_argb8888  =============
[19:20:51] [PASSED] single_pixel_source_buffer
[19:20:51] [PASSED] single_pixel_clip_rectangle
[19:20:51] [PASSED] well_known_colors
[19:20:51] [PASSED] destination_pitch
[19:20:51] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[19:20:51] =========== drm_test_fb_xrgb8888_to_xrgb2101010  ===========
[19:20:51] [PASSED] single_pixel_source_buffer
[19:20:51] [PASSED] single_pixel_clip_rectangle
[19:20:51] [PASSED] well_known_colors
[19:20:51] [PASSED] destination_pitch
[19:20:51] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[19:20:51] =========== drm_test_fb_xrgb8888_to_argb2101010  ===========
[19:20:51] [PASSED] single_pixel_source_buffer
[19:20:51] [PASSED] single_pixel_clip_rectangle
[19:20:51] [PASSED] well_known_colors
[19:20:51] [PASSED] destination_pitch
[19:20:51] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[19:20:51] ============== drm_test_fb_xrgb8888_to_mono  ===============
[19:20:51] [PASSED] single_pixel_source_buffer
[19:20:51] [PASSED] single_pixel_clip_rectangle
[19:20:51] [PASSED] well_known_colors
[19:20:51] [PASSED] destination_pitch
[19:20:51] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[19:20:51] ==================== drm_test_fb_swab  =====================
[19:20:51] [PASSED] single_pixel_source_buffer
[19:20:51] [PASSED] single_pixel_clip_rectangle
[19:20:51] [PASSED] well_known_colors
[19:20:51] [PASSED] destination_pitch
[19:20:51] ================ [PASSED] drm_test_fb_swab =================
[19:20:51] ============ drm_test_fb_xrgb8888_to_xbgr8888  =============
[19:20:51] [PASSED] single_pixel_source_buffer
[19:20:51] [PASSED] single_pixel_clip_rectangle
[19:20:51] [PASSED] well_known_colors
[19:20:51] [PASSED] destination_pitch
[19:20:51] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[19:20:51] ============ drm_test_fb_xrgb8888_to_abgr8888  =============
[19:20:51] [PASSED] single_pixel_source_buffer
[19:20:51] [PASSED] single_pixel_clip_rectangle
[19:20:51] [PASSED] well_known_colors
[19:20:51] [PASSED] destination_pitch
[19:20:51] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[19:20:51] ================= drm_test_fb_clip_offset  =================
[19:20:51] [PASSED] pass through
[19:20:51] [PASSED] horizontal offset
[19:20:51] [PASSED] vertical offset
[19:20:51] [PASSED] horizontal and vertical offset
[19:20:51] [PASSED] horizontal offset (custom pitch)
[19:20:51] [PASSED] vertical offset (custom pitch)
[19:20:51] [PASSED] horizontal and vertical offset (custom pitch)
[19:20:51] ============= [PASSED] drm_test_fb_clip_offset =============
[19:20:51] =================== drm_test_fb_memcpy  ====================
[19:20:51] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[19:20:51] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[19:20:51] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[19:20:51] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[19:20:51] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[19:20:51] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[19:20:51] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[19:20:51] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[19:20:51] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[19:20:51] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[19:20:51] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[19:20:51] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[19:20:51] =============== [PASSED] drm_test_fb_memcpy ================
[19:20:51] ============= [PASSED] drm_format_helper_test ==============
[19:20:51] ================= drm_format (18 subtests) =================
[19:20:51] [PASSED] drm_test_format_block_width_invalid
[19:20:51] [PASSED] drm_test_format_block_width_one_plane
[19:20:51] [PASSED] drm_test_format_block_width_two_plane
[19:20:51] [PASSED] drm_test_format_block_width_three_plane
[19:20:51] [PASSED] drm_test_format_block_width_tiled
[19:20:51] [PASSED] drm_test_format_block_height_invalid
[19:20:51] [PASSED] drm_test_format_block_height_one_plane
[19:20:51] [PASSED] drm_test_format_block_height_two_plane
[19:20:51] [PASSED] drm_test_format_block_height_three_plane
[19:20:51] [PASSED] drm_test_format_block_height_tiled
[19:20:51] [PASSED] drm_test_format_min_pitch_invalid
[19:20:51] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[19:20:51] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[19:20:51] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[19:20:51] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[19:20:51] [PASSED] drm_test_format_min_pitch_two_plane
[19:20:51] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[19:20:51] [PASSED] drm_test_format_min_pitch_tiled
[19:20:51] =================== [PASSED] drm_format ====================
[19:20:51] ============== drm_framebuffer (10 subtests) ===============
[19:20:51] ========== drm_test_framebuffer_check_src_coords  ==========
[19:20:51] [PASSED] Success: source fits into fb
[19:20:51] [PASSED] Fail: overflowing fb with x-axis coordinate
[19:20:51] [PASSED] Fail: overflowing fb with y-axis coordinate
[19:20:51] [PASSED] Fail: overflowing fb with source width
[19:20:51] [PASSED] Fail: overflowing fb with source height
[19:20:51] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[19:20:51] [PASSED] drm_test_framebuffer_cleanup
[19:20:51] =============== drm_test_framebuffer_create  ===============
[19:20:51] [PASSED] ABGR8888 normal sizes
[19:20:51] [PASSED] ABGR8888 max sizes
[19:20:51] [PASSED] ABGR8888 pitch greater than min required
[19:20:51] [PASSED] ABGR8888 pitch less than min required
[19:20:51] [PASSED] ABGR8888 Invalid width
[19:20:51] [PASSED] ABGR8888 Invalid buffer handle
[19:20:51] [PASSED] No pixel format
[19:20:51] [PASSED] ABGR8888 Width 0
[19:20:51] [PASSED] ABGR8888 Height 0
[19:20:51] [PASSED] ABGR8888 Out of bound height * pitch combination
[19:20:51] [PASSED] ABGR8888 Large buffer offset
[19:20:51] [PASSED] ABGR8888 Buffer offset for inexistent plane
[19:20:51] [PASSED] ABGR8888 Invalid flag
[19:20:51] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[19:20:51] [PASSED] ABGR8888 Valid buffer modifier
[19:20:51] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[19:20:51] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[19:20:51] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[19:20:51] [PASSED] NV12 Normal sizes
[19:20:51] [PASSED] NV12 Max sizes
[19:20:51] [PASSED] NV12 Invalid pitch
[19:20:51] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[19:20:51] [PASSED] NV12 different  modifier per-plane
[19:20:51] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[19:20:51] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[19:20:51] [PASSED] NV12 Modifier for inexistent plane
[19:20:51] [PASSED] NV12 Handle for inexistent plane
[19:20:51] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[19:20:51] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[19:20:51] [PASSED] YVU420 Normal sizes
[19:20:51] [PASSED] YVU420 Max sizes
[19:20:51] [PASSED] YVU420 Invalid pitch
[19:20:51] [PASSED] YVU420 Different pitches
[19:20:51] [PASSED] YVU420 Different buffer offsets/pitches
[19:20:51] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[19:20:51] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[19:20:51] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[19:20:51] [PASSED] YVU420 Valid modifier
[19:20:51] [PASSED] YVU420 Different modifiers per plane
[19:20:51] [PASSED] YVU420 Modifier for inexistent plane
[19:20:51] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[19:20:51] [PASSED] X0L2 Normal sizes
[19:20:51] [PASSED] X0L2 Max sizes
[19:20:51] [PASSED] X0L2 Invalid pitch
[19:20:51] [PASSED] X0L2 Pitch greater than minimum required
[19:20:51] [PASSED] X0L2 Handle for inexistent plane
[19:20:51] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[19:20:51] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[19:20:51] [PASSED] X0L2 Valid modifier
[19:20:51] [PASSED] X0L2 Modifier for inexistent plane
[19:20:51] =========== [PASSED] drm_test_framebuffer_create ===========
[19:20:51] [PASSED] drm_test_framebuffer_free
[19:20:51] [PASSED] drm_test_framebuffer_init
[19:20:51] [PASSED] drm_test_framebuffer_init_bad_format
[19:20:51] [PASSED] drm_test_framebuffer_init_dev_mismatch
[19:20:51] [PASSED] drm_test_framebuffer_lookup
[19:20:51] [PASSED] drm_test_framebuffer_lookup_inexistent
[19:20:51] [PASSED] drm_test_framebuffer_modifiers_not_supported
[19:20:51] ================= [PASSED] drm_framebuffer =================
[19:20:51] ================ drm_gem_shmem (8 subtests) ================
[19:20:51] [PASSED] drm_gem_shmem_test_obj_create
[19:20:51] [PASSED] drm_gem_shmem_test_obj_create_private
[19:20:51] [PASSED] drm_gem_shmem_test_pin_pages
[19:20:51] [PASSED] drm_gem_shmem_test_vmap
[19:20:51] [PASSED] drm_gem_shmem_test_get_pages_sgt
[19:20:51] [PASSED] drm_gem_shmem_test_get_sg_table
[19:20:51] [PASSED] drm_gem_shmem_test_madvise
[19:20:51] [PASSED] drm_gem_shmem_test_purge
[19:20:51] ================== [PASSED] drm_gem_shmem ==================
[19:20:51] === drm_atomic_helper_connector_hdmi_check (27 subtests) ===
[19:20:51] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[19:20:51] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[19:20:51] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[19:20:51] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[19:20:51] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[19:20:51] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[19:20:51] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420  =======
[19:20:51] [PASSED] Automatic
[19:20:51] [PASSED] Full
[19:20:51] [PASSED] Limited 16:235
[19:20:51] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[19:20:51] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[19:20:51] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[19:20:51] [PASSED] drm_test_check_disable_connector
[19:20:51] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[19:20:51] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[19:20:51] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[19:20:51] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[19:20:51] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[19:20:51] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[19:20:51] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[19:20:51] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[19:20:51] [PASSED] drm_test_check_output_bpc_dvi
[19:20:51] [PASSED] drm_test_check_output_bpc_format_vic_1
[19:20:51] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[19:20:51] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[19:20:51] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[19:20:51] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[19:20:51] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[19:20:51] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[19:20:51] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[19:20:51] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[19:20:51] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[19:20:51] [PASSED] drm_test_check_broadcast_rgb_value
[19:20:51] [PASSED] drm_test_check_bpc_8_value
[19:20:51] [PASSED] drm_test_check_bpc_10_value
[19:20:51] [PASSED] drm_test_check_bpc_12_value
[19:20:51] [PASSED] drm_test_check_format_value
[19:20:51] [PASSED] drm_test_check_tmds_char_value
[19:20:51] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[19:20:51] = drm_atomic_helper_connector_hdmi_mode_valid (4 subtests) =
[19:20:51] [PASSED] drm_test_check_mode_valid
[19:20:51] [PASSED] drm_test_check_mode_valid_reject
[19:20:51] [PASSED] drm_test_check_mode_valid_reject_rate
[19:20:51] [PASSED] drm_test_check_mode_valid_reject_max_clock
[19:20:51] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[19:20:51] ================= drm_managed (2 subtests) =================
[19:20:51] [PASSED] drm_test_managed_release_action
[19:20:51] [PASSED] drm_test_managed_run_action
[19:20:51] =================== [PASSED] drm_managed ===================
[19:20:51] =================== drm_mm (6 subtests) ====================
[19:20:51] [PASSED] drm_test_mm_init
[19:20:51] [PASSED] drm_test_mm_debug
[19:20:51] [PASSED] drm_test_mm_align32
[19:20:51] [PASSED] drm_test_mm_align64
[19:20:51] [PASSED] drm_test_mm_lowest
[19:20:51] [PASSED] drm_test_mm_highest
[19:20:51] ===================== [PASSED] drm_mm ======================
[19:20:51] ============= drm_modes_analog_tv (5 subtests) =============
[19:20:51] [PASSED] drm_test_modes_analog_tv_mono_576i
[19:20:51] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[19:20:51] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[19:20:51] [PASSED] drm_test_modes_analog_tv_pal_576i
[19:20:51] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[19:20:51] =============== [PASSED] drm_modes_analog_tv ===============
[19:20:51] ============== drm_plane_helper (2 subtests) ===============
[19:20:51] =============== drm_test_check_plane_state  ================
[19:20:51] [PASSED] clipping_simple
[19:20:51] [PASSED] clipping_rotate_reflect
[19:20:51] [PASSED] positioning_simple
[19:20:51] [PASSED] upscaling
[19:20:51] [PASSED] downscaling
[19:20:51] [PASSED] rounding1
[19:20:51] [PASSED] rounding2
[19:20:51] [PASSED] rounding3
[19:20:51] [PASSED] rounding4
[19:20:51] =========== [PASSED] drm_test_check_plane_state ============
[19:20:51] =========== drm_test_check_invalid_plane_state  ============
[19:20:51] [PASSED] positioning_invalid
[19:20:51] [PASSED] upscaling_invalid
[19:20:51] [PASSED] downscaling_invalid
[19:20:51] ======= [PASSED] drm_test_check_invalid_plane_state ========
[19:20:51] ================ [PASSED] drm_plane_helper =================
[19:20:51] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[19:20:51] ====== drm_test_connector_helper_tv_get_modes_check  =======
[19:20:51] [PASSED] None
[19:20:51] [PASSED] PAL
[19:20:51] [PASSED] NTSC
[19:20:51] [PASSED] Both, NTSC Default
[19:20:51] [PASSED] Both, PAL Default
[19:20:51] [PASSED] Both, NTSC Default, with PAL on command-line
[19:20:51] [PASSED] Both, PAL Default, with NTSC on command-line
[19:20:51] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[19:20:51] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[19:20:51] ================== drm_rect (9 subtests) ===================
[19:20:51] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[19:20:51] [PASSED] drm_test_rect_clip_scaled_not_clipped
[19:20:51] [PASSED] drm_test_rect_clip_scaled_clipped
[19:20:51] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[19:20:51] ================= drm_test_rect_intersect  =================
[19:20:51] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[19:20:51] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[19:20:51] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[19:20:51] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[19:20:51] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[19:20:51] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[19:20:51] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[19:20:51] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[19:20:51] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[19:20:51] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[19:20:51] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[19:20:51] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[19:20:51] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[19:20:51] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[19:20:51] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[19:20:51] ============= [PASSED] drm_test_rect_intersect =============
[19:20:51] ================ drm_test_rect_calc_hscale  ================
[19:20:51] [PASSED] normal use
[19:20:51] [PASSED] out of max range
[19:20:51] [PASSED] out of min range
[19:20:51] [PASSED] zero dst
[19:20:51] [PASSED] negative src
[19:20:51] [PASSED] negative dst
[19:20:51] ============ [PASSED] drm_test_rect_calc_hscale ============
[19:20:51] ================ drm_test_rect_calc_vscale  ================
[19:20:51] [PASSED] normal use
stty: 'standard input': Inappropriate ioctl for device
[19:20:51] [PASSED] out of max range
[19:20:51] [PASSED] out of min range
[19:20:51] [PASSED] zero dst
[19:20:51] [PASSED] negative src
[19:20:51] [PASSED] negative dst
[19:20:51] ============ [PASSED] drm_test_rect_calc_vscale ============
[19:20:51] ================== drm_test_rect_rotate  ===================
[19:20:51] [PASSED] reflect-x
[19:20:51] [PASSED] reflect-y
[19:20:51] [PASSED] rotate-0
[19:20:51] [PASSED] rotate-90
[19:20:51] [PASSED] rotate-180
[19:20:51] [PASSED] rotate-270
[19:20:51] ============== [PASSED] drm_test_rect_rotate ===============
[19:20:51] ================ drm_test_rect_rotate_inv  =================
[19:20:51] [PASSED] reflect-x
[19:20:51] [PASSED] reflect-y
[19:20:51] [PASSED] rotate-0
[19:20:51] [PASSED] rotate-90
[19:20:51] [PASSED] rotate-180
[19:20:51] [PASSED] rotate-270
[19:20:51] ============ [PASSED] drm_test_rect_rotate_inv =============
[19:20:51] ==================== [PASSED] drm_rect =====================
[19:20:51] ============ drm_sysfb_modeset_test (1 subtest) ============
[19:20:51] ============ drm_test_sysfb_build_fourcc_list  =============
[19:20:51] [PASSED] no native formats
[19:20:51] [PASSED] XRGB8888 as native format
[19:20:51] [PASSED] remove duplicates
[19:20:51] [PASSED] convert alpha formats
[19:20:51] [PASSED] random formats
[19:20:51] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[19:20:51] ============= [PASSED] drm_sysfb_modeset_test ==============
[19:20:51] ============================================================
[19:20:51] Testing complete. Ran 622 tests: passed: 622
[19:20:51] Elapsed time: 26.576s total, 1.681s configuring, 24.426s building, 0.435s running

+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[19:20:51] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[19:20:53] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[19:21:03] Starting KUnit Kernel (1/1)...
[19:21:03] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[19:21:03] ================= ttm_device (5 subtests) ==================
[19:21:03] [PASSED] ttm_device_init_basic
[19:21:03] [PASSED] ttm_device_init_multiple
[19:21:03] [PASSED] ttm_device_fini_basic
[19:21:03] [PASSED] ttm_device_init_no_vma_man
[19:21:03] ================== ttm_device_init_pools  ==================
[19:21:03] [PASSED] No DMA allocations, no DMA32 required
[19:21:03] [PASSED] DMA allocations, DMA32 required
[19:21:03] [PASSED] No DMA allocations, DMA32 required
[19:21:03] [PASSED] DMA allocations, no DMA32 required
[19:21:03] ============== [PASSED] ttm_device_init_pools ==============
[19:21:03] =================== [PASSED] ttm_device ====================
[19:21:03] ================== ttm_pool (8 subtests) ===================
[19:21:03] ================== ttm_pool_alloc_basic  ===================
[19:21:03] [PASSED] One page
[19:21:03] [PASSED] More than one page
[19:21:03] [PASSED] Above the allocation limit
[19:21:03] [PASSED] One page, with coherent DMA mappings enabled
[19:21:03] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[19:21:03] ============== [PASSED] ttm_pool_alloc_basic ===============
[19:21:03] ============== ttm_pool_alloc_basic_dma_addr  ==============
[19:21:03] [PASSED] One page
[19:21:03] [PASSED] More than one page
[19:21:03] [PASSED] Above the allocation limit
[19:21:03] [PASSED] One page, with coherent DMA mappings enabled
[19:21:03] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[19:21:03] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[19:21:03] [PASSED] ttm_pool_alloc_order_caching_match
[19:21:03] [PASSED] ttm_pool_alloc_caching_mismatch
[19:21:03] [PASSED] ttm_pool_alloc_order_mismatch
[19:21:03] [PASSED] ttm_pool_free_dma_alloc
[19:21:03] [PASSED] ttm_pool_free_no_dma_alloc
[19:21:03] [PASSED] ttm_pool_fini_basic
[19:21:03] ==================== [PASSED] ttm_pool =====================
[19:21:03] ================ ttm_resource (8 subtests) =================
[19:21:03] ================= ttm_resource_init_basic  =================
[19:21:03] [PASSED] Init resource in TTM_PL_SYSTEM
[19:21:03] [PASSED] Init resource in TTM_PL_VRAM
[19:21:03] [PASSED] Init resource in a private placement
[19:21:03] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[19:21:03] ============= [PASSED] ttm_resource_init_basic =============
[19:21:03] [PASSED] ttm_resource_init_pinned
[19:21:03] [PASSED] ttm_resource_fini_basic
[19:21:03] [PASSED] ttm_resource_manager_init_basic
[19:21:03] [PASSED] ttm_resource_manager_usage_basic
[19:21:03] [PASSED] ttm_resource_manager_set_used_basic
[19:21:03] [PASSED] ttm_sys_man_alloc_basic
[19:21:03] [PASSED] ttm_sys_man_free_basic
[19:21:03] ================== [PASSED] ttm_resource ===================
[19:21:03] =================== ttm_tt (15 subtests) ===================
[19:21:03] ==================== ttm_tt_init_basic  ====================
[19:21:03] [PASSED] Page-aligned size
[19:21:03] [PASSED] Extra pages requested
[19:21:03] ================ [PASSED] ttm_tt_init_basic ================
[19:21:03] [PASSED] ttm_tt_init_misaligned
[19:21:03] [PASSED] ttm_tt_fini_basic
[19:21:03] [PASSED] ttm_tt_fini_sg
[19:21:03] [PASSED] ttm_tt_fini_shmem
[19:21:03] [PASSED] ttm_tt_create_basic
[19:21:03] [PASSED] ttm_tt_create_invalid_bo_type
[19:21:03] [PASSED] ttm_tt_create_ttm_exists
[19:21:03] [PASSED] ttm_tt_create_failed
[19:21:03] [PASSED] ttm_tt_destroy_basic
[19:21:03] [PASSED] ttm_tt_populate_null_ttm
[19:21:03] [PASSED] ttm_tt_populate_populated_ttm
[19:21:03] [PASSED] ttm_tt_unpopulate_basic
[19:21:03] [PASSED] ttm_tt_unpopulate_empty_ttm
[19:21:03] [PASSED] ttm_tt_swapin_basic
[19:21:03] ===================== [PASSED] ttm_tt ======================
[19:21:03] =================== ttm_bo (14 subtests) ===================
[19:21:03] =========== ttm_bo_reserve_optimistic_no_ticket  ===========
[19:21:03] [PASSED] Cannot be interrupted and sleeps
[19:21:03] [PASSED] Cannot be interrupted, locks straight away
[19:21:03] [PASSED] Can be interrupted, sleeps
[19:21:03] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[19:21:03] [PASSED] ttm_bo_reserve_locked_no_sleep
[19:21:03] [PASSED] ttm_bo_reserve_no_wait_ticket
[19:21:03] [PASSED] ttm_bo_reserve_double_resv
[19:21:03] [PASSED] ttm_bo_reserve_interrupted
[19:21:03] [PASSED] ttm_bo_reserve_deadlock
[19:21:03] [PASSED] ttm_bo_unreserve_basic
[19:21:03] [PASSED] ttm_bo_unreserve_pinned
[19:21:03] [PASSED] ttm_bo_unreserve_bulk
[19:21:03] [PASSED] ttm_bo_fini_basic
[19:21:03] [PASSED] ttm_bo_fini_shared_resv
[19:21:03] [PASSED] ttm_bo_pin_basic
[19:21:03] [PASSED] ttm_bo_pin_unpin_resource
[19:21:03] [PASSED] ttm_bo_multiple_pin_one_unpin
[19:21:03] ===================== [PASSED] ttm_bo ======================
[19:21:03] ============== ttm_bo_validate (21 subtests) ===============
[19:21:03] ============== ttm_bo_init_reserved_sys_man  ===============
[19:21:03] [PASSED] Buffer object for userspace
[19:21:03] [PASSED] Kernel buffer object
[19:21:03] [PASSED] Shared buffer object
[19:21:03] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[19:21:03] ============== ttm_bo_init_reserved_mock_man  ==============
[19:21:03] [PASSED] Buffer object for userspace
[19:21:03] [PASSED] Kernel buffer object
[19:21:03] [PASSED] Shared buffer object
[19:21:03] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[19:21:03] [PASSED] ttm_bo_init_reserved_resv
[19:21:03] ================== ttm_bo_validate_basic  ==================
[19:21:03] [PASSED] Buffer object for userspace
[19:21:03] [PASSED] Kernel buffer object
[19:21:03] [PASSED] Shared buffer object
[19:21:03] ============== [PASSED] ttm_bo_validate_basic ==============
[19:21:03] [PASSED] ttm_bo_validate_invalid_placement
[19:21:03] ============= ttm_bo_validate_same_placement  ==============
[19:21:03] [PASSED] System manager
[19:21:03] [PASSED] VRAM manager
[19:21:03] ========= [PASSED] ttm_bo_validate_same_placement ==========
[19:21:03] [PASSED] ttm_bo_validate_failed_alloc
[19:21:03] [PASSED] ttm_bo_validate_pinned
[19:21:03] [PASSED] ttm_bo_validate_busy_placement
[19:21:03] ================ ttm_bo_validate_multihop  =================
[19:21:03] [PASSED] Buffer object for userspace
[19:21:03] [PASSED] Kernel buffer object
[19:21:03] [PASSED] Shared buffer object
[19:21:03] ============ [PASSED] ttm_bo_validate_multihop =============
[19:21:03] ========== ttm_bo_validate_no_placement_signaled  ==========
[19:21:03] [PASSED] Buffer object in system domain, no page vector
[19:21:03] [PASSED] Buffer object in system domain with an existing page vector
[19:21:03] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[19:21:03] ======== ttm_bo_validate_no_placement_not_signaled  ========
[19:21:03] [PASSED] Buffer object for userspace
[19:21:03] [PASSED] Kernel buffer object
[19:21:03] [PASSED] Shared buffer object
[19:21:03] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[19:21:03] [PASSED] ttm_bo_validate_move_fence_signaled
[19:21:03] ========= ttm_bo_validate_move_fence_not_signaled  =========
[19:21:03] [PASSED] Waits for GPU
[19:21:03] [PASSED] Tries to lock straight away
[19:21:03] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[19:21:03] [PASSED] ttm_bo_validate_happy_evict
[19:21:03] [PASSED] ttm_bo_validate_all_pinned_evict
[19:21:03] [PASSED] ttm_bo_validate_allowed_only_evict
[19:21:03] [PASSED] ttm_bo_validate_deleted_evict
[19:21:03] [PASSED] ttm_bo_validate_busy_domain_evict
[19:21:03] [PASSED] ttm_bo_validate_evict_gutting
[19:21:03] [PASSED] ttm_bo_validate_recrusive_evict
stty: 'standard input': Inappropriate ioctl for device
[19:21:03] ================= [PASSED] ttm_bo_validate =================
[19:21:03] ============================================================
[19:21:03] Testing complete. Ran 101 tests: passed: 101
[19:21:03] Elapsed time: 11.278s total, 1.685s configuring, 9.375s building, 0.182s running

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



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

* ✗ CI.checksparse: warning for drm/i915: dissolve soc/ (rev2)
  2025-11-19 18:52 [PATCH v2 00/13] drm/i915: dissolve soc/ Jani Nikula
                   ` (20 preceding siblings ...)
  2025-11-20 19:21 ` ✓ CI.KUnit: success " Patchwork
@ 2025-11-20 19:36 ` Patchwork
  2025-11-20 20:25 ` ✓ Xe.CI.BAT: success " Patchwork
  2025-11-21  1:27 ` ✗ Xe.CI.Full: failure " Patchwork
  23 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2025-11-20 19:36 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-xe

== Series Details ==

Series: drm/i915: dissolve soc/ (rev2)
URL   : https://patchwork.freedesktop.org/series/157792/
State : warning

== Summary ==

+ trap cleanup EXIT
+ KERNEL=/kernel
+ MT=/root/linux/maintainer-tools
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools /root/linux/maintainer-tools
Cloning into '/root/linux/maintainer-tools'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ make -C /root/linux/maintainer-tools
make: Entering directory '/root/linux/maintainer-tools'
cc -O2 -g -Wextra -o remap-log remap-log.c
make: Leaving directory '/root/linux/maintainer-tools'
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ /root/linux/maintainer-tools/dim sparse --fast 3d718db04a365cc44a3bc81ffa4db7bbd2e645d7
Sparse version: 0.6.4 (Ubuntu: 0.6.4-4ubuntu3)
Fast mode used, each commit won't be checked separately.
-
+drivers/gpu/drm/i915/display/intel_alpm.c: note: in included file:
+drivers/gpu/drm/i915/display/intel_casf.c:147:21: error: too long token expansion
+drivers/gpu/drm/i915/display/intel_cdclk.c: note: in included file:
+drivers/gpu/drm/i915/display/intel_ddi.c: note: in included file:
+drivers/gpu/drm/i915/display/intel_display_types.h:2072:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2072:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2072:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2072:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2072:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2072:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2072:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2072:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2072:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2072:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2072:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2072:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2072:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2072:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2072:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2072:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2085:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2085:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2085:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_hdcp.c: note: in included file:
+drivers/gpu/drm/i915/display/intel_hotplug.c: note: in included file:
+drivers/gpu/drm/i915/display/intel_lt_phy.c:1935:35: warning: Using plain integer as NULL pointer
+drivers/gpu/drm/i915/display/intel_pps.c: note: in included file:
+drivers/gpu/drm/i915/display/intel_psr.c: note: in included file:
+drivers/gpu/drm/i915/gt/intel_reset.c:1569:12: warning: context imbalance in '_intel_gt_reset_lock' - different lock contexts for basic block
+drivers/gpu/drm/i915/gt/intel_sseu.c:600:17: error: too long token expansion
+drivers/gpu/drm/i915/i915_active.c:1062:16: warning: context imbalance in '__i915_active_fence_set' - different lock contexts for basic block
+drivers/gpu/drm/i915/i915_drm_client.c:92:9: error: incompatible types in comparison expression (different address spaces):
+drivers/gpu/drm/i915/i915_drm_client.c:92:9: error: incompatible types in comparison expression (different address spaces):
+drivers/gpu/drm/i915/i915_drm_client.c:92:9:    expected struct list_head const *list
+drivers/gpu/drm/i915/i915_drm_client.c:92:9:    got struct list_head [noderef] __rcu *pos
+drivers/gpu/drm/i915/i915_drm_client.c:92:9:    struct list_head *
+drivers/gpu/drm/i915/i915_drm_client.c:92:9:    struct list_head *
+drivers/gpu/drm/i915/i915_drm_client.c:92:9:    struct list_head [noderef] __rcu *
+drivers/gpu/drm/i915/i915_drm_client.c:92:9:    struct list_head [noderef] __rcu *
+drivers/gpu/drm/i915/i915_drm_client.c:92:9: warning: incorrect type in argument 1 (different address spaces)
+drivers/gpu/drm/i915/i915_gpu_error.c:692:3: warning: symbol 'guc_hw_reg_state' was not declared. Should it be static?
+drivers/gpu/drm/i915/i915_irq.c:467:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:467:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:475:16: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:475:16: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:480:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:480:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:480:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:518:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:518:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:526:16: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:526:16: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:531:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:531:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:531:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:575:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:575:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:578:15: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:578:15: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:582:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:582:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:589:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:589:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:589:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:589:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/intel_uncore.c:1930:1: warning: context imbalance in 'fwtable_read8' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:1931:1: warning: context imbalance in 'fwtable_read16' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:1932:1: warning: context imbalance in 'fwtable_read32' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:1933:1: warning: context imbalance in 'fwtable_read64' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:1998:1: warning: context imbalance in 'gen6_write8' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:1999:1: warning: context imbalance in 'gen6_write16' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:2000:1: warning: context imbalance in 'gen6_write32' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:2020:1: warning: context imbalance in 'fwtable_write8' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:2021:1: warning: context imbalance in 'fwtable_write16' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:2022:1: warning: context imbalance in 'fwtable_write32' - unexpected unlock
+drivers/gpu/drm/i915/intel_wakeref.c:148:19: warning: context imbalance in 'wakeref_auto_timeout' - unexpected unlock

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



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

* ✓ Xe.CI.BAT: success for drm/i915: dissolve soc/ (rev2)
  2025-11-19 18:52 [PATCH v2 00/13] drm/i915: dissolve soc/ Jani Nikula
                   ` (21 preceding siblings ...)
  2025-11-20 19:36 ` ✗ CI.checksparse: warning " Patchwork
@ 2025-11-20 20:25 ` Patchwork
  2025-11-21  1:27 ` ✗ Xe.CI.Full: failure " Patchwork
  23 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2025-11-20 20:25 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-xe

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

== Series Details ==

Series: drm/i915: dissolve soc/ (rev2)
URL   : https://patchwork.freedesktop.org/series/157792/
State : success

== Summary ==

CI Bug Log - changes from xe-4135-3d718db04a365cc44a3bc81ffa4db7bbd2e645d7_BAT -> xe-pw-157792v2_BAT
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

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

  No changes in participating hosts

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

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

### IGT changes ###

#### Possible fixes ####

  * igt@xe_waitfence@engine:
    - bat-dg2-oem2:       [FAIL][1] ([Intel XE#6519]) -> [PASS][2]
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4135-3d718db04a365cc44a3bc81ffa4db7bbd2e645d7/bat-dg2-oem2/igt@xe_waitfence@engine.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/bat-dg2-oem2/igt@xe_waitfence@engine.html

  * igt@xe_waitfence@reltime:
    - bat-dg2-oem2:       [FAIL][3] ([Intel XE#6520]) -> [PASS][4]
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4135-3d718db04a365cc44a3bc81ffa4db7bbd2e645d7/bat-dg2-oem2/igt@xe_waitfence@reltime.html
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/bat-dg2-oem2/igt@xe_waitfence@reltime.html

  
  [Intel XE#6519]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6519
  [Intel XE#6520]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6520


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

  * Linux: xe-4135-3d718db04a365cc44a3bc81ffa4db7bbd2e645d7 -> xe-pw-157792v2

  IGT_8636: 254cd102396ff95d61f2ebe49fc09128878bf483 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-4135-3d718db04a365cc44a3bc81ffa4db7bbd2e645d7: 3d718db04a365cc44a3bc81ffa4db7bbd2e645d7
  xe-pw-157792v2: 157792v2

== Logs ==

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

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

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

* Re: [PATCH v2 13/13] drm/xe/vga: use the same intel_gmch_vga_set_decode() as i915
  2025-11-19 18:52 ` [PATCH v2 13/13] drm/xe/vga: use the same intel_gmch_vga_set_decode() as i915 Jani Nikula
@ 2025-11-20 22:11   ` Lucas De Marchi
  2025-11-21 10:30     ` Jani Nikula
  0 siblings, 1 reply; 30+ messages in thread
From: Lucas De Marchi @ 2025-11-20 22:11 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx, intel-xe

On Wed, Nov 19, 2025 at 08:52:52PM +0200, Jani Nikula wrote:
>Drop the #ifdef I915, and use the same intel_gmch_vga_set_decode() for
>both i915 and xe.

I hope this doesn't regress our display side on other archs. We are very
close to having display working, but this messing with VGA is likely to
break it.

See "drm/i915/display: Stop touching vga on post enable", which is
needed for xe to use a DG2/BMG with a raspberry pi (+pci/resources
branch + a few other patches).

Lucas De Marchi

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

* ✗ Xe.CI.Full: failure for drm/i915: dissolve soc/ (rev2)
  2025-11-19 18:52 [PATCH v2 00/13] drm/i915: dissolve soc/ Jani Nikula
                   ` (22 preceding siblings ...)
  2025-11-20 20:25 ` ✓ Xe.CI.BAT: success " Patchwork
@ 2025-11-21  1:27 ` Patchwork
  23 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2025-11-21  1:27 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-xe

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

== Series Details ==

Series: drm/i915: dissolve soc/ (rev2)
URL   : https://patchwork.freedesktop.org/series/157792/
State : failure

== Summary ==

CI Bug Log - changes from xe-4135-3d718db04a365cc44a3bc81ffa4db7bbd2e645d7_FULL -> xe-pw-157792v2_FULL
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with xe-pw-157792v2_FULL absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in xe-pw-157792v2_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 (4 -> 4)
------------------------------

  No changes in participating hosts

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@xe_eudebug_online@pagefault-write-stress:
    - shard-dg2-set2:     NOTRUN -> [SKIP][1]
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-dg2-464/igt@xe_eudebug_online@pagefault-write-stress.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@kms_atomic_transition@plane-toggle-modeset-transition:
    - shard-adlp:         [PASS][2] -> [FAIL][3] ([Intel XE#3908]) +1 other test fail
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4135-3d718db04a365cc44a3bc81ffa4db7bbd2e645d7/shard-adlp-2/igt@kms_atomic_transition@plane-toggle-modeset-transition.html
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-adlp-3/igt@kms_atomic_transition@plane-toggle-modeset-transition.html

  * igt@kms_big_fb@y-tiled-32bpp-rotate-0:
    - shard-dg2-set2:     NOTRUN -> [SKIP][4] ([Intel XE#1124])
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-dg2-464/igt@kms_big_fb@y-tiled-32bpp-rotate-0.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-async-flip:
    - shard-adlp:         [PASS][5] -> [DMESG-FAIL][6] ([Intel XE#4543])
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4135-3d718db04a365cc44a3bc81ffa4db7bbd2e645d7/shard-adlp-9/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-adlp-8/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180:
    - shard-adlp:         NOTRUN -> [SKIP][7] ([Intel XE#1124])
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-adlp-8/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180.html

  * igt@kms_bw@connected-linear-tiling-3-displays-2560x1440p:
    - shard-adlp:         NOTRUN -> [SKIP][8] ([Intel XE#2191])
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-adlp-8/igt@kms_bw@connected-linear-tiling-3-displays-2560x1440p.html

  * igt@kms_bw@linear-tiling-2-displays-3840x2160p:
    - shard-dg2-set2:     NOTRUN -> [SKIP][9] ([Intel XE#367])
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-dg2-464/igt@kms_bw@linear-tiling-2-displays-3840x2160p.html

  * igt@kms_bw@linear-tiling-4-displays-3840x2160p:
    - shard-adlp:         NOTRUN -> [SKIP][10] ([Intel XE#367])
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-adlp-8/igt@kms_bw@linear-tiling-4-displays-3840x2160p.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-mtl-rc-ccs:
    - shard-adlp:         NOTRUN -> [SKIP][11] ([Intel XE#455] / [Intel XE#787]) +1 other test skip
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-adlp-8/igt@kms_ccs@crc-primary-basic-4-tiled-mtl-rc-ccs.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-mtl-rc-ccs@pipe-c-hdmi-a-1:
    - shard-adlp:         NOTRUN -> [SKIP][12] ([Intel XE#787]) +2 other tests skip
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-adlp-8/igt@kms_ccs@crc-primary-basic-4-tiled-mtl-rc-ccs@pipe-c-hdmi-a-1.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs:
    - shard-dg2-set2:     NOTRUN -> [SKIP][13] ([Intel XE#3442])
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-dg2-464/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html

  * igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-mc-ccs@pipe-b-dp-4:
    - shard-dg2-set2:     NOTRUN -> [SKIP][14] ([Intel XE#787]) +13 other tests skip
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-dg2-464/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-mc-ccs@pipe-b-dp-4.html

  * igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-mc-ccs@pipe-d-dp-4:
    - shard-dg2-set2:     NOTRUN -> [SKIP][15] ([Intel XE#455] / [Intel XE#787]) +3 other tests skip
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-dg2-464/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-mc-ccs@pipe-d-dp-4.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-bmg-ccs:
    - shard-adlp:         NOTRUN -> [SKIP][16] ([Intel XE#2907])
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-adlp-8/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-bmg-ccs.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-a-hdmi-a-6:
    - shard-dg2-set2:     [PASS][17] -> [INCOMPLETE][18] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#6168])
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4135-3d718db04a365cc44a3bc81ffa4db7bbd2e645d7/shard-dg2-464/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-a-hdmi-a-6.html
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-dg2-466/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-a-hdmi-a-6.html

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

  * igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic:
    - shard-adlp:         NOTRUN -> [SKIP][20] ([Intel XE#309])
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-adlp-8/igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic.html

  * igt@kms_dp_link_training@non-uhbr-mst:
    - shard-dg2-set2:     NOTRUN -> [SKIP][21] ([Intel XE#4354])
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-dg2-464/igt@kms_dp_link_training@non-uhbr-mst.html

  * igt@kms_flip@basic-plain-flip@c-hdmi-a1:
    - shard-adlp:         [PASS][22] -> [DMESG-WARN][23] ([Intel XE#4543]) +1 other test dmesg-warn
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4135-3d718db04a365cc44a3bc81ffa4db7bbd2e645d7/shard-adlp-9/igt@kms_flip@basic-plain-flip@c-hdmi-a1.html
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-adlp-8/igt@kms_flip@basic-plain-flip@c-hdmi-a1.html

  * igt@kms_flip@flip-vs-expired-vblank@a-edp1:
    - shard-lnl:          [PASS][24] -> [FAIL][25] ([Intel XE#301]) +1 other test fail
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4135-3d718db04a365cc44a3bc81ffa4db7bbd2e645d7/shard-lnl-5/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-lnl-2/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-adlp:         [PASS][26] -> [DMESG-WARN][27] ([Intel XE#2953] / [Intel XE#4173]) +3 other tests dmesg-warn
   [26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4135-3d718db04a365cc44a3bc81ffa4db7bbd2e645d7/shard-adlp-1/igt@kms_flip@flip-vs-suspend-interruptible.html
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-adlp-8/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling@pipe-a-valid-mode:
    - shard-dg2-set2:     NOTRUN -> [SKIP][28] ([Intel XE#455]) +2 other tests skip
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-dg2-464/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling@pipe-a-valid-mode.html

  * igt@kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-move:
    - shard-dg2-set2:     NOTRUN -> [SKIP][29] ([Intel XE#651]) +4 other tests skip
   [29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-dg2-464/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-move.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-indfb-pgflip-blt:
    - shard-adlp:         NOTRUN -> [SKIP][30] ([Intel XE#656])
   [30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-adlp-8/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-indfb-pgflip-blt.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-blt:
    - shard-dg2-set2:     NOTRUN -> [SKIP][31] ([Intel XE#653]) +6 other tests skip
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-dg2-464/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-blt.html

  * igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner:
    - shard-dg2-set2:     NOTRUN -> [SKIP][32] ([Intel XE#2925])
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-dg2-464/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html

  * igt@kms_plane_multiple@2x-tiling-yf:
    - shard-dg2-set2:     NOTRUN -> [SKIP][33] ([Intel XE#5021])
   [33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-dg2-464/igt@kms_plane_multiple@2x-tiling-yf.html

  * igt@kms_pm_rpm@dpms-non-lpsp:
    - shard-adlp:         NOTRUN -> [SKIP][34] ([Intel XE#836])
   [34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-adlp-8/igt@kms_pm_rpm@dpms-non-lpsp.html

  * igt@kms_psr@fbc-psr2-sprite-plane-move:
    - shard-dg2-set2:     NOTRUN -> [SKIP][35] ([Intel XE#1406] / [Intel XE#2850] / [Intel XE#929]) +2 other tests skip
   [35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-dg2-464/igt@kms_psr@fbc-psr2-sprite-plane-move.html

  * igt@xe_compute@eu-busy-10s:
    - shard-dg2-set2:     NOTRUN -> [SKIP][36] ([Intel XE#6598])
   [36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-dg2-464/igt@xe_compute@eu-busy-10s.html

  * igt@xe_eudebug@basic-exec-queues-enable:
    - shard-dg2-set2:     NOTRUN -> [SKIP][37] ([Intel XE#4837]) +1 other test skip
   [37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-dg2-464/igt@xe_eudebug@basic-exec-queues-enable.html

  * igt@xe_exec_basic@multigpu-many-execqueues-many-vm-rebind:
    - shard-adlp:         NOTRUN -> [SKIP][38] ([Intel XE#1392] / [Intel XE#5575])
   [38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-adlp-8/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-rebind.html

  * igt@xe_exec_fault_mode@many-execqueues-bindexecqueue-userptr-rebind-imm:
    - shard-dg2-set2:     NOTRUN -> [SKIP][39] ([Intel XE#288]) +3 other tests skip
   [39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-dg2-464/igt@xe_exec_fault_mode@many-execqueues-bindexecqueue-userptr-rebind-imm.html

  * igt@xe_exec_fault_mode@once-userptr-prefetch:
    - shard-adlp:         NOTRUN -> [SKIP][40] ([Intel XE#288] / [Intel XE#5561]) +1 other test skip
   [40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-adlp-8/igt@xe_exec_fault_mode@once-userptr-prefetch.html

  * igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-multi-vma:
    - shard-lnl:          [PASS][41] -> [FAIL][42] ([Intel XE#6353])
   [41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4135-3d718db04a365cc44a3bc81ffa4db7bbd2e645d7/shard-lnl-2/igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-multi-vma.html
   [42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-lnl-4/igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-multi-vma.html

  * igt@xe_exec_system_allocator@process-many-large-new-bo-map-nomemset:
    - shard-adlp:         NOTRUN -> [SKIP][43] ([Intel XE#4915]) +10 other tests skip
   [43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-adlp-8/igt@xe_exec_system_allocator@process-many-large-new-bo-map-nomemset.html

  * igt@xe_exec_system_allocator@threads-many-large-execqueues-malloc-mlock-nomemset:
    - shard-dg2-set2:     NOTRUN -> [SKIP][44] ([Intel XE#4915]) +67 other tests skip
   [44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-dg2-464/igt@xe_exec_system_allocator@threads-many-large-execqueues-malloc-mlock-nomemset.html

  * igt@xe_huc_copy@huc_copy:
    - shard-dg2-set2:     NOTRUN -> [SKIP][45] ([Intel XE#255])
   [45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-dg2-464/igt@xe_huc_copy@huc_copy.html

  * igt@xe_oa@syncs-syncobj-wait-cfg:
    - shard-dg2-set2:     NOTRUN -> [SKIP][46] ([Intel XE#3573])
   [46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-dg2-464/igt@xe_oa@syncs-syncobj-wait-cfg.html

  * igt@xe_pm@s2idle-basic-exec:
    - shard-adlp:         [PASS][47] -> [DMESG-WARN][48] ([Intel XE#2953] / [Intel XE#4173] / [Intel XE#4504]) +1 other test dmesg-warn
   [47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4135-3d718db04a365cc44a3bc81ffa4db7bbd2e645d7/shard-adlp-1/igt@xe_pm@s2idle-basic-exec.html
   [48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-adlp-3/igt@xe_pm@s2idle-basic-exec.html

  * igt@xe_pmu@engine-activity-accuracy-90@engine-drm_xe_engine_class_copy0:
    - shard-lnl:          [PASS][49] -> [FAIL][50] ([Intel XE#6251])
   [49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4135-3d718db04a365cc44a3bc81ffa4db7bbd2e645d7/shard-lnl-1/igt@xe_pmu@engine-activity-accuracy-90@engine-drm_xe_engine_class_copy0.html
   [50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-lnl-5/igt@xe_pmu@engine-activity-accuracy-90@engine-drm_xe_engine_class_copy0.html

  
#### Possible fixes ####

  * igt@kms_async_flips@async-flip-dpms@pipe-c-hdmi-a-1:
    - shard-adlp:         [DMESG-WARN][51] ([Intel XE#4543]) -> [PASS][52] +1 other test pass
   [51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4135-3d718db04a365cc44a3bc81ffa4db7bbd2e645d7/shard-adlp-1/igt@kms_async_flips@async-flip-dpms@pipe-c-hdmi-a-1.html
   [52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-adlp-8/igt@kms_async_flips@async-flip-dpms@pipe-c-hdmi-a-1.html

  * igt@kms_async_flips@async-flip-with-page-flip-events-linear-atomic@pipe-c-edp-1:
    - shard-lnl:          [FAIL][53] ([Intel XE#6054]) -> [PASS][54] +3 other tests pass
   [53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4135-3d718db04a365cc44a3bc81ffa4db7bbd2e645d7/shard-lnl-4/igt@kms_async_flips@async-flip-with-page-flip-events-linear-atomic@pipe-c-edp-1.html
   [54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-lnl-7/igt@kms_async_flips@async-flip-with-page-flip-events-linear-atomic@pipe-c-edp-1.html

  * igt@kms_cursor_edge_walk@256x256-top-bottom:
    - shard-adlp:         [DMESG-WARN][55] ([Intel XE#2953] / [Intel XE#4173]) -> [PASS][56] +7 other tests pass
   [55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4135-3d718db04a365cc44a3bc81ffa4db7bbd2e645d7/shard-adlp-3/igt@kms_cursor_edge_walk@256x256-top-bottom.html
   [56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-adlp-6/igt@kms_cursor_edge_walk@256x256-top-bottom.html

  * igt@xe_exec_basic@multigpu-once-null-defer-bind:
    - shard-dg2-set2:     [INCOMPLETE][57] -> [PASS][58]
   [57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4135-3d718db04a365cc44a3bc81ffa4db7bbd2e645d7/shard-dg2-463/igt@xe_exec_basic@multigpu-once-null-defer-bind.html
   [58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-dg2-464/igt@xe_exec_basic@multigpu-once-null-defer-bind.html

  * igt@xe_oa@non-zero-reason-all:
    - shard-lnl:          [FAIL][59] ([Intel XE#6332]) -> [PASS][60] +1 other test pass
   [59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4135-3d718db04a365cc44a3bc81ffa4db7bbd2e645d7/shard-lnl-3/igt@xe_oa@non-zero-reason-all.html
   [60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-lnl-5/igt@xe_oa@non-zero-reason-all.html

  * igt@xe_pmu@engine-activity-accuracy-90@engine-drm_xe_engine_class_compute0:
    - shard-lnl:          [FAIL][61] ([Intel XE#6251]) -> [PASS][62] +2 other tests pass
   [61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4135-3d718db04a365cc44a3bc81ffa4db7bbd2e645d7/shard-lnl-1/igt@xe_pmu@engine-activity-accuracy-90@engine-drm_xe_engine_class_compute0.html
   [62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-lnl-5/igt@xe_pmu@engine-activity-accuracy-90@engine-drm_xe_engine_class_compute0.html

  
#### Warnings ####

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs:
    - shard-dg2-set2:     [INCOMPLETE][63] ([Intel XE#2705] / [Intel XE#4212] / [Intel XE#4345]) -> [INCOMPLETE][64] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#4345] / [Intel XE#6168])
   [63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4135-3d718db04a365cc44a3bc81ffa4db7bbd2e645d7/shard-dg2-464/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs.html
   [64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-157792v2/shard-dg2-466/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs.html

  
  [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
  [Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
  [Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
  [Intel XE#1727]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1727
  [Intel XE#2191]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2191
  [Intel XE#255]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/255
  [Intel XE#2705]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2705
  [Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
  [Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
  [Intel XE#2907]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2907
  [Intel XE#2925]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2925
  [Intel XE#2953]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2953
  [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#3113]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3113
  [Intel XE#3442]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3442
  [Intel XE#3573]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3573
  [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#3908]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3908
  [Intel XE#4173]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4173
  [Intel XE#4212]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4212
  [Intel XE#4345]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4345
  [Intel XE#4354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4354
  [Intel XE#4504]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4504
  [Intel XE#4543]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4543
  [Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455
  [Intel XE#4837]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4837
  [Intel XE#4915]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4915
  [Intel XE#5021]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5021
  [Intel XE#5561]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5561
  [Intel XE#5575]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5575
  [Intel XE#6054]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6054
  [Intel XE#6168]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6168
  [Intel XE#6251]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6251
  [Intel XE#6332]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6332
  [Intel XE#6353]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6353
  [Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
  [Intel XE#653]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/653
  [Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
  [Intel XE#6598]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6598
  [Intel XE#787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/787
  [Intel XE#836]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/836
  [Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929


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

  * Linux: xe-4135-3d718db04a365cc44a3bc81ffa4db7bbd2e645d7 -> xe-pw-157792v2

  IGT_8636: 254cd102396ff95d61f2ebe49fc09128878bf483 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-4135-3d718db04a365cc44a3bc81ffa4db7bbd2e645d7: 3d718db04a365cc44a3bc81ffa4db7bbd2e645d7
  xe-pw-157792v2: 157792v2

== Logs ==

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

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

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

* Re: [PATCH v2 13/13] drm/xe/vga: use the same intel_gmch_vga_set_decode() as i915
  2025-11-20 22:11   ` Lucas De Marchi
@ 2025-11-21 10:30     ` Jani Nikula
  0 siblings, 0 replies; 30+ messages in thread
From: Jani Nikula @ 2025-11-21 10:30 UTC (permalink / raw)
  To: Lucas De Marchi; +Cc: intel-gfx, intel-xe

On Thu, 20 Nov 2025, Lucas De Marchi <lucas.demarchi@intel.com> wrote:
> On Wed, Nov 19, 2025 at 08:52:52PM +0200, Jani Nikula wrote:
>>Drop the #ifdef I915, and use the same intel_gmch_vga_set_decode() for
>>both i915 and xe.
>
> I hope this doesn't regress our display side on other archs. We are very
> close to having display working, but this messing with VGA is likely to
> break it.
>
> See "drm/i915/display: Stop touching vga on post enable", which is
> needed for xe to use a DG2/BMG with a raspberry pi (+pci/resources
> branch + a few other patches).

I'm feeling confident [1] that the patch at hand does not have similar
issues. This is about VGA arbitration on the PCI bridge, not about
actually poking at VGA registers.

I went ahead and merged the series. If there are any ill effects with
the last patch, we can revert with a low bar.


BR,
Jani.



[1] https://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect


-- 
Jani Nikula, Intel

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

end of thread, other threads:[~2025-11-21 10:30 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-19 18:52 [PATCH v2 00/13] drm/i915: dissolve soc/ Jani Nikula
2025-11-19 18:52 ` [PATCH v2 01/13] drm/i915/edram: extract i915_edram.[ch] for edram detection Jani Nikula
2025-11-19 18:52 ` [PATCH v2 02/13] drm/i915: split out i915_freq.[ch] Jani Nikula
2025-11-19 18:52 ` [PATCH v2 03/13] drm/i915: move intel_dram.[ch] from soc/ to display/ Jani Nikula
2025-11-19 18:52 ` [PATCH v2 04/13] drm/xe: remove MISSING_CASE() from compat i915_utils.h Jani Nikula
2025-11-19 18:52 ` [PATCH v2 05/13] drm/i915/dram: convert to struct intel_display Jani Nikula
2025-11-20  8:31   ` Jani Nikula
2025-11-20 13:59     ` Ville Syrjälä
2025-11-20 16:18   ` [PATCH v3] " Jani Nikula
2025-11-19 18:52 ` [PATCH v2 06/13] drm/i915: move dram_info " Jani Nikula
2025-11-19 18:52 ` [PATCH v2 07/13] drm/i915: move intel_rom.[ch] from soc/ to display/ Jani Nikula
2025-11-19 18:52 ` [PATCH v2 08/13] drm/xe: remove remaining platform checks from compat i915_drv.h Jani Nikula
2025-11-19 18:52 ` [PATCH v2 09/13] drm/i915/gmch: split out i915_gmch.[ch] from soc Jani Nikula
2025-11-19 18:52 ` [PATCH v2 10/13] drm/i915/gmch: switch to use pci_bus_{read, write}_config_word() Jani Nikula
2025-11-19 18:52 ` [PATCH v2 11/13] drm/i915/gmch: convert intel_gmch.c to struct intel_display Jani Nikula
2025-11-19 18:52 ` [PATCH v2 12/13] drm/i915: merge soc/intel_gmch.[ch] to display/intel_vga.c Jani Nikula
2025-11-19 18:52 ` [PATCH v2 13/13] drm/xe/vga: use the same intel_gmch_vga_set_decode() as i915 Jani Nikula
2025-11-20 22:11   ` Lucas De Marchi
2025-11-21 10:30     ` Jani Nikula
2025-11-19 21:45 ` ✗ CI.checkpatch: warning for drm/i915: dissolve soc/ Patchwork
2025-11-19 21:46 ` ✓ CI.KUnit: success " Patchwork
2025-11-19 22:02 ` ✗ CI.checksparse: warning " Patchwork
2025-11-19 22:29 ` ✓ Xe.CI.BAT: success " Patchwork
2025-11-20  3:17 ` ✗ Xe.CI.Full: failure " Patchwork
2025-11-20 16:52 ` [PATCH v2 00/13] " Ville Syrjälä
2025-11-20 19:19 ` ✗ CI.checkpatch: warning for drm/i915: dissolve soc/ (rev2) Patchwork
2025-11-20 19:21 ` ✓ CI.KUnit: success " Patchwork
2025-11-20 19:36 ` ✗ CI.checksparse: warning " Patchwork
2025-11-20 20:25 ` ✓ Xe.CI.BAT: success " Patchwork
2025-11-21  1:27 ` ✗ Xe.CI.Full: failure " Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).