Commit 693bdc28 authored by Ville Syrjälä's avatar Ville Syrjälä

drm/i915: Don't reject primary plane windowing with color keying enabled on SKL+

On SKL+ plane scaling is mutually exclusive with color keying. The code
check for this, but during some refactoring the code got changed to
also reject primary plane windowing when color keying is used. There is
no such restriction in the hardware, so restore the original logic.

Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Fixes: 061e4b8d ("drm/i915: clean up atomic plane check functions, v2.")
Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1452883613-28549-1-git-send-email-ville.syrjala@linux.intel.com
Cc: stable@vger.kernel.org
Reviewed-by: default avatarMatt Roper <matthew.d.roper@intel.com>
Reviewed-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
parent a9d8adad
...@@ -14019,11 +14019,12 @@ intel_check_primary_plane(struct drm_plane *plane, ...@@ -14019,11 +14019,12 @@ intel_check_primary_plane(struct drm_plane *plane,
int max_scale = DRM_PLANE_HELPER_NO_SCALING; int max_scale = DRM_PLANE_HELPER_NO_SCALING;
bool can_position = false; bool can_position = false;
if (INTEL_INFO(plane->dev)->gen >= 9) {
/* use scaler when colorkey is not required */ /* use scaler when colorkey is not required */
if (INTEL_INFO(plane->dev)->gen >= 9 && if (state->ckey.flags == I915_SET_COLORKEY_NONE) {
state->ckey.flags == I915_SET_COLORKEY_NONE) {
min_scale = 1; min_scale = 1;
max_scale = skl_max_scale(to_intel_crtc(crtc), crtc_state); max_scale = skl_max_scale(to_intel_crtc(crtc), crtc_state);
}
can_position = true; can_position = true;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment