Message ID | 20210128192413.1715802-5-matthew.d.roper@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Preliminary Display13 support | expand |
On Thu, Jan 28, 2021 at 11:23:59AM -0800, Matt Roper wrote: >Display13's plane support is identical to RKL --- 5 universal + 1 cursor >with NV12 UV support on planes 1-3 and NV12 Y support on planes 4-5. > >Bspec: 53657 >Bspec: 49251 >Cc: Lucas De Marchi <lucas.demarchi@intel.com> >Signed-off-by: Matt Roper <matthew.d.roper@intel.com> >--- > drivers/gpu/drm/i915/display/intel_sprite.c | 16 ++++++++++++---- > drivers/gpu/drm/i915/i915_irq.c | 2 +- > drivers/gpu/drm/i915/intel_device_info.c | 2 +- > 3 files changed, 14 insertions(+), 6 deletions(-) > >diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c b/drivers/gpu/drm/i915/display/intel_sprite.c >index ec931a08ff28..81bb5eb1cd15 100644 >--- a/drivers/gpu/drm/i915/display/intel_sprite.c >+++ b/drivers/gpu/drm/i915/display/intel_sprite.c >@@ -382,7 +382,7 @@ int intel_plane_check_src_coordinates(struct intel_plane_state *plane_state) > > static u8 icl_nv12_y_plane_mask(struct drm_i915_private *i915) > { >- if (HAS_D12_PLANE_MINIMIZATION(i915)) >+ if (HAS_DISPLAY13(i915) || HAS_D12_PLANE_MINIMIZATION(i915)) > return BIT(PLANE_SPRITE2) | BIT(PLANE_SPRITE3); > else > return BIT(PLANE_SPRITE4) | BIT(PLANE_SPRITE5); >@@ -2322,6 +2322,11 @@ static int skl_plane_check_fb(const struct intel_crtc_state *crtc_state, > } > > if (drm_rotation_90_or_270(rotation)) { >+ if (HAS_DISPLAY13(dev_priv)) { >+ DRM_DEBUG_KMS("90/270 rotation not supported on this platform\n"); >+ return -EINVAL; >+ } >+ these are already forbidden in skl_universal_plane_create(), I don't think we need the additional check here, do we? with that removed or explained Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com> Lucas De Marchi > if (fb->modifier != I915_FORMAT_MOD_Y_TILED && > fb->modifier != I915_FORMAT_MOD_Yf_TILED) { > drm_dbg_kms(&dev_priv->drm, >@@ -3338,9 +3343,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 (HAS_DISPLAY13(dev_priv)) >+ 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 (INTEL_GEN(dev_priv) >= 10) > supported_rotations |= DRM_MODE_REFLECT_X; >diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c >index 407b42706a14..bb4fad71c429 100644 >--- a/drivers/gpu/drm/i915/i915_irq.c >+++ b/drivers/gpu/drm/i915/i915_irq.c >@@ -2290,7 +2290,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 (HAS_DISPLAY13(dev_priv) || HAS_D12_PLANE_MINIMIZATION(dev_priv)) > return RKL_DE_PIPE_IRQ_FAULT_ERRORS; > else if (INTEL_GEN(dev_priv) >= 11) > return GEN11_DE_PIPE_IRQ_FAULT_ERRORS; >diff --git a/drivers/gpu/drm/i915/intel_device_info.c b/drivers/gpu/drm/i915/intel_device_info.c >index 92ad3e7d1f6f..200d4eceaa4e 100644 >--- a/drivers/gpu/drm/i915/intel_device_info.c >+++ b/drivers/gpu/drm/i915/intel_device_info.c >@@ -265,7 +265,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 (HAS_DISPLAY13(dev_priv) || HAS_D12_PLANE_MINIMIZATION(dev_priv)) > for_each_pipe(dev_priv, pipe) > runtime->num_sprites[pipe] = 4; > else if (INTEL_GEN(dev_priv) >= 11) >-- >2.25.4 > >_______________________________________________ >Intel-gfx mailing list >Intel-gfx@lists.freedesktop.org >https://lists.freedesktop.org/mailman/listinfo/intel-gfx
diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c b/drivers/gpu/drm/i915/display/intel_sprite.c index ec931a08ff28..81bb5eb1cd15 100644 --- a/drivers/gpu/drm/i915/display/intel_sprite.c +++ b/drivers/gpu/drm/i915/display/intel_sprite.c @@ -382,7 +382,7 @@ int intel_plane_check_src_coordinates(struct intel_plane_state *plane_state) static u8 icl_nv12_y_plane_mask(struct drm_i915_private *i915) { - if (HAS_D12_PLANE_MINIMIZATION(i915)) + if (HAS_DISPLAY13(i915) || HAS_D12_PLANE_MINIMIZATION(i915)) return BIT(PLANE_SPRITE2) | BIT(PLANE_SPRITE3); else return BIT(PLANE_SPRITE4) | BIT(PLANE_SPRITE5); @@ -2322,6 +2322,11 @@ static int skl_plane_check_fb(const struct intel_crtc_state *crtc_state, } if (drm_rotation_90_or_270(rotation)) { + if (HAS_DISPLAY13(dev_priv)) { + DRM_DEBUG_KMS("90/270 rotation not supported on this platform\n"); + return -EINVAL; + } + if (fb->modifier != I915_FORMAT_MOD_Y_TILED && fb->modifier != I915_FORMAT_MOD_Yf_TILED) { drm_dbg_kms(&dev_priv->drm, @@ -3338,9 +3343,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 (HAS_DISPLAY13(dev_priv)) + 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 (INTEL_GEN(dev_priv) >= 10) supported_rotations |= DRM_MODE_REFLECT_X; diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c index 407b42706a14..bb4fad71c429 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c @@ -2290,7 +2290,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 (HAS_DISPLAY13(dev_priv) || HAS_D12_PLANE_MINIMIZATION(dev_priv)) return RKL_DE_PIPE_IRQ_FAULT_ERRORS; else if (INTEL_GEN(dev_priv) >= 11) return GEN11_DE_PIPE_IRQ_FAULT_ERRORS; diff --git a/drivers/gpu/drm/i915/intel_device_info.c b/drivers/gpu/drm/i915/intel_device_info.c index 92ad3e7d1f6f..200d4eceaa4e 100644 --- a/drivers/gpu/drm/i915/intel_device_info.c +++ b/drivers/gpu/drm/i915/intel_device_info.c @@ -265,7 +265,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 (HAS_DISPLAY13(dev_priv) || HAS_D12_PLANE_MINIMIZATION(dev_priv)) for_each_pipe(dev_priv, pipe) runtime->num_sprites[pipe] = 4; else if (INTEL_GEN(dev_priv) >= 11)
Display13's plane support is identical to RKL --- 5 universal + 1 cursor with NV12 UV support on planes 1-3 and NV12 Y support on planes 4-5. Bspec: 53657 Bspec: 49251 Cc: Lucas De Marchi <lucas.demarchi@intel.com> Signed-off-by: Matt Roper <matthew.d.roper@intel.com> --- drivers/gpu/drm/i915/display/intel_sprite.c | 16 ++++++++++++---- drivers/gpu/drm/i915/i915_irq.c | 2 +- drivers/gpu/drm/i915/intel_device_info.c | 2 +- 3 files changed, 14 insertions(+), 6 deletions(-)