• Karthik B S's avatar
    drm/i915: Add checks specific to async flips · 30ff93af
    Karthik B S authored
    If flip is requested on any other plane, reject it.
    
    Make sure there is no change in fbc, offset and framebuffer modifiers
    when async flip is requested.
    
    If any of these are modified, reject async flip.
    
    v2: -Replace DRM_ERROR (Paulo)
        -Add check for changes in OFFSET, FBC, RC(Paulo)
    
    v3: -Removed TODO as benchmarking tests have been run now.
    
    v4: -Added more state checks for async flip (Ville)
        -Moved intel_atomic_check_async to the end of intel_atomic_check
         as the plane checks needs to pass before this. (Ville)
        -Removed crtc_state->enable_fbc check. (Ville)
        -Set the I915_MODE_FLAG_GET_SCANLINE_FROM_TIMESTAMP flag for async
         flip case as scanline counter is not reliable here.
    
    v5: -Fix typo and other check patch errors seen in CI
         in 'intel_atomic_check_async' function.
    
    v6: -Don't call intel_atomic_check_async multiple times. (Ville)
        -Remove the check for n_planes in intel_atomic_check_async
        -Added documentation for async flips. (Paulo)
    
    v7: -Replace 'intel_plane' with 'plane'. (Ville)
        -Replace all uapi.foo as hw.foo. (Ville)
        -Do not use intel_wm_need_update function. (Ville)
        -Add destination coordinate check. (Ville)
        -Do not allow async flip with linear buffer
         on older hw as it has issues with this. (Ville)
        -Remove break after intel_atomic_check_async. (Ville)
    
    v8: -Rebased.
    
    v9: -Replace DRM_DEBUG_KMS with drm_dbg_kms(). (Ville)
        -Fix comment formatting. (Ville)
        -Remove gen specific checks. (Ville)
        -Remove irrelevant FB size check. (Ville)
        -Add missing stride check. (Ville)
        -Use drm_rect_equals() instead of individual checks. (Ville)
        -Call intel_atomic_check_async before state dump. (Ville)
    
    v10: -Fix the checkpatch errors seen on CI.
    
    v11: -Use const for all plane/crtc states. (Ville)
         -Use 'switch' instead of 'if' for modifier check. (Ville)
         -Move documentation changes to a single patch. (Ville)
    Signed-off-by: default avatarKarthik B S <karthik.b.s@intel.com>
    Signed-off-by: default avatarVandita Kulkarni <vandita.kulkarni@intel.com>
    Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20200921110210.21182-4-karthik.b.s@intel.com
    30ff93af
intel_display.c 547 KB