Skip to content

Commit

Permalink
drm/i915: Support Async Flip on Linear buffers
Browse files Browse the repository at this point in the history
Starting from Gen12 Async Flip is supported on linear buffers.
This patch enables support for async on linear buffer.

UseCase: In Hybrid graphics, for hardware unsupported pixel formats it
will be converted to linear memory and then composed.

v2: Added use case
v3: Added FIXME for ICL indicating the restrictions

Signed-off-by: Arun R Murthy <arun.r.murthy@intel.com>
Reviewed-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
Signed-off-by: Animesh Manna <animesh.manna@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220906041806.4095575-1-arun.r.murthy@intel.com
  • Loading branch information
Arun R Murthy authored and Animesh Manna committed May 22, 2023
1 parent 861601f commit 9378594
Showing 1 changed file with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions drivers/gpu/drm/i915/display/intel_display.c
Original file line number Diff line number Diff line change
Expand Up @@ -5995,6 +5995,20 @@ static int intel_async_flip_check_hw(struct intel_atomic_state *state, struct in
* this selectively if required.
*/
switch (new_plane_state->hw.fb->modifier) {
case DRM_FORMAT_MOD_LINEAR:
/*
* FIXME: Async on Linear buffer is supported on ICL as
* but with additional alignment and fbc restrictions
* need to be taken care of. These aren't applicable for
* gen12+.
*/
if (DISPLAY_VER(i915) < 12) {
drm_dbg_kms(&i915->drm,
"[PLANE:%d:%s] Modifier does not support async flips\n",
plane->base.base.id, plane->base.name);
return -EINVAL;
}

case I915_FORMAT_MOD_X_TILED:
case I915_FORMAT_MOD_Y_TILED:
case I915_FORMAT_MOD_Yf_TILED:
Expand Down

0 comments on commit 9378594

Please sign in to comment.