aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2016-01-15 13:46:53 -0500
committerVille Syrjälä <ville.syrjala@linux.intel.com>2016-01-18 09:07:43 -0500
commit693bdc28a733dba68b86af295e7509812fec35d9 (patch)
treed5ff3b597abf03b330af6d42ed03f533c121ae1f
parenta9d8adad731171559b24eb27c9db4a64238b7ef0 (diff)
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: 061e4b8d650a ("drm/i915: clean up atomic plane check functions, v2.") Signed-off-by: Ville 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: Matt Roper <matthew.d.roper@intel.com> Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
-rw-r--r--drivers/gpu/drm/i915/intel_display.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index ccb3e3f47450..9b6e726666c3 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -14019,11 +14019,12 @@ intel_check_primary_plane(struct drm_plane *plane,
14019 int max_scale = DRM_PLANE_HELPER_NO_SCALING; 14019 int max_scale = DRM_PLANE_HELPER_NO_SCALING;
14020 bool can_position = false; 14020 bool can_position = false;
14021 14021
14022 /* use scaler when colorkey is not required */ 14022 if (INTEL_INFO(plane->dev)->gen >= 9) {
14023 if (INTEL_INFO(plane->dev)->gen >= 9 && 14023 /* use scaler when colorkey is not required */
14024 state->ckey.flags == I915_SET_COLORKEY_NONE) { 14024 if (state->ckey.flags == I915_SET_COLORKEY_NONE) {
14025 min_scale = 1; 14025 min_scale = 1;
14026 max_scale = skl_max_scale(to_intel_crtc(crtc), crtc_state); 14026 max_scale = skl_max_scale(to_intel_crtc(crtc), crtc_state);
14027 }
14027 can_position = true; 14028 can_position = true;
14028 } 14029 }
14029 14030