drm/i915/mtl: Add MeteorLake platform info
authorRadhakrishna Sripada <radhakrishna.sripada@intel.com>
Fri, 8 Jul 2022 00:03:34 +0000 (17:03 -0700)
committerMatt Roper <matthew.d.roper@intel.com>
Fri, 8 Jul 2022 20:21:26 +0000 (13:21 -0700)
MTL has Xe_LPD+ display IP (version = 14), MTL graphics IP
(version = 12.70), and Xe_LPM+ media IP (version = 13).

Bspec: 55413
Bspec: 55416
Bspec: 55417
Bspec: 55418
Bspec: 55726
Bspec: 45544
Bspec: 65380

v2: rearrange the fields in pci_info(MattR)

Cc: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
[mattrope: Moved IS_METEORLAKE() higher in header]
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220708000335.2869311-2-radhakrishna.sripada@intel.com
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_pci.c
drivers/gpu/drm/i915/intel_device_info.c
drivers/gpu/drm/i915/intel_device_info.h

index 80d7322..c21906a 100644 (file)
@@ -1069,6 +1069,7 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915,
 #define IS_XEHPSDV(dev_priv) IS_PLATFORM(dev_priv, INTEL_XEHPSDV)
 #define IS_DG2(dev_priv)       IS_PLATFORM(dev_priv, INTEL_DG2)
 #define IS_PONTEVECCHIO(dev_priv) IS_PLATFORM(dev_priv, INTEL_PONTEVECCHIO)
+#define IS_METEORLAKE(dev_priv) IS_PLATFORM(dev_priv, INTEL_METEORLAKE)
 
 #define IS_DG2_G10(dev_priv) \
        IS_SUBPLATFORM(dev_priv, INTEL_DG2, INTEL_SUBPLATFORM_G10)
index 5e51fc2..0569313 100644 (file)
@@ -1111,6 +1111,31 @@ static const struct intel_device_info pvc_info = {
        .require_force_probe = 1,
 };
 
+#define XE_LPDP_FEATURES       \
+       XE_LPD_FEATURES,        \
+       .display.ver = 14,      \
+       .display.has_cdclk_crawl = 1
+
+__maybe_unused
+static const struct intel_device_info mtl_info = {
+       XE_HP_FEATURES,
+       XE_LPDP_FEATURES,
+       /*
+        * Real graphics IP version will be obtained from hardware GMD_ID
+        * register.  Value provided here is just for sanity checking.
+        */
+       .graphics.ver = 12,
+       .graphics.rel = 70,
+       .media.ver = 13,
+       PLATFORM(INTEL_METEORLAKE),
+       .display.has_modular_fia = 1,
+       .has_flat_ccs = 0,
+       .has_snoop = 1,
+       .memory_regions = REGION_SMEM | REGION_STOLEN_LMEM,
+       .platform_engine_mask = BIT(RCS0) | BIT(BCS0) | BIT(CCS0),
+       .require_force_probe = 1,
+};
+
 #undef PLATFORM
 
 /*
index f0bf237..27c3433 100644 (file)
@@ -73,6 +73,7 @@ static const char * const platform_names[] = {
        PLATFORM_NAME(XEHPSDV),
        PLATFORM_NAME(DG2),
        PLATFORM_NAME(PONTEVECCHIO),
+       PLATFORM_NAME(METEORLAKE),
 };
 #undef PLATFORM_NAME
 
index 0834117..68f7c23 100644 (file)
@@ -89,6 +89,7 @@ enum intel_platform {
        INTEL_XEHPSDV,
        INTEL_DG2,
        INTEL_PONTEVECCHIO,
+       INTEL_METEORLAKE,
        INTEL_MAX_PLATFORMS
 };