drm/i915: Move the SKL+ zero constant alpha handling
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 18 Oct 2018 19:59:21 +0000 (22:59 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 23 Oct 2018 15:25:47 +0000 (18:25 +0300)
Let's run through the entire plane check even when the plane
is invisible due to zero constant alpha. This makes for more
consistent behaviour since we check the src/dst coordinates,
stride etc. against the hardware limits.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20181018195921.9898-2-ville.syrjala@linux.intel.com
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
drivers/gpu/drm/i915/intel_display.c
drivers/gpu/drm/i915/intel_sprite.c

index 52e4d7a..969d22c 100644 (file)
@@ -3113,10 +3113,6 @@ int skl_check_plane_surface(struct intel_plane_state *plane_state)
        if (ret)
                return ret;
 
-       /* HW only has 8 bits pixel precision, disable plane if invisible */
-       if (!(plane_state->base.alpha >> 8))
-               plane_state->base.visible = false;
-
        if (!plane_state->base.visible)
                return 0;
 
index 0fe6c66..0b87e55 100644 (file)
@@ -1405,6 +1405,10 @@ static int skl_plane_check(struct intel_crtc_state *crtc_state,
        if (ret)
                return ret;
 
+       /* HW only has 8 bits pixel precision, disable plane if invisible */
+       if (!(plane_state->base.alpha >> 8))
+               plane_state->base.visible = false;
+
        plane_state->ctl = skl_plane_ctl(crtc_state, plane_state);
 
        if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))