drm/i915/xelpd: Define plane capabilities
authorMatt Roper <matthew.d.roper@intel.com>
Wed, 12 May 2021 04:21:39 +0000 (21:21 -0700)
committerMatt Roper <matthew.d.roper@intel.com>
Wed, 12 May 2021 23:56:42 +0000 (16:56 -0700)
XE_LPD's plane support is identical to RKL and ADL-S --- 5 universal + 1
cursor with NV12 UV support on planes 1-3 and NV12 Y support on planes
4-5.

v2:
 - Drop the extra 90/270 rotation check in skl_plane_check_fb(); the DRM
   property code will already prevent userspace from passing us values
   that weren't advertised.  (Lucas)

Bspec: 53657
Bspec: 49251
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210512042144.2089071-3-matthew.d.roper@intel.com
drivers/gpu/drm/i915/display/skl_universal_plane.c
drivers/gpu/drm/i915/i915_irq.c
drivers/gpu/drm/i915/intel_device_info.c

index 8588b70..d51a22d 100644 (file)
@@ -268,7 +268,7 @@ int skl_format_to_fourcc(int format, bool rgb_order, bool alpha)
 
 static u8 icl_nv12_y_plane_mask(struct drm_i915_private *i915)
 {
-       if (HAS_D12_PLANE_MINIMIZATION(i915))
+       if (DISPLAY_VER(i915) >= 13 || HAS_D12_PLANE_MINIMIZATION(i915))
                return BIT(PLANE_SPRITE2) | BIT(PLANE_SPRITE3);
        else
                return BIT(PLANE_SPRITE4) | BIT(PLANE_SPRITE5);
@@ -2094,9 +2094,12 @@ skl_universal_plane_create(struct drm_i915_private *dev_priv,
        if (ret)
                goto fail;
 
-       supported_rotations =
-               DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_90 |
-               DRM_MODE_ROTATE_180 | DRM_MODE_ROTATE_270;
+       if (DISPLAY_VER(dev_priv) >= 13)
+               supported_rotations = DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_180;
+       else
+               supported_rotations =
+                       DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_90 |
+                       DRM_MODE_ROTATE_180 | DRM_MODE_ROTATE_270;
 
        if (DISPLAY_VER(dev_priv) >= 11 || IS_CANNONLAKE(dev_priv))
                supported_rotations |= DRM_MODE_REFLECT_X;
index 26a5474..d4611c6 100644 (file)
@@ -2309,7 +2309,7 @@ static u32 gen8_de_port_aux_mask(struct drm_i915_private *dev_priv)
 
 static u32 gen8_de_pipe_fault_mask(struct drm_i915_private *dev_priv)
 {
-       if (HAS_D12_PLANE_MINIMIZATION(dev_priv))
+       if (DISPLAY_VER(dev_priv) >= 13 || HAS_D12_PLANE_MINIMIZATION(dev_priv))
                return RKL_DE_PIPE_IRQ_FAULT_ERRORS;
        else if (DISPLAY_VER(dev_priv) >= 11)
                return GEN11_DE_PIPE_IRQ_FAULT_ERRORS;
index 3b975ce..8cb58a2 100644 (file)
@@ -268,7 +268,7 @@ void intel_device_info_runtime_init(struct drm_i915_private *dev_priv)
 
        BUILD_BUG_ON(BITS_PER_TYPE(intel_engine_mask_t) < I915_NUM_ENGINES);
 
-       if (HAS_D12_PLANE_MINIMIZATION(dev_priv))
+       if (DISPLAY_VER(dev_priv) >= 13 || HAS_D12_PLANE_MINIMIZATION(dev_priv))
                for_each_pipe(dev_priv, pipe)
                        runtime->num_sprites[pipe] = 4;
        else if (INTEL_GEN(dev_priv) >= 11)