drm/i915: Deprecate I915_SET_COLORKEY_NONE
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 2 Feb 2018 20:42:31 +0000 (22:42 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Mon, 5 Feb 2018 18:54:01 +0000 (20:54 +0200)
Deprecate the silly I915_SET_COLORKEY_NONE flag. The obvious
way to disable colorkey is to just set flags to 0, which is
exactly what the intel ddx has been doing all along.

Currently when userspace sets the flags to 0, we end up in a
funny state where colorkey is disabled, but various colorkey
vs. scaling checks still consider colorkey to be enabled, and
thus we don't allow plane scaling to kick in.

In case there is some other userspace out there that actually
uses this flag (unlikely as this is an i915 specific uapi)
we'll keep on accepting it.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180202204231.27905-1-ville.syrjala@linux.intel.com
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
drivers/gpu/drm/i915/intel_atomic_plane.c
drivers/gpu/drm/i915/intel_display.c
drivers/gpu/drm/i915/intel_sprite.c
include/uapi/drm/i915_drm.h

index 8e6dc159f64d9cf274d63924dfff19bfc1793350..57ee8b786cd8d9d7212fb16f0ff4571199ac6f6c 100644 (file)
@@ -56,7 +56,6 @@ intel_create_plane_state(struct drm_plane *plane)
 
        state->base.plane = plane;
        state->base.rotation = DRM_MODE_ROTATE_0;
-       state->ckey.flags = I915_SET_COLORKEY_NONE;
 
        return state;
 }
index e79b9242eb66c5b1a8982141a3986646cfb90bff..e9bba2ab49042a6c6ddf1cb5351ad615e361b9de 100644 (file)
@@ -4787,7 +4787,7 @@ static int skl_update_scaler_plane(struct intel_crtc_state *crtc_state,
                return ret;
 
        /* check colorkey */
-       if (plane_state->ckey.flags != I915_SET_COLORKEY_NONE) {
+       if (plane_state->ckey.flags) {
                DRM_DEBUG_KMS("[PLANE:%d:%s] scaling with color key not allowed",
                              intel_plane->base.base.id,
                              intel_plane->base.name);
@@ -12788,7 +12788,7 @@ intel_check_primary_plane(struct intel_plane *plane,
 
        if (INTEL_GEN(dev_priv) >= 9) {
                /* use scaler when colorkey is not required */
-               if (state->ckey.flags == I915_SET_COLORKEY_NONE) {
+               if (!state->ckey.flags) {
                        min_scale = 1;
                        max_scale = skl_max_scale(to_intel_crtc(crtc), crtc_state);
                }
index 630d20eecf3c52ba94d057b33cbfed265fad519e..32f10621fac814a90045a6d5edaa8f0b93bed48d 100644 (file)
@@ -894,7 +894,7 @@ intel_check_sprite_plane(struct intel_plane *plane,
        /* setup can_scale, min_scale, max_scale */
        if (INTEL_GEN(dev_priv) >= 9) {
                /* use scaler when colorkey is not required */
-               if (state->ckey.flags == I915_SET_COLORKEY_NONE) {
+               if (!state->ckey.flags) {
                        can_scale = 1;
                        min_scale = 1;
                        max_scale = skl_max_scale(crtc, crtc_state);
@@ -1070,6 +1070,9 @@ int intel_sprite_set_colorkey(struct drm_device *dev, void *data,
        struct drm_modeset_acquire_ctx ctx;
        int ret = 0;
 
+       /* ignore the pointless "none" flag */
+       set->flags &= ~I915_SET_COLORKEY_NONE;
+
        /* Make sure we don't try to enable both src & dest simultaneously */
        if ((set->flags & (I915_SET_COLORKEY_DESTINATION | I915_SET_COLORKEY_SOURCE)) == (I915_SET_COLORKEY_DESTINATION | I915_SET_COLORKEY_SOURCE))
                return -EINVAL;
index 536ee4febd746b7d93b4066919d971452df560cc..29fa48e4755d2a15f94ef6d442d67d00db3d3560 100644 (file)
@@ -1358,7 +1358,9 @@ struct drm_intel_overlay_attrs {
  * active on a given plane.
  */
 
-#define I915_SET_COLORKEY_NONE         (1<<0) /* disable color key matching */
+#define I915_SET_COLORKEY_NONE         (1<<0) /* Deprecated. Instead set
+                                               * flags==0 to disable colorkeying.
+                                               */
 #define I915_SET_COLORKEY_DESTINATION  (1<<1)
 #define I915_SET_COLORKEY_SOURCE       (1<<2)
 struct drm_intel_sprite_colorkey {