On Wed, 2024-10-09 at 21:22 +0300, Ville Syrjala wrote: > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > 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@xxxxxxxxxxxxxxx> Reviewed-by: Jouni Högander <jouni.hogander@xxxxxxxxx> > --- > .../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,