Message ID | 20241009182207.22900-9-ville.syrjala@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/i915: Async flip + compression, and some plane cleanups | expand |
On Wed, 2024-10-09 at 21:22 +0300, Ville Syrjala wrote: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > Move the xe AUX neutering out from skl_get_plane_caps() into the > caller so that it'll be easier to refactor skl_get_plane_caps() > into a more readable shape. This isn't really hardware specific > anyway, and just some kind of bug/misfeature of xe. > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Jouni Högander <jouni.hogander@intel.com> > --- > .../gpu/drm/i915/display/skl_universal_plane.c | 15 ++++++++++--- > -- > 1 file changed, 10 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c > b/drivers/gpu/drm/i915/display/skl_universal_plane.c > index c85bb1fea92f..bcb48d8932d2 100644 > --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c > +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c > @@ -2598,9 +2598,6 @@ static u8 skl_get_plane_caps(struct > drm_i915_private *i915, > if (HAS_4TILE(i915)) > caps |= INTEL_PLANE_CAP_TILING_4; > > - if (!IS_ENABLED(I915) && !HAS_FLAT_CCS(i915)) > - return caps; > - > if (skl_plane_has_rc_ccs(i915, pipe, plane_id)) { > caps |= INTEL_PLANE_CAP_CCS_RC; > if (DISPLAY_VER(i915) >= 12) > @@ -2629,6 +2626,7 @@ skl_universal_plane_create(struct > drm_i915_private *dev_priv, > const u32 *formats; > int num_formats; > int ret; > + u8 caps; > > plane = intel_plane_alloc(); > if (IS_ERR(plane)) > @@ -2716,8 +2714,15 @@ skl_universal_plane_create(struct > drm_i915_private *dev_priv, > else > plane_type = DRM_PLANE_TYPE_OVERLAY; > > - modifiers = intel_fb_plane_get_modifiers(dev_priv, > - > skl_get_plane_caps(dev_priv, pipe, plane_id)); > + caps = skl_get_plane_caps(dev_priv, pipe, plane_id); > + > + /* FIXME: xe has problems with AUX */ > + if (!IS_ENABLED(I915) && !HAS_FLAT_CCS(dev_priv)) > + caps &= ~(INTEL_PLANE_CAP_CCS_RC | > + INTEL_PLANE_CAP_CCS_RC_CC | > + INTEL_PLANE_CAP_CCS_MC); > + > + modifiers = intel_fb_plane_get_modifiers(dev_priv, caps); > > ret = drm_universal_plane_init(&dev_priv->drm, &plane->base, > 0, plane_funcs,
diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c index c85bb1fea92f..bcb48d8932d2 100644 --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c @@ -2598,9 +2598,6 @@ static u8 skl_get_plane_caps(struct drm_i915_private *i915, if (HAS_4TILE(i915)) caps |= INTEL_PLANE_CAP_TILING_4; - if (!IS_ENABLED(I915) && !HAS_FLAT_CCS(i915)) - return caps; - if (skl_plane_has_rc_ccs(i915, pipe, plane_id)) { caps |= INTEL_PLANE_CAP_CCS_RC; if (DISPLAY_VER(i915) >= 12) @@ -2629,6 +2626,7 @@ skl_universal_plane_create(struct drm_i915_private *dev_priv, const u32 *formats; int num_formats; int ret; + u8 caps; plane = intel_plane_alloc(); if (IS_ERR(plane)) @@ -2716,8 +2714,15 @@ skl_universal_plane_create(struct drm_i915_private *dev_priv, else plane_type = DRM_PLANE_TYPE_OVERLAY; - modifiers = intel_fb_plane_get_modifiers(dev_priv, - skl_get_plane_caps(dev_priv, pipe, plane_id)); + caps = skl_get_plane_caps(dev_priv, pipe, plane_id); + + /* FIXME: xe has problems with AUX */ + if (!IS_ENABLED(I915) && !HAS_FLAT_CCS(dev_priv)) + caps &= ~(INTEL_PLANE_CAP_CCS_RC | + INTEL_PLANE_CAP_CCS_RC_CC | + INTEL_PLANE_CAP_CCS_MC); + + modifiers = intel_fb_plane_get_modifiers(dev_priv, caps); ret = drm_universal_plane_init(&dev_priv->drm, &plane->base, 0, plane_funcs,