drm/i915/lnl: update the supported plane formats with FBC
authorVinod Govindapillai <vinod.govindapillai@intel.com>
Fri, 22 Sep 2023 13:30:03 +0000 (16:30 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 3 Oct 2023 12:53:12 +0000 (15:53 +0300)
FBC is supported with RGB32 8:8:8:8 with or without alpha

Bspec: 68904, 69560
Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230922133003.150578-3-vinod.govindapillai@intel.com
drivers/gpu/drm/i915/display/intel_fbc.c

index 0f1dd8729bf1aafb003c8adffea670413ec5ec89..5f13c6776c7d0b58f88e154fda110a12a9b06a0a 100644 (file)
@@ -903,6 +903,11 @@ static bool pixel_format_is_valid(const struct intel_plane_state *plane_state)
                if (IS_G4X(i915))
                        return false;
                return true;
+       case DRM_FORMAT_ARGB8888:
+       case DRM_FORMAT_ABGR8888:
+               if (DISPLAY_VER(i915) >= 20)
+                       return true;
+               fallthrough;
        default:
                return false;
        }
@@ -1132,7 +1137,8 @@ static int intel_fbc_check_plane(struct intel_atomic_state *state,
                return 0;
        }
 
-       if (plane_state->hw.pixel_blend_mode != DRM_MODE_BLEND_PIXEL_NONE &&
+       if (DISPLAY_VER(i915) < 20 &&
+           plane_state->hw.pixel_blend_mode != DRM_MODE_BLEND_PIXEL_NONE &&
            fb->format->has_alpha) {
                plane_state->no_fbc_reason = "per-pixel alpha not supported";
                return 0;