All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [CI 0/5] Reviewed ADL-P patches
@ 2021-06-05 19:28 Matt Roper
  2021-06-05 19:28 ` [igt-dev] [CI 1/5] lib: sync i915_pciids.h with kernel Matt Roper
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Matt Roper @ 2021-06-05 19:28 UTC (permalink / raw)
  To: igt-dev

For some reason CI keeps trying to apply the series against an older
commit (not the latest master commit), so this series includes one
extra prereq patch (resynchronizing PCI IDs) that's already landed
upstream.

Clint Taylor (1):
  lib/i915/adl-p: Basic ADL-P enabling

Imre Deak (1):
  lib/i915: Add ADL-P plane offset restriction for CCS framebuffers

Matt Roper (3):
  lib: sync i915_pciids.h with kernel
  lib/i915: Split 'gen' into graphics version and display version
  lib/i915: Add intel_display_ver() and use it in display tests/libs

 lib/i915/perf.c                      |   4 +-
 lib/i915/perf.h                      |   2 +-
 lib/i915/perf_data_reader.c          |   6 +-
 lib/i915_pciids.h                    |  23 ++++
 lib/igt_device_scan.c                |   2 +-
 lib/igt_draw.c                       |   6 +-
 lib/igt_fb.c                         |  40 +++++--
 lib/igt_gt.c                         |  10 +-
 lib/intel_chipset.h                  |  10 +-
 lib/intel_device_info.c              | 153 +++++++++++++++++++--------
 tests/i915/gem_exec_store.c          |   4 +-
 tests/i915/i915_pciid.c              |   4 +-
 tests/kms_atomic_transition.c        |   2 +-
 tests/kms_big_fb.c                   |  10 +-
 tests/kms_ccs.c                      |   2 +-
 tests/kms_draw_crc.c                 |   2 +-
 tests/kms_flip_scaled_crc.c          |   2 +-
 tests/kms_flip_tiling.c              |   2 +-
 tests/kms_frontbuffer_tracking.c     |   4 +-
 tests/kms_getfb.c                    |   2 +-
 tests/kms_hdmi_inject.c              |   2 +-
 tests/kms_panel_fitting.c            |   2 +-
 tests/kms_plane.c                    |   2 +-
 tests/kms_plane_lowres.c             |   4 +-
 tests/kms_plane_scaling.c            |   8 +-
 tests/kms_rotation_crc.c             |   8 +-
 tests/kms_universal_plane.c          |  10 +-
 tools/i915-perf/i915_perf_configs.c  |   2 +-
 tools/i915-perf/i915_perf_reader.c   |   5 +-
 tools/i915-perf/i915_perf_recorder.c |   6 +-
 30 files changed, 227 insertions(+), 112 deletions(-)

-- 
2.25.4

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [CI 1/5] lib: sync i915_pciids.h with kernel
  2021-06-05 19:28 [igt-dev] [CI 0/5] Reviewed ADL-P patches Matt Roper
@ 2021-06-05 19:28 ` Matt Roper
  2021-06-05 19:28 ` [igt-dev] [CI 2/5] lib/i915: Split 'gen' into graphics version and display version Matt Roper
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Matt Roper @ 2021-06-05 19:28 UTC (permalink / raw)
  To: igt-dev

This synchronizes with kernel commit

        760759f2cf71 ("drm/i915/adl_p: Add PCI Devices IDs")

to bring in ADL-P PCI IDs as well as a couple more ADL-S IDs.

Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Anusha Srivatsa <anusha.srivatsa@intel.com>
---
 lib/i915_pciids.h | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/lib/i915_pciids.h b/lib/i915_pciids.h
index ebd0dd1c..eee18fa5 100644
--- a/lib/i915_pciids.h
+++ b/lib/i915_pciids.h
@@ -640,9 +640,32 @@
 	INTEL_VGA_DEVICE(0x4681, info), \
 	INTEL_VGA_DEVICE(0x4682, info), \
 	INTEL_VGA_DEVICE(0x4683, info), \
+	INTEL_VGA_DEVICE(0x4688, info), \
+	INTEL_VGA_DEVICE(0x4689, info), \
 	INTEL_VGA_DEVICE(0x4690, info), \
 	INTEL_VGA_DEVICE(0x4691, info), \
 	INTEL_VGA_DEVICE(0x4692, info), \
 	INTEL_VGA_DEVICE(0x4693, info)
 
+/* ADL-P */
+#define INTEL_ADLP_IDS(info) \
+	INTEL_VGA_DEVICE(0x46A0, info), \
+	INTEL_VGA_DEVICE(0x46A1, info), \
+	INTEL_VGA_DEVICE(0x46A2, info), \
+	INTEL_VGA_DEVICE(0x46A3, info), \
+	INTEL_VGA_DEVICE(0x46A6, info), \
+	INTEL_VGA_DEVICE(0x46A8, info), \
+	INTEL_VGA_DEVICE(0x46AA, info), \
+	INTEL_VGA_DEVICE(0x462A, info), \
+	INTEL_VGA_DEVICE(0x4626, info), \
+	INTEL_VGA_DEVICE(0x4628, info), \
+	INTEL_VGA_DEVICE(0x46B0, info), \
+	INTEL_VGA_DEVICE(0x46B1, info), \
+	INTEL_VGA_DEVICE(0x46B2, info), \
+	INTEL_VGA_DEVICE(0x46B3, info), \
+	INTEL_VGA_DEVICE(0x46C0, info), \
+	INTEL_VGA_DEVICE(0x46C1, info), \
+	INTEL_VGA_DEVICE(0x46C2, info), \
+	INTEL_VGA_DEVICE(0x46C3, info)
+
 #endif /* _I915_PCIIDS_H */
-- 
2.25.4

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [CI 2/5] lib/i915: Split 'gen' into graphics version and display version
  2021-06-05 19:28 [igt-dev] [CI 0/5] Reviewed ADL-P patches Matt Roper
  2021-06-05 19:28 ` [igt-dev] [CI 1/5] lib: sync i915_pciids.h with kernel Matt Roper
@ 2021-06-05 19:28 ` Matt Roper
  2021-06-05 19:28 ` [igt-dev] [CI 3/5] lib/i915: Add intel_display_ver() and use it in display tests/libs Matt Roper
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Matt Roper @ 2021-06-05 19:28 UTC (permalink / raw)
  To: igt-dev

Going forward, platforms may have separate architecture versions for
graphics and display and should no longer utilize a single 'gen'
version.

While doing this, let's change the versions to raw version values rather
than BIT(v) as we were doing in the past.  It looks like some of the
existing uses of devinfo->gen were already misinterpreting this field
and failing to pass the value through ffs(), so this change may also fix
some bugs.

Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
---
 lib/i915/perf.c                      |   4 +-
 lib/i915/perf.h                      |   2 +-
 lib/i915/perf_data_reader.c          |   6 +-
 lib/igt_device_scan.c                |   2 +-
 lib/igt_gt.c                         |  10 +-
 lib/intel_chipset.h                  |   7 +-
 lib/intel_device_info.c              | 131 ++++++++++++++++++---------
 tests/i915/gem_exec_store.c          |   4 +-
 tests/i915/i915_pciid.c              |   4 +-
 tools/i915-perf/i915_perf_configs.c  |   2 +-
 tools/i915-perf/i915_perf_reader.c   |   5 +-
 tools/i915-perf/i915_perf_recorder.c |   6 +-
 12 files changed, 114 insertions(+), 69 deletions(-)

diff --git a/lib/i915/perf.c b/lib/i915/perf.c
index 5644a346..9d5ab7a5 100644
--- a/lib/i915/perf.c
+++ b/lib/i915/perf.c
@@ -169,7 +169,7 @@ intel_perf_for_devinfo(uint32_t device_id,
 	 * 2x6 does not have 2 samplers).
 	 */
 	perf->devinfo.devid = device_id;
-	perf->devinfo.gen = devinfo->gen;
+	perf->devinfo.graphics_ver = devinfo->graphics_ver;
 	perf->devinfo.revision = revision;
 	perf->devinfo.timestamp_frequency = timestamp_frequency;
 	perf->devinfo.gt_min_freq = gt_min_freq;
@@ -183,7 +183,7 @@ intel_perf_for_devinfo(uint32_t device_id,
 	/* On Gen11+ the equations from the xml files expect an 8bits
 	 * mask per subslice, versus only 3bits on prior Gens.
 	 */
-	bits_per_subslice = devinfo->gen >= 11 ? 8 : 3;
+	bits_per_subslice = devinfo->graphics_ver >= 11 ? 8 : 3;
 	for (uint32_t s = 0; s < topology->max_slices; s++) {
 		if (!slice_available(topology, s))
 			continue;
diff --git a/lib/i915/perf.h b/lib/i915/perf.h
index 6a39be92..d2429c47 100644
--- a/lib/i915/perf.h
+++ b/lib/i915/perf.h
@@ -50,7 +50,7 @@ struct intel_perf_devinfo {
 	 * Their values are build up from the topology fields.
 	 */
 	uint32_t devid;
-	uint32_t gen;
+	uint32_t graphics_ver;
 	uint32_t revision;
 	uint64_t timestamp_frequency;
 	uint64_t gt_min_freq;
diff --git a/lib/i915/perf_data_reader.c b/lib/i915/perf_data_reader.c
index 79cb50f4..e69189ac 100644
--- a/lib/i915/perf_data_reader.c
+++ b/lib/i915/perf_data_reader.c
@@ -45,11 +45,11 @@ oa_report_ctx_is_valid(const struct intel_perf_devinfo *devinfo,
 {
 	const uint32_t *report = (const uint32_t *) _report;
 
-	if (devinfo->gen < 8) {
+	if (devinfo->graphics_ver < 8) {
 		return false; /* TODO */
-	} else if (devinfo->gen == 8) {
+	} else if (devinfo->graphics_ver == 8) {
 		return report[0] & (1ul << 25);
-	} else if (devinfo->gen > 8) {
+	} else if (devinfo->graphics_ver > 8) {
 		return report[0] & (1ul << 16);
 	}
 
diff --git a/lib/igt_device_scan.c b/lib/igt_device_scan.c
index 2b7d9a3a..3c23fe0e 100644
--- a/lib/igt_device_scan.c
+++ b/lib/igt_device_scan.c
@@ -208,7 +208,7 @@ static char *devname_intel(uint16_t vendor, uint16_t device)
 		if (devname) {
 			devname[0] = toupper(devname[0]);
 			igt_assert(asprintf(&s, "Intel %s (Gen%u)", devname,
-					    ffs(info->gen)) != -1);
+					    info->graphics_ver) != -1);
 			free(devname);
 		}
 	}
diff --git a/lib/igt_gt.c b/lib/igt_gt.c
index f601d726..b1415178 100644
--- a/lib/igt_gt.c
+++ b/lib/igt_gt.c
@@ -552,18 +552,18 @@ bool gem_class_can_store_dword(int fd, int class)
 {
 	uint16_t devid = intel_get_drm_devid(fd);
 	const struct intel_device_info *info = intel_get_device_info(devid);
-	const int gen = ffs(info->gen);
+	const int ver = info->graphics_ver;
 
-	if (info->gen == 0) /* unknown, assume it just works */
+	if (ver == 0) /* unknown, assume it just works */
 		return true;
 
-	if (gen <= 2) /* requires physical addresses */
+	if (ver <= 2) /* requires physical addresses */
 		return false;
 
-	if (gen == 3 && (info->is_grantsdale || info->is_alviso))
+	if (ver == 3 && (info->is_grantsdale || info->is_alviso))
 		return false; /* only supports physical addresses */
 
-	if (gen == 6 && class == I915_ENGINE_CLASS_VIDEO)
+	if (ver == 6 && class == I915_ENGINE_CLASS_VIDEO)
 		return false; /* broken, unbelievably broken */
 
 	if (info->is_broadwater)
diff --git a/lib/intel_chipset.h b/lib/intel_chipset.h
index f766021e..8e81ffa9 100644
--- a/lib/intel_chipset.h
+++ b/lib/intel_chipset.h
@@ -37,7 +37,8 @@ struct pci_device *intel_get_pci_device(void);
 uint32_t intel_get_drm_devid(int fd);
 
 struct intel_device_info {
-	unsigned gen;
+	unsigned graphics_ver;
+	unsigned display_ver;
 	unsigned gt; /* 0 if unknown */
 	bool is_mobile : 1;
 	bool is_whitney : 1;
@@ -179,8 +180,8 @@ void intel_check_pch(void);
 #define IS_DG1(devid)		(intel_get_device_info(devid)->is_dg1)
 #define IS_ALDERLAKE_S(devid)	(intel_get_device_info(devid)->is_alderlake_s)
 
-#define IS_GEN(devid, x)	(intel_get_device_info(devid)->gen & (1u << ((x)-1)))
-#define AT_LEAST_GEN(devid, x)	(intel_get_device_info(devid)->gen & -(1u << ((x)-1)))
+#define IS_GEN(devid, x)	(intel_get_device_info(devid)->graphics_ver == x)
+#define AT_LEAST_GEN(devid, x)	(intel_get_device_info(devid)->graphics_ver >= x)
 
 #define IS_GEN2(devid)		IS_GEN(devid, 2)
 #define IS_GEN3(devid)		IS_GEN(devid, 3)
diff --git a/lib/intel_device_info.c b/lib/intel_device_info.c
index e07fdf6f..4ab236e4 100644
--- a/lib/intel_device_info.c
+++ b/lib/intel_device_info.c
@@ -4,154 +4,180 @@
 #include <strings.h> /* ffs() */
 
 static const struct intel_device_info intel_generic_info = {
-	.gen = 0,
+	.graphics_ver = 0,
+	.display_ver = 0,
 };
 
 static const struct intel_device_info intel_i810_info = {
-	.gen = BIT(0),
+	.graphics_ver = 1,
+	.display_ver = 1,
 	.is_whitney = true,
 	.codename = "solano" /* 815 == "whitney" ? or vice versa? */
 };
 
 static const struct intel_device_info intel_i815_info = {
-	.gen = BIT(0),
+	.graphics_ver = 1,
+	.display_ver = 1,
 	.is_whitney = true,
 	.codename = "whitney"
 };
 
 static const struct intel_device_info intel_i830_info = {
-	.gen = BIT(1),
+	.graphics_ver = 2,
+	.display_ver = 2,
 	.is_almador = true,
 	.codename = "almador"
 };
 static const struct intel_device_info intel_i845_info = {
-	.gen = BIT(1),
+	.graphics_ver = 2,
+	.display_ver = 2,
 	.is_brookdale = true,
 	.codename = "brookdale"
 };
 static const struct intel_device_info intel_i855_info = {
-	.gen = BIT(1),
+	.graphics_ver = 2,
+	.display_ver = 2,
 	.is_mobile = true,
 	.is_montara = true,
 	.codename = "montara"
 };
 static const struct intel_device_info intel_i865_info = {
-	.gen = BIT(1),
+	.graphics_ver = 2,
+	.display_ver = 2,
 	.is_springdale = true,
 	.codename = "spingdale"
 };
 
 static const struct intel_device_info intel_i915_info = {
-	.gen = BIT(2),
+	.graphics_ver = 3,
+	.display_ver = 3,
 	.is_grantsdale = true,
 	.codename = "grantsdale"
 };
 static const struct intel_device_info intel_i915m_info = {
-	.gen = BIT(2),
+	.graphics_ver = 3,
+	.display_ver = 3,
 	.is_mobile = true,
 	.is_alviso = true,
 	.codename = "alviso"
 };
 static const struct intel_device_info intel_i945_info = {
-	.gen = BIT(2),
+	.graphics_ver = 3,
+	.display_ver = 3,
 	.is_lakeport = true,
 	.codename = "lakeport"
 };
 static const struct intel_device_info intel_i945m_info = {
-	.gen = BIT(2),
+	.graphics_ver = 3,
+	.display_ver = 3,
 	.is_mobile = true,
 	.is_calistoga = true,
 	.codename = "calistoga"
 };
 
 static const struct intel_device_info intel_g33_info = {
-	.gen = BIT(2),
+	.graphics_ver = 3,
+	.display_ver = 3,
 	.is_bearlake = true,
 	.codename = "bearlake"
 };
 
 static const struct intel_device_info intel_pineview_g_info = {
-	.gen = BIT(2),
+	.graphics_ver = 3,
+	.display_ver = 3,
 	.is_pineview = true,
 	.codename = "pineview"
 };
 
 static const struct intel_device_info intel_pineview_m_info = {
-	.gen = BIT(2),
+	.graphics_ver = 3,
+	.display_ver = 3,
 	.is_mobile = true,
 	.is_pineview = true,
 	.codename = "pineview"
 };
 
 static const struct intel_device_info intel_i965_info = {
-	.gen = BIT(3),
+	.graphics_ver = 4,
+	.display_ver = 4,
 	.is_broadwater = true,
 	.codename = "broadwater"
 };
 
 static const struct intel_device_info intel_i965m_info = {
-	.gen = BIT(3),
+	.graphics_ver = 4,
+	.display_ver = 4,
 	.is_mobile = true,
 	.is_crestline = true,
 	.codename = "crestline"
 };
 
 static const struct intel_device_info intel_g45_info = {
-	.gen = BIT(3),
+	.graphics_ver = 4,
+	.display_ver = 4,
 	.is_eaglelake = true,
 	.codename = "eaglelake"
 };
 static const struct intel_device_info intel_gm45_info = {
-	.gen = BIT(3),
+	.graphics_ver = 4,
+	.display_ver = 4,
 	.is_mobile = true,
 	.is_cantiga = true,
 	.codename = "cantiga"
 };
 
 static const struct intel_device_info intel_ironlake_info = {
-	.gen = BIT(4),
+	.graphics_ver = 5,
+	.display_ver = 5,
 	.is_ironlake = true,
 	.codename = "ironlake" /* clarkdale? */
 };
 static const struct intel_device_info intel_ironlake_m_info = {
-	.gen = BIT(4),
+	.graphics_ver = 5,
+	.display_ver = 5,
 	.is_mobile = true,
 	.is_arrandale = true,
 	.codename = "arrandale"
 };
 
 static const struct intel_device_info intel_sandybridge_info = {
-	.gen = BIT(5),
+	.graphics_ver = 6,
+	.display_ver = 6,
 	.is_sandybridge = true,
 	.codename = "sandybridge"
 };
 static const struct intel_device_info intel_sandybridge_m_info = {
-	.gen = BIT(5),
+	.graphics_ver = 6,
+	.display_ver = 6,
 	.is_mobile = true,
 	.is_sandybridge = true,
 	.codename = "sandybridge"
 };
 
 static const struct intel_device_info intel_ivybridge_info = {
-	.gen = BIT(6),
+	.graphics_ver = 7,
+	.display_ver = 7,
 	.is_ivybridge = true,
 	.codename = "ivybridge"
 };
 static const struct intel_device_info intel_ivybridge_m_info = {
-	.gen = BIT(6),
+	.graphics_ver = 7,
+	.display_ver = 7,
 	.is_mobile = true,
 	.is_ivybridge = true,
 	.codename = "ivybridge"
 };
 
 static const struct intel_device_info intel_valleyview_info = {
-	.gen = BIT(6),
+	.graphics_ver = 7,
+	.display_ver = 7,
 	.is_valleyview = true,
 	.codename = "valleyview"
 };
 
 #define HASWELL_FIELDS \
-	.gen = BIT(6), \
+	.graphics_ver = 7, \
+	.display_ver = 7, \
 	.is_haswell = true, \
 	.codename = "haswell"
 
@@ -171,7 +197,8 @@ static const struct intel_device_info intel_haswell_gt3_info = {
 };
 
 #define BROADWELL_FIELDS \
-	.gen = BIT(7), \
+	.graphics_ver = 8, \
+	.display_ver = 8, \
 	.is_broadwell = true, \
 	.codename = "broadwell"
 
@@ -195,13 +222,15 @@ static const struct intel_device_info intel_broadwell_unknown_info = {
 };
 
 static const struct intel_device_info intel_cherryview_info = {
-	.gen = BIT(7),
+	.graphics_ver = 8,
+	.display_ver = 8,
 	.is_cherryview = true,
 	.codename = "cherryview"
 };
 
 #define SKYLAKE_FIELDS \
-	.gen = BIT(8), \
+	.graphics_ver = 9, \
+	.display_ver = 9, \
 	.codename = "skylake", \
 	.is_skylake = true
 
@@ -226,13 +255,15 @@ static const struct intel_device_info intel_skylake_gt4_info = {
 };
 
 static const struct intel_device_info intel_broxton_info = {
-	.gen = BIT(8),
+	.graphics_ver = 9,
+	.display_ver = 9,
 	.is_broxton = true,
 	.codename = "broxton"
 };
 
 #define KABYLAKE_FIELDS \
-	.gen = BIT(8), \
+	.graphics_ver = 9, \
+	.display_ver = 9, \
 	.is_kabylake = true, \
 	.codename = "kabylake"
 
@@ -257,13 +288,15 @@ static const struct intel_device_info intel_kabylake_gt4_info = {
 };
 
 static const struct intel_device_info intel_geminilake_info = {
-	.gen = BIT(8),
+	.graphics_ver = 9,
+	.display_ver = 9,
 	.is_geminilake = true,
 	.codename = "geminilake"
 };
 
 #define COFFEELAKE_FIELDS \
-	.gen = BIT(8), \
+	.graphics_ver = 9, \
+	.display_ver = 9, \
 	.is_coffeelake = true, \
 	.codename = "coffeelake"
 
@@ -283,7 +316,8 @@ static const struct intel_device_info intel_coffeelake_gt3_info = {
 };
 
 #define COMETLAKE_FIELDS \
-	.gen = BIT(8), \
+	.graphics_ver = 9, \
+	.display_ver = 9, \
 	.is_cometlake = true, \
 	.codename = "cometlake"
 
@@ -298,57 +332,66 @@ static const struct intel_device_info intel_cometlake_gt2_info = {
 };
 
 static const struct intel_device_info intel_cannonlake_info = {
-	.gen = BIT(9),
+	.graphics_ver = 10,
+	.display_ver = 10,
 	.is_cannonlake = true,
 	.codename = "cannonlake"
 };
 
 static const struct intel_device_info intel_icelake_info = {
-	.gen = BIT(10),
+	.graphics_ver = 11,
+	.display_ver = 11,
 	.is_icelake = true,
 	.codename = "icelake"
 };
 
 static const struct intel_device_info intel_elkhartlake_info = {
-	.gen = BIT(10),
+	.graphics_ver = 11,
+	.display_ver = 11,
 	.is_elkhartlake = true,
 	.codename = "elkhartlake"
 };
 
 static const struct intel_device_info intel_jasperlake_info = {
-	.gen = BIT(10),
+	.graphics_ver = 11,
+	.display_ver = 11,
 	.is_jasperlake = true,
 	.codename = "jasperlake"
 };
 
 static const struct intel_device_info intel_tigerlake_gt1_info = {
-	.gen = BIT(11),
+	.graphics_ver = 12,
+	.display_ver = 12,
 	.is_tigerlake = true,
 	.codename = "tigerlake",
 	.gt = 1,
 };
 
 static const struct intel_device_info intel_tigerlake_gt2_info = {
-	.gen = BIT(11),
+	.graphics_ver = 12,
+	.display_ver = 12,
 	.is_tigerlake = true,
 	.codename = "tigerlake",
 	.gt = 2,
 };
 
 static const struct intel_device_info intel_rocketlake_info = {
-	.gen = BIT(11),
+	.graphics_ver = 12,
+	.display_ver = 12,
 	.is_rocketlake = true,
 	.codename = "rocketlake"
 };
 
 static const struct intel_device_info intel_dg1_info = {
-	.gen = BIT(11),
+	.graphics_ver = 12,
+	.display_ver = 12,
 	.is_dg1 = true,
 	.codename = "dg1"
 };
 
 static const struct intel_device_info intel_alderlake_s_info = {
-	.gen = BIT(11),
+	.graphics_ver = 12,
+	.display_ver = 12,
 	.is_alderlake_s = true,
 	.codename = "alderlake_s"
 };
@@ -490,5 +533,5 @@ out:
  */
 unsigned intel_gen(uint16_t devid)
 {
-	return ffs(intel_get_device_info(devid)->gen) ?: -1u;
+	return intel_get_device_info(devid)->graphics_ver ?: -1u;
 }
diff --git a/tests/i915/gem_exec_store.c b/tests/i915/gem_exec_store.c
index 99ffc9ab..2df0b27f 100644
--- a/tests/i915/gem_exec_store.c
+++ b/tests/i915/gem_exec_store.c
@@ -310,7 +310,7 @@ static int print_welcome(int fd)
 	int err;
 
 	igt_info("Running on %s (pci-id %04x, gen %d)\n",
-		 info->codename, devid, ffs(info->gen));
+		 info->codename, devid, info->graphics_ver);
 	igt_info("Can use MI_STORE_DWORD(virtual)? %s\n",
 		 gem_can_store_dword(fd, 0) ? "yes" : "no");
 
@@ -320,7 +320,7 @@ static int print_welcome(int fd)
 	igt_info("GPU operation? %s [errno=%d]\n",
 		 err == 0 ? "yes" : "no", err);
 
-	return ffs(info->gen);
+	return info->graphics_ver;
 }
 
 #define test_each_engine(T, i915, e)  \
diff --git a/tests/i915/i915_pciid.c b/tests/i915/i915_pciid.c
index fe4db405..7de44ff2 100644
--- a/tests/i915/i915_pciid.c
+++ b/tests/i915/i915_pciid.c
@@ -49,13 +49,13 @@ static bool has_known_intel_chipset(int fd)
 		return false;
 	}
 
-	if (!info->gen) {
+	if (!info->graphics_ver) {
 		igt_warn("Unknown PCI-ID: %04x\n", devid);
 		return false;
 	}
 
 	igt_info("PCI-ID: %#04x, gen %d, %s\n",
-		 devid, ffs(info->gen), info->codename);
+		 devid, info->graphics_ver, info->codename);
 	return true;
 }
 
diff --git a/tools/i915-perf/i915_perf_configs.c b/tools/i915-perf/i915_perf_configs.c
index 2a0283c9..bce3bd0f 100644
--- a/tools/i915-perf/i915_perf_configs.c
+++ b/tools/i915-perf/i915_perf_configs.c
@@ -228,7 +228,7 @@ main(int argc, char *argv[])
 		return EXIT_FAILURE;
 	}
 
-	fprintf(stdout, "Device gen=%i gt=%i\n", devinfo->gen, devinfo->gt);
+	fprintf(stdout, "Device graphics_ver=%i gt=%i\n", devinfo->graphics_ver, devinfo->gt);
 
 	perf = intel_perf_for_fd(drm_fd);
 	if (!perf) {
diff --git a/tools/i915-perf/i915_perf_reader.c b/tools/i915-perf/i915_perf_reader.c
index 3e4a6530..e51f5a5d 100644
--- a/tools/i915-perf/i915_perf_reader.c
+++ b/tools/i915-perf/i915_perf_reader.c
@@ -220,8 +220,9 @@ main(int argc, char *argv[])
 
 	devinfo = intel_get_device_info(reader.devinfo.devid);
 
-	fprintf(stdout, "Recorded on device=0x%x(%s) gen=%i\n",
-		reader.devinfo.devid, devinfo->codename, reader.devinfo.gen);
+	fprintf(stdout, "Recorded on device=0x%x(%s) graphics_ver=%i\n",
+		reader.devinfo.devid, devinfo->codename,
+		reader.devinfo.graphics_ver);
 	fprintf(stdout, "Metric used : %s (%s) uuid=%s\n",
 		reader.metric_set->symbol_name, reader.metric_set->name,
 		reader.metric_set->hw_config_guid);
diff --git a/tools/i915-perf/i915_perf_recorder.c b/tools/i915-perf/i915_perf_recorder.c
index 3a8ee46a..00195290 100644
--- a/tools/i915-perf/i915_perf_recorder.c
+++ b/tools/i915-perf/i915_perf_recorder.c
@@ -317,14 +317,14 @@ get_device_timestamp_frequency(const struct intel_device_info *devinfo, int drm_
 	if (perf_ioctl(drm_fd, DRM_IOCTL_I915_GETPARAM, &gp) == 0)
 		return timestamp_frequency;
 
-	if (devinfo->gen > 9) {
+	if (devinfo->graphics_ver > 9) {
 		fprintf(stderr, "Unable to query timestamp frequency from i915, please update kernel.\n");
 		return 0;
 	}
 
 	fprintf(stderr, "Warning: unable to query timestamp frequency from i915, guessing values...\n");
 
-	if (devinfo->gen <= 8)
+	if (devinfo->graphics_ver <= 8)
 		return 12500000;
 	if (devinfo->is_broxton)
 		return 19200000;
@@ -878,7 +878,7 @@ main(int argc, char *argv[])
 	}
 
 	fprintf(stdout, "Device name=%s gen=%i gt=%i id=0x%x\n",
-		ctx.devinfo->codename, ctx.devinfo->gen, ctx.devinfo->gt, ctx.devid);
+		ctx.devinfo->codename, ctx.devinfo->graphics_ver, ctx.devinfo->gt, ctx.devid);
 
 	ctx.topology = get_topology(ctx.drm_fd, &ctx.topology_size);
 	if (!ctx.topology) {
-- 
2.25.4

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [CI 3/5] lib/i915: Add intel_display_ver() and use it in display tests/libs
  2021-06-05 19:28 [igt-dev] [CI 0/5] Reviewed ADL-P patches Matt Roper
  2021-06-05 19:28 ` [igt-dev] [CI 1/5] lib: sync i915_pciids.h with kernel Matt Roper
  2021-06-05 19:28 ` [igt-dev] [CI 2/5] lib/i915: Split 'gen' into graphics version and display version Matt Roper
@ 2021-06-05 19:28 ` Matt Roper
  2021-06-05 19:28 ` [igt-dev] [CI 4/5] lib/i915/adl-p: Basic ADL-P enabling Matt Roper
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Matt Roper @ 2021-06-05 19:28 UTC (permalink / raw)
  To: igt-dev

Display code should check the display version of the platform rather
than the graphics version; on some platforms these versions won't be the
same.

v2:
 - Continue to use intel_gen() in draw_rect_blt() since it's checking
   the version of the blitter engine (graphics) rather than the display
   version.  (Jose)
 - Rename some gen -> display_ver in kms_universal_plane too.  (Jose)

Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
---
 lib/igt_draw.c                   |  6 +++---
 lib/igt_fb.c                     | 14 +++++++-------
 lib/intel_chipset.h              |  1 +
 lib/intel_device_info.c          | 14 ++++++++++++++
 tests/kms_atomic_transition.c    |  2 +-
 tests/kms_big_fb.c               | 10 +++++-----
 tests/kms_ccs.c                  |  2 +-
 tests/kms_draw_crc.c             |  2 +-
 tests/kms_flip_scaled_crc.c      |  2 +-
 tests/kms_flip_tiling.c          |  2 +-
 tests/kms_frontbuffer_tracking.c |  4 ++--
 tests/kms_getfb.c                |  2 +-
 tests/kms_hdmi_inject.c          |  2 +-
 tests/kms_panel_fitting.c        |  2 +-
 tests/kms_plane.c                |  2 +-
 tests/kms_plane_lowres.c         |  4 ++--
 tests/kms_plane_scaling.c        |  8 ++++----
 tests/kms_rotation_crc.c         |  8 ++++----
 tests/kms_universal_plane.c      | 10 +++++-----
 19 files changed, 56 insertions(+), 41 deletions(-)

diff --git a/lib/igt_draw.c b/lib/igt_draw.c
index a3144b50..da1d39fc 100644
--- a/lib/igt_draw.c
+++ b/lib/igt_draw.c
@@ -339,7 +339,7 @@ static void draw_rect_mmap_cpu(int fd, struct buf_data *buf, struct rect *rect,
 
 	/* We didn't implement suport for the older tiling methods yet. */
 	if (tiling != I915_TILING_NONE)
-		igt_require(intel_gen(intel_get_drm_devid(fd)) >= 5);
+		igt_require(intel_display_ver(intel_get_drm_devid(fd)) >= 5);
 
 	ptr = gem_mmap__cpu(fd, buf->handle, 0, PAGE_ALIGN(buf->size),
 			    PROT_READ | PROT_WRITE);
@@ -389,7 +389,7 @@ static void draw_rect_mmap_wc(int fd, struct buf_data *buf, struct rect *rect,
 
 	/* We didn't implement suport for the older tiling methods yet. */
 	if (tiling != I915_TILING_NONE)
-		igt_require(intel_gen(intel_get_drm_devid(fd)) >= 5);
+		igt_require(intel_display_ver(intel_get_drm_devid(fd)) >= 5);
 
 	ptr = gem_mmap__wc(fd, buf->handle, 0, PAGE_ALIGN(buf->size),
 			   PROT_READ | PROT_WRITE);
@@ -440,7 +440,7 @@ static void draw_rect_pwrite_tiled(int fd, struct buf_data *buf,
 	int pixels_written = 0;
 
 	/* We didn't implement suport for the older tiling methods yet. */
-	igt_require(intel_gen(intel_get_drm_devid(fd)) >= 5);
+	igt_require(intel_display_ver(intel_get_drm_devid(fd)) >= 5);
 
 	pixel_size = buf->bpp / 8;
 	tmp_size = sizeof(tmp) / pixel_size;
diff --git a/lib/igt_fb.c b/lib/igt_fb.c
index 3e6841fd..585ede38 100644
--- a/lib/igt_fb.c
+++ b/lib/igt_fb.c
@@ -408,7 +408,7 @@ void igt_get_fb_tile_size(int fd, uint64_t modifier, int fb_bpp,
 		break;
 	case LOCAL_I915_FORMAT_MOD_X_TILED:
 		igt_require_intel(fd);
-		if (intel_gen(intel_get_drm_devid(fd)) == 2) {
+		if (intel_display_ver(intel_get_drm_devid(fd)) == 2) {
 			*width_ret = 128;
 			*height_ret = 16;
 		} else {
@@ -422,7 +422,7 @@ void igt_get_fb_tile_size(int fd, uint64_t modifier, int fb_bpp,
 	case LOCAL_I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC:
 	case LOCAL_I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS:
 		igt_require_intel(fd);
-		if (intel_gen(intel_get_drm_devid(fd)) == 2) {
+		if (intel_display_ver(intel_get_drm_devid(fd)) == 2) {
 			*width_ret = 128;
 			*height_ret = 16;
 		} else if (IS_915(intel_get_drm_devid(fd))) {
@@ -693,7 +693,7 @@ static uint32_t calc_plane_stride(struct igt_fb *fb, int plane)
 
 	if (fb->modifier != LOCAL_DRM_FORMAT_MOD_NONE &&
 	    is_i915_device(fb->fd) &&
-	    intel_gen(intel_get_drm_devid(fb->fd)) <= 3) {
+	    intel_display_ver(intel_get_drm_devid(fb->fd)) <= 3) {
 		uint32_t stride;
 
 		/* Round the tiling up to the next power-of-two and the region
@@ -758,7 +758,7 @@ static uint64_t calc_plane_size(struct igt_fb *fb, int plane)
 {
 	if (fb->modifier != LOCAL_DRM_FORMAT_MOD_NONE &&
 	    is_i915_device(fb->fd) &&
-	    intel_gen(intel_get_drm_devid(fb->fd)) <= 3) {
+	    intel_display_ver(intel_get_drm_devid(fb->fd)) <= 3) {
 		uint64_t min_size = (uint64_t) fb->strides[plane] *
 			fb->plane_height[plane];
 		uint64_t size;
@@ -2118,12 +2118,12 @@ struct fb_blit_upload {
 
 static bool fast_blit_ok(const struct igt_fb *fb)
 {
-	int gen = intel_gen(intel_get_drm_devid(fb->fd));
+	int ver = intel_display_ver(intel_get_drm_devid(fb->fd));
 
-	if (gen < 9)
+	if (ver < 9)
 		return false;
 
-	if (gen < 12)
+	if (ver < 12)
 		return true;
 
 	return fb->modifier != I915_FORMAT_MOD_X_TILED;
diff --git a/lib/intel_chipset.h b/lib/intel_chipset.h
index 8e81ffa9..87b3bbc4 100644
--- a/lib/intel_chipset.h
+++ b/lib/intel_chipset.h
@@ -84,6 +84,7 @@ struct intel_device_info {
 const struct intel_device_info *intel_get_device_info(uint16_t devid) __attribute__((pure));
 
 unsigned intel_gen(uint16_t devid) __attribute__((pure));
+unsigned intel_display_ver(uint16_t devid) __attribute__((pure));
 
 extern enum pch_type intel_pch;
 
diff --git a/lib/intel_device_info.c b/lib/intel_device_info.c
index 4ab236e4..0c09f5cd 100644
--- a/lib/intel_device_info.c
+++ b/lib/intel_device_info.c
@@ -535,3 +535,17 @@ unsigned intel_gen(uint16_t devid)
 {
 	return intel_get_device_info(devid)->graphics_ver ?: -1u;
 }
+
+/**
+ * intel_display_ver:
+ * @devid: pci device id
+ *
+ * Computes the Intel GFX display version for the given device id.
+ *
+ * Returns:
+ * The display version on successful lookup, -1u on failure.
+ */
+unsigned intel_display_ver(uint16_t devid)
+{
+	return intel_get_device_info(devid)->display_ver ?: -1u;
+}
diff --git a/tests/kms_atomic_transition.c b/tests/kms_atomic_transition.c
index d8085ef3..f4131071 100644
--- a/tests/kms_atomic_transition.c
+++ b/tests/kms_atomic_transition.c
@@ -141,7 +141,7 @@ static bool skip_plane(data_t *data, igt_plane_t *plane)
 	if (plane->type == DRM_PLANE_TYPE_CURSOR)
 		return false;
 
-	if (intel_gen(intel_get_drm_devid(data->drm_fd)) < 11)
+	if (intel_display_ver(intel_get_drm_devid(data->drm_fd)) < 11)
 		return false;
 
 	/*
diff --git a/tests/kms_big_fb.c b/tests/kms_big_fb.c
index b35727a0..81bf0542 100644
--- a/tests/kms_big_fb.c
+++ b/tests/kms_big_fb.c
@@ -153,7 +153,7 @@ static bool size_ok(data_t *data, uint64_t size)
 	 * The kernel limits scanout to the
 	 * mappable portion of ggtt on gmch platforms.
 	 */
-	if ((intel_gen(data->devid) < 5 ||
+	if ((intel_display_ver(data->devid) < 5 ||
 	     IS_VALLEYVIEW(data->devid) ||
 	     IS_CHERRYVIEW(data->devid)) &&
 	    size > data->mappable_size / 2)
@@ -182,7 +182,7 @@ static void max_fb_size(data_t *data, int *width, int *height,
 	*height = data->max_fb_height;
 
 	/* max fence stride is only 8k bytes on gen3 */
-	if (intel_gen(data->devid) < 4 &&
+	if (intel_display_ver(data->devid) < 4 &&
 	    format == DRM_FORMAT_XRGB8888)
 		*width = min(*width, 8192 / 4);
 
@@ -553,7 +553,7 @@ test_addfb(data_t *data)
 	 * max fb size of 4k pixels, hence we can't test
 	 * with 32bpp and must use 16bpp instead.
 	 */
-	if (intel_gen(data->devid) == 3)
+	if (intel_display_ver(data->devid) == 3)
 		format = DRM_FORMAT_RGB565;
 	else
 		format = DRM_FORMAT_XRGB8888;
@@ -570,7 +570,7 @@ test_addfb(data_t *data)
 	bo = gem_create(data->drm_fd, size);
 	igt_require(bo);
 
-	if (intel_gen(data->devid) < 4)
+	if (intel_display_ver(data->devid) < 4)
 		gem_set_tiling(data->drm_fd, bo,
 			       igt_fb_mod_to_tiling(data->modifier), strides[0]);
 
@@ -660,7 +660,7 @@ igt_main
 		 * On gen2 we could use either, but let's go for the
 		 * blitter there as well.
 		 */
-		if (intel_gen(data.devid) >= 4)
+		if (intel_display_ver(data.devid) >= 4)
 			data.render_copy = igt_get_render_copyfunc(data.devid);
 
 		data.bops = buf_ops_create(data.drm_fd);
diff --git a/tests/kms_ccs.c b/tests/kms_ccs.c
index 01e3b979..a3eac1f8 100644
--- a/tests/kms_ccs.c
+++ b/tests/kms_ccs.c
@@ -573,7 +573,7 @@ igt_main_args("cs:", NULL, help_str, opt_handler, &data)
 	igt_fixture {
 		data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
 
-		igt_require(intel_gen(intel_get_drm_devid(data.drm_fd)) >= 9);
+		igt_require(intel_display_ver(intel_get_drm_devid(data.drm_fd)) >= 9);
 		kmstest_set_vt_graphics_mode();
 		igt_require_pipe_crc(data.drm_fd);
 
diff --git a/tests/kms_draw_crc.c b/tests/kms_draw_crc.c
index e1fdcef6..dcda2e04 100644
--- a/tests/kms_draw_crc.c
+++ b/tests/kms_draw_crc.c
@@ -245,7 +245,7 @@ static void fill_fb_subtest(void)
 	get_fill_crc(LOCAL_I915_FORMAT_MOD_X_TILED, &crc);
 	igt_assert_crc_equal(&crc, &base_crc);
 
-	if (intel_gen(intel_get_drm_devid(drm_fd)) >= 9) {
+	if (intel_display_ver(intel_get_drm_devid(drm_fd)) >= 9) {
 		get_fill_crc(LOCAL_I915_FORMAT_MOD_Y_TILED, &crc);
 		igt_assert_crc_equal(&crc, &base_crc);
 	}
diff --git a/tests/kms_flip_scaled_crc.c b/tests/kms_flip_scaled_crc.c
index bb796caf..d81ad352 100644
--- a/tests/kms_flip_scaled_crc.c
+++ b/tests/kms_flip_scaled_crc.c
@@ -261,7 +261,7 @@ igt_main
 
 	igt_fixture {
 		data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
-		data.gen = intel_gen(intel_get_drm_devid(data.drm_fd));
+		data.gen = intel_display_ver(intel_get_drm_devid(data.drm_fd));
 		igt_require(data.gen >= 9);
 		igt_display_require(&data.display, data.drm_fd);
 		igt_require(data.display.is_atomic);
diff --git a/tests/kms_flip_tiling.c b/tests/kms_flip_tiling.c
index 09e99580..573cc337 100644
--- a/tests/kms_flip_tiling.c
+++ b/tests/kms_flip_tiling.c
@@ -155,7 +155,7 @@ igt_main
 {
 	igt_fixture {
 		data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
-		data.gen = intel_gen(intel_get_drm_devid(data.drm_fd));
+		data.gen = intel_display_ver(intel_get_drm_devid(data.drm_fd));
 
 		data.testformat = DRM_FORMAT_XRGB8888;
 
diff --git a/tests/kms_frontbuffer_tracking.c b/tests/kms_frontbuffer_tracking.c
index 906caa4c..97902c08 100644
--- a/tests/kms_frontbuffer_tracking.c
+++ b/tests/kms_frontbuffer_tracking.c
@@ -2647,7 +2647,7 @@ static void scaledprimary_subtest(const struct test_mode *t)
 	struct igt_fb new_fb, *old_fb;
 	struct modeset_params *params = pick_params(t);
 	struct fb_region *reg = &params->primary;
-	int gen = intel_gen(intel_get_drm_devid(drm.fd));
+	int gen = intel_display_ver(intel_get_drm_devid(drm.fd));
 	int src_y_upscale = ALIGN(reg->h / 4, 4);
 
 	igt_require_f(gen >= 9,
@@ -2831,7 +2831,7 @@ static void farfromfence_subtest(const struct test_mode *t)
 	struct draw_pattern_info *pattern = &pattern1;
 	struct fb_region *target;
 	int max_height, assertions = 0;
-	int gen = intel_gen(intel_get_drm_devid(drm.fd));
+	int gen = intel_display_ver(intel_get_drm_devid(drm.fd));
 
 	igt_skip_on(t->method == IGT_DRAW_MMAP_GTT &&
 		    !gem_has_mappable_ggtt(drm.fd));
diff --git a/tests/kms_getfb.c b/tests/kms_getfb.c
index 917b57bb..14be74d6 100644
--- a/tests/kms_getfb.c
+++ b/tests/kms_getfb.c
@@ -92,7 +92,7 @@ static void get_ccs_fb(int fd, struct drm_mode_fb_cmd2 *ret)
 	igt_require(has_addfb2_iface(fd));
 	igt_require_intel(fd);
 
-	if ((intel_gen(intel_get_drm_devid(fd))) >= 12) {
+	if ((intel_display_ver(intel_get_drm_devid(fd))) >= 12) {
 		add.modifier[0] = I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS;
 		add.modifier[1] = I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS;
 
diff --git a/tests/kms_hdmi_inject.c b/tests/kms_hdmi_inject.c
index 1769df08..b47b8a39 100644
--- a/tests/kms_hdmi_inject.c
+++ b/tests/kms_hdmi_inject.c
@@ -87,7 +87,7 @@ hdmi_inject_4k(int drm_fd, drmModeConnector *connector)
 	devid = intel_get_drm_devid(drm_fd);
 
 	/* 4K requires at least HSW */
-	igt_require(IS_HASWELL(devid) || intel_gen(devid) >= 8);
+	igt_require(IS_HASWELL(devid) || intel_display_ver(devid) >= 8);
 
 	edid = igt_kms_get_4k_edid();
 	kmstest_force_edid(drm_fd, connector, edid);
diff --git a/tests/kms_panel_fitting.c b/tests/kms_panel_fitting.c
index 1623f34e..3e42d148 100644
--- a/tests/kms_panel_fitting.c
+++ b/tests/kms_panel_fitting.c
@@ -243,7 +243,7 @@ static void test_atomic_fastset(data_t *data)
 		if (stat("/sys/module/i915/parameters/fastboot", &sb) == 0)
 			igt_set_module_param_int(data->drm_fd, "fastboot", 1);
 
-		igt_require(intel_gen(intel_get_drm_devid(display->drm_fd)) >= 5);
+		igt_require(intel_display_ver(intel_get_drm_devid(display->drm_fd)) >= 5);
 	}
 
 	igt_require(display->is_atomic);
diff --git a/tests/kms_plane.c b/tests/kms_plane.c
index d7cbe892..ba419bbd 100644
--- a/tests/kms_plane.c
+++ b/tests/kms_plane.c
@@ -999,7 +999,7 @@ static bool skip_plane(data_t *data, igt_plane_t *plane)
 	if (plane->type == DRM_PLANE_TYPE_CURSOR)
 		return false;
 
-	if (intel_gen(intel_get_drm_devid(data->drm_fd)) < 11)
+	if (intel_display_ver(intel_get_drm_devid(data->drm_fd)) < 11)
 		return false;
 
 	/*
diff --git a/tests/kms_plane_lowres.c b/tests/kms_plane_lowres.c
index a4def89f..7fd02180 100644
--- a/tests/kms_plane_lowres.c
+++ b/tests/kms_plane_lowres.c
@@ -80,14 +80,14 @@ static igt_plane_t *first_sdr_plane(igt_output_t *output, uint32_t devid)
 {
         int index;
 
-        index = intel_gen(devid) <= 9 ? 0 : SDR_PLANE_BASE;
+        index = intel_display_ver(devid) <= 9 ? 0 : SDR_PLANE_BASE;
 
         return igt_output_get_plane(output, index);
 }
 
 static bool is_sdr_plane(const igt_plane_t *plane, uint32_t devid)
 {
-        if (intel_gen(devid) <= 9)
+        if (intel_display_ver(devid) <= 9)
                 return true;
 
         return plane->index >= SDR_PLANE_BASE;
diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
index 7464b5bd..2aa46ac8 100644
--- a/tests/kms_plane_scaling.c
+++ b/tests/kms_plane_scaling.c
@@ -52,9 +52,9 @@ static int get_num_scalers(data_t* d, enum pipe pipe)
 	if (!is_i915_device(d->drm_fd))
 		return 1;
 
-	igt_require(intel_gen(d->devid) >= 9);
+	igt_require(intel_display_ver(d->devid) >= 9);
 
-	if (intel_gen(d->devid) >= 10)
+	if (intel_display_ver(d->devid) >= 10)
 		return 2;
 	else if (pipe != PIPE_C)
 		return 2;
@@ -167,7 +167,7 @@ static bool can_rotate(data_t *d, unsigned format, uint64_t tiling,
 
 	switch (format) {
 	case DRM_FORMAT_RGB565:
-		if (intel_gen(d->devid) >= 11)
+		if (intel_display_ver(d->devid) >= 11)
 			break;
 		/* fall through */
 	case DRM_FORMAT_C8:
@@ -198,7 +198,7 @@ static bool can_scale(data_t *d, unsigned format)
 	case DRM_FORMAT_XBGR16161616F:
 	case DRM_FORMAT_ARGB16161616F:
 	case DRM_FORMAT_ABGR16161616F:
-		if (intel_gen(d->devid) >= 11)
+		if (intel_display_ver(d->devid) >= 11)
 			return true;
 		/* fall through */
 	case DRM_FORMAT_C8:
diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c
index bcbb9bdc..20556c82 100644
--- a/tests/kms_rotation_crc.c
+++ b/tests/kms_rotation_crc.c
@@ -517,7 +517,7 @@ static void test_plane_rotation(data_t *data, int plane_type, bool test_bad_form
 			/* Only support partial covering primary plane on gen9+ */
 			if (is_amdgpu_device(data->gfx_fd) ||
 				(plane_type == DRM_PLANE_TYPE_PRIMARY &&
-			    intel_gen(intel_get_drm_devid(data->gfx_fd)) < 9)) {
+			    intel_display_ver(intel_get_drm_devid(data->gfx_fd)) < 9)) {
 				if (i != rectangle)
 					continue;
 				else
@@ -730,12 +730,12 @@ static void test_multi_plane_rotation(data_t *data, enum pipe pipe)
 						 */
 						if (p[0].format == DRM_FORMAT_RGB565 &&
 						     (planeconfigs[i].rotation & (IGT_ROTATION_90 | IGT_ROTATION_270))
-						     && intel_gen(data->devid) < 11)
+						     && intel_display_ver(data->devid) < 11)
 							continue;
 
 						if (p[1].format == DRM_FORMAT_RGB565 &&
 						     (planeconfigs[j].rotation & (IGT_ROTATION_90 | IGT_ROTATION_270))
-						     && intel_gen(data->devid) < 11)
+						     && intel_display_ver(data->devid) < 11)
 							continue;
 						/*
 						 * if using packed formats crc's will be
@@ -1024,7 +1024,7 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 		data.gfx_fd = drm_open_driver_master(DRIVER_INTEL | DRIVER_AMDGPU);
 		if (is_i915_device(data.gfx_fd)) {
 			data.devid = intel_get_drm_devid(data.gfx_fd);
-			gen = intel_gen(data.devid);
+			gen = intel_display_ver(data.devid);
 		}
 
 		kmstest_set_vt_graphics_mode();
diff --git a/tests/kms_universal_plane.c b/tests/kms_universal_plane.c
index aae3fc52..4366dd4d 100644
--- a/tests/kms_universal_plane.c
+++ b/tests/kms_universal_plane.c
@@ -32,7 +32,7 @@
 typedef struct {
 	int drm_fd;
 	igt_display_t display;
-	int gen;
+	int display_ver;
 } data_t;
 
 typedef struct {
@@ -383,7 +383,7 @@ sanity_test_pipe(data_t *data, enum pipe pipe, igt_output_t *output)
 	 * gen9+).
 	 */
 	igt_plane_set_fb(primary, &test.undersized_fb);
-	expect = (data->gen < 9) ? -EINVAL : 0;
+	expect = (data->display_ver < 9) ? -EINVAL : 0;
 	igt_assert(igt_display_try_commit2(&data->display, COMMIT_UNIVERSAL) == expect);
 
 	/* Same as above, but different plane positioning. */
@@ -393,7 +393,7 @@ sanity_test_pipe(data_t *data, enum pipe pipe, igt_output_t *output)
 	igt_plane_set_position(primary, 0, 0);
 
 	/* Try to use universal plane API to scale down (should fail on pre-gen9) */
-	expect = (data->gen < 9) ? -ERANGE : 0;
+	expect = (data->display_ver < 9) ? -ERANGE : 0;
 	igt_assert(drmModeSetPlane(data->drm_fd, primary->drm_plane->plane_id,
 				   output->config.crtc->crtc_id,
 				   test.oversized_fb.fb_id, 0,
@@ -704,7 +704,7 @@ gen9_test_pipe(data_t *data, enum pipe pipe, igt_output_t *output)
 
 	int ret = 0;
 
-	igt_skip_on(data->gen < 9);
+	igt_skip_on(data->display_ver < 9);
 	igt_require_pipe(&data->display, pipe);
 
 	igt_output_set_pipe(output, pipe);
@@ -798,7 +798,7 @@ igt_main
 
 	igt_fixture {
 		data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
-		data.gen = intel_gen(intel_get_drm_devid(data.drm_fd));
+		data.display_ver = intel_display_ver(intel_get_drm_devid(data.drm_fd));
 
 		kmstest_set_vt_graphics_mode();
 
-- 
2.25.4

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [CI 4/5] lib/i915/adl-p: Basic ADL-P enabling
  2021-06-05 19:28 [igt-dev] [CI 0/5] Reviewed ADL-P patches Matt Roper
                   ` (2 preceding siblings ...)
  2021-06-05 19:28 ` [igt-dev] [CI 3/5] lib/i915: Add intel_display_ver() and use it in display tests/libs Matt Roper
@ 2021-06-05 19:28 ` Matt Roper
  2021-06-05 19:28 ` [igt-dev] [CI 5/5] lib/i915: Add ADL-P plane offset restriction for CCS framebuffers Matt Roper
  2021-06-05 20:15 ` [igt-dev] ✗ Fi.CI.BAT: failure for Reviewed ADL-P patches Patchwork
  5 siblings, 0 replies; 7+ messages in thread
From: Matt Roper @ 2021-06-05 19:28 UTC (permalink / raw)
  To: igt-dev

From: Clint Taylor <clinton.a.taylor@intel.com>

Cc: Caz Yokoyama <caz.yokoyama@intel.com>
Cc: Mika Kahola <mika.kahola@intel.com>
Cc: Swati Sharma <swati2.sharma@intel.com>
Cc: Juha-Pekka Heikkilä <juha-pekka.heikkila@intel.com>
Signed-off-by: Clint Taylor <clinton.a.taylor@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
---
 lib/intel_chipset.h     | 2 ++
 lib/intel_device_info.c | 8 ++++++++
 2 files changed, 10 insertions(+)

diff --git a/lib/intel_chipset.h b/lib/intel_chipset.h
index 87b3bbc4..2b795527 100644
--- a/lib/intel_chipset.h
+++ b/lib/intel_chipset.h
@@ -78,6 +78,7 @@ struct intel_device_info {
 	bool is_rocketlake : 1;
 	bool is_dg1 : 1;
 	bool is_alderlake_s : 1;
+	bool is_alderlake_p : 1;
 	const char *codename;
 };
 
@@ -180,6 +181,7 @@ void intel_check_pch(void);
 #define IS_ROCKETLAKE(devid)	(intel_get_device_info(devid)->is_rocketlake)
 #define IS_DG1(devid)		(intel_get_device_info(devid)->is_dg1)
 #define IS_ALDERLAKE_S(devid)	(intel_get_device_info(devid)->is_alderlake_s)
+#define IS_ALDERLAKE_P(devid)	(intel_get_device_info(devid)->is_alderlake_p)
 
 #define IS_GEN(devid, x)	(intel_get_device_info(devid)->graphics_ver == x)
 #define AT_LEAST_GEN(devid, x)	(intel_get_device_info(devid)->graphics_ver >= x)
diff --git a/lib/intel_device_info.c b/lib/intel_device_info.c
index 0c09f5cd..07338957 100644
--- a/lib/intel_device_info.c
+++ b/lib/intel_device_info.c
@@ -396,6 +396,13 @@ static const struct intel_device_info intel_alderlake_s_info = {
 	.codename = "alderlake_s"
 };
 
+static const struct intel_device_info intel_alderlake_p_info = {
+	.graphics_ver = 12,
+	.display_ver = 13,
+	.is_alderlake_p = true,
+	.codename = "alderlake_p"
+};
+
 static const struct pci_id_match intel_device_match[] = {
 	INTEL_I810_IDS(&intel_i810_info),
 	INTEL_I815_IDS(&intel_i815_info),
@@ -487,6 +494,7 @@ static const struct pci_id_match intel_device_match[] = {
 	INTEL_DG1_IDS(&intel_dg1_info),
 
 	INTEL_ADLS_IDS(&intel_alderlake_s_info),
+	INTEL_ADLP_IDS(&intel_alderlake_p_info),
 
 	INTEL_VGA_DEVICE(PCI_MATCH_ANY, &intel_generic_info),
 };
-- 
2.25.4

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [CI 5/5] lib/i915: Add ADL-P plane offset restriction for CCS framebuffers
  2021-06-05 19:28 [igt-dev] [CI 0/5] Reviewed ADL-P patches Matt Roper
                   ` (3 preceding siblings ...)
  2021-06-05 19:28 ` [igt-dev] [CI 4/5] lib/i915/adl-p: Basic ADL-P enabling Matt Roper
@ 2021-06-05 19:28 ` Matt Roper
  2021-06-05 20:15 ` [igt-dev] ✗ Fi.CI.BAT: failure for Reviewed ADL-P patches Patchwork
  5 siblings, 0 replies; 7+ messages in thread
From: Matt Roper @ 2021-06-05 19:28 UTC (permalink / raw)
  To: igt-dev

From: Imre Deak <imre.deak@intel.com>

All DPT FB plane offsets must be 2MB-aligned. The kernel takes care of
aligning the offset for non-CCS framebuffers.  Make sure that the
allocated CCS FB layout meets the alignment requirement.

Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
---
 lib/igt_fb.c | 26 ++++++++++++++++++++++++--
 1 file changed, 24 insertions(+), 2 deletions(-)

diff --git a/lib/igt_fb.c b/lib/igt_fb.c
index 585ede38..94df0314 100644
--- a/lib/igt_fb.c
+++ b/lib/igt_fb.c
@@ -788,11 +788,23 @@ static uint64_t calc_plane_size(struct igt_fb *fb, int plane)
 		return (uint64_t) fb->strides[plane] *
 			ALIGN(fb->plane_height[plane], tile_height);
 	} else if (is_gen12_ccs_plane(fb, plane)) {
+		uint64_t size;
+
 		/* The AUX CCS surface must be page aligned */
-		return (uint64_t)fb->strides[plane] *
+		size = (uint64_t)fb->strides[plane] *
 			ALIGN(fb->plane_height[plane], 64);
+
+		/*
+		 * On ADL_P CCS color planes must be 2MB aligned, until remapping
+		 * support is added for CCS FBs.
+		 */
+		if (IS_ALDERLAKE_P(intel_get_drm_devid(fb->fd)))
+			size = ALIGN(size, 2 * 1024 * 1024);
+
+		return size;
 	} else {
 		unsigned int tile_width, tile_height;
+		uint64_t size;
 
 		igt_get_fb_tile_size(fb->fd, fb->modifier, fb->plane_bpp[plane],
 				     &tile_width, &tile_height);
@@ -801,8 +813,18 @@ static uint64_t calc_plane_size(struct igt_fb *fb, int plane)
 		if (is_gen12_ccs_modifier(fb->modifier))
 			tile_height *= 4;
 
-		return (uint64_t) fb->strides[plane] *
+		size = (uint64_t)fb->strides[plane] *
 			ALIGN(fb->plane_height[plane], tile_height);
+
+		/*
+		 * On ADL_P CCS color planes must be 2MB aligned, until remapping
+		 * support is added for CCS FBs.
+		 */
+		if (IS_ALDERLAKE_P(intel_get_drm_devid(fb->fd)) &&
+		    is_ccs_modifier(fb->modifier))
+			size = ALIGN(size, 2 * 1024 * 1024);
+
+		return size;
 	}
 }
 
-- 
2.25.4

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✗ Fi.CI.BAT: failure for Reviewed ADL-P patches
  2021-06-05 19:28 [igt-dev] [CI 0/5] Reviewed ADL-P patches Matt Roper
                   ` (4 preceding siblings ...)
  2021-06-05 19:28 ` [igt-dev] [CI 5/5] lib/i915: Add ADL-P plane offset restriction for CCS framebuffers Matt Roper
@ 2021-06-05 20:15 ` Patchwork
  5 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2021-06-05 20:15 UTC (permalink / raw)
  To: Matt Roper; +Cc: igt-dev


[-- Attachment #1.1: Type: text/plain, Size: 6110 bytes --]

== Series Details ==

Series: Reviewed ADL-P patches
URL   : https://patchwork.freedesktop.org/series/91063/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_10178 -> IGTPW_5888
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_5888 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_5888, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5888/index.html

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

  Here are the unknown changes that may have been introduced in IGTPW_5888:

### IGT changes ###

#### Possible regressions ####

  * igt@i915_selftest@live@evict:
    - fi-kbl-soraka:      [PASS][1] -> [DMESG-WARN][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10178/fi-kbl-soraka/igt@i915_selftest@live@evict.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5888/fi-kbl-soraka/igt@i915_selftest@live@evict.html

  
#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@i915_selftest@live@requests:
    - {fi-tgl-dsi}:       [PASS][3] -> [DMESG-WARN][4]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10178/fi-tgl-dsi/igt@i915_selftest@live@requests.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5888/fi-tgl-dsi/igt@i915_selftest@live@requests.html

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

  Here are the changes found in IGTPW_5888 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@core_hotunplug@unbind-rebind:
    - fi-bdw-5557u:       NOTRUN -> [WARN][5] ([i915#2283])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5888/fi-bdw-5557u/igt@core_hotunplug@unbind-rebind.html

  * igt@i915_selftest@live@execlists:
    - fi-bdw-5557u:       NOTRUN -> [DMESG-FAIL][6] ([i915#3462])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5888/fi-bdw-5557u/igt@i915_selftest@live@execlists.html

  * igt@kms_chamelium@dp-crc-fast:
    - fi-bdw-5557u:       NOTRUN -> [SKIP][7] ([fdo#109271] / [fdo#111827]) +8 similar issues
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5888/fi-bdw-5557u/igt@kms_chamelium@dp-crc-fast.html

  * igt@kms_frontbuffer_tracking@basic:
    - fi-icl-u2:          [PASS][8] -> [FAIL][9] ([i915#49])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10178/fi-icl-u2/igt@kms_frontbuffer_tracking@basic.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5888/fi-icl-u2/igt@kms_frontbuffer_tracking@basic.html

  * igt@kms_psr@cursor_plane_move:
    - fi-bdw-5557u:       NOTRUN -> [SKIP][10] ([fdo#109271]) +9 similar issues
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5888/fi-bdw-5557u/igt@kms_psr@cursor_plane_move.html

  
#### Warnings ####

  * igt@i915_selftest@live@execlists:
    - fi-bsw-nick:        [INCOMPLETE][11] ([i915#2782] / [i915#2940] / [i915#3462]) -> [DMESG-FAIL][12] ([i915#3462])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10178/fi-bsw-nick/igt@i915_selftest@live@execlists.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5888/fi-bsw-nick/igt@i915_selftest@live@execlists.html

  * igt@runner@aborted:
    - fi-skl-6600u:       [FAIL][13] ([i915#1436] / [i915#3363]) -> [FAIL][14] ([i915#1436] / [i915#2426] / [i915#3363])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10178/fi-skl-6600u/igt@runner@aborted.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5888/fi-skl-6600u/igt@runner@aborted.html
    - fi-glk-dsi:         [FAIL][15] ([i915#3363] / [k.org#202321]) -> [FAIL][16] ([i915#2426] / [i915#3363] / [k.org#202321])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10178/fi-glk-dsi/igt@runner@aborted.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5888/fi-glk-dsi/igt@runner@aborted.html
    - fi-bdw-5557u:       [FAIL][17] ([i915#1602] / [i915#2029]) -> [FAIL][18] ([i915#2426] / [i915#3462])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10178/fi-bdw-5557u/igt@runner@aborted.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5888/fi-bdw-5557u/igt@runner@aborted.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#1436]: https://gitlab.freedesktop.org/drm/intel/issues/1436
  [i915#1602]: https://gitlab.freedesktop.org/drm/intel/issues/1602
  [i915#2029]: https://gitlab.freedesktop.org/drm/intel/issues/2029
  [i915#2283]: https://gitlab.freedesktop.org/drm/intel/issues/2283
  [i915#2426]: https://gitlab.freedesktop.org/drm/intel/issues/2426
  [i915#2782]: https://gitlab.freedesktop.org/drm/intel/issues/2782
  [i915#2867]: https://gitlab.freedesktop.org/drm/intel/issues/2867
  [i915#2940]: https://gitlab.freedesktop.org/drm/intel/issues/2940
  [i915#3363]: https://gitlab.freedesktop.org/drm/intel/issues/3363
  [i915#3462]: https://gitlab.freedesktop.org/drm/intel/issues/3462
  [i915#49]: https://gitlab.freedesktop.org/drm/intel/issues/49
  [k.org#202321]: https://bugzilla.kernel.org/show_bug.cgi?id=202321


Participating hosts (46 -> 39)
------------------------------

  Missing    (7): fi-ilk-m540 fi-hsw-4200u fi-bsw-cyan bat-adlp-4 fi-dg1-1 fi-bdw-samus bat-jsl-1 


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

  * CI: CI-20190529 -> None
  * IGT: IGT_6098 -> IGTPW_5888

  CI-20190529: 20190529
  CI_DRM_10178: 12b3209e2fec5f9bf3851955f1cd397851ef122b @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_5888: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5888/index.html
  IGT_6098: 1fbc1e7d602f96a7f4e2b95057eef994656b8e74 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5888/index.html

[-- Attachment #1.2: Type: text/html, Size: 7617 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

end of thread, other threads:[~2021-06-05 20:15 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-05 19:28 [igt-dev] [CI 0/5] Reviewed ADL-P patches Matt Roper
2021-06-05 19:28 ` [igt-dev] [CI 1/5] lib: sync i915_pciids.h with kernel Matt Roper
2021-06-05 19:28 ` [igt-dev] [CI 2/5] lib/i915: Split 'gen' into graphics version and display version Matt Roper
2021-06-05 19:28 ` [igt-dev] [CI 3/5] lib/i915: Add intel_display_ver() and use it in display tests/libs Matt Roper
2021-06-05 19:28 ` [igt-dev] [CI 4/5] lib/i915/adl-p: Basic ADL-P enabling Matt Roper
2021-06-05 19:28 ` [igt-dev] [CI 5/5] lib/i915: Add ADL-P plane offset restriction for CCS framebuffers Matt Roper
2021-06-05 20:15 ` [igt-dev] ✗ Fi.CI.BAT: failure for Reviewed ADL-P patches Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.