diff options
| -rw-r--r-- | drivers/gpu/drm/i915/display/intel_fbc.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c index 57f4ff2d10ca..0f697c7b1d46 100644 --- a/drivers/gpu/drm/i915/display/intel_fbc.c +++ b/drivers/gpu/drm/i915/display/intel_fbc.c @@ -1084,6 +1084,20 @@ static bool lnl_fbc_pixel_format_is_valid(const struct intel_plane_state *plane_ } } +static bool +xe3p_lpd_fbc_fp16_format_is_valid(const struct intel_plane_state *plane_state) +{ + const struct drm_framebuffer *fb = plane_state->hw.fb; + + switch (fb->format->format) { + case DRM_FORMAT_ARGB16161616F: + case DRM_FORMAT_ABGR16161616F: + return true; + default: + return false; + } +} + static bool xe3p_lpd_fbc_pixel_format_is_valid(const struct intel_plane_state *plane_state) { const struct drm_framebuffer *fb = plane_state->hw.fb; @@ -1091,13 +1105,14 @@ static bool xe3p_lpd_fbc_pixel_format_is_valid(const struct intel_plane_state *p if (lnl_fbc_pixel_format_is_valid(plane_state)) return true; + if (xe3p_lpd_fbc_fp16_format_is_valid(plane_state)) + return true; + switch (fb->format->format) { case DRM_FORMAT_XRGB16161616: case DRM_FORMAT_XBGR16161616: case DRM_FORMAT_ARGB16161616: case DRM_FORMAT_ABGR16161616: - case DRM_FORMAT_ARGB16161616F: - case DRM_FORMAT_ABGR16161616F: return true; default: return false; |