summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_atomic_plane.c
diff options
context:
space:
mode:
authorVille Syrjälä2017-03-02 18:14:51 +0100
committerVille Syrjälä2017-03-03 15:50:09 +0100
commite9728bd888e1fa2d5c1f77de8817a96eeba31747 (patch)
tree95a104d5d06d2996d254fb8f70663a1cb8665237 /drivers/gpu/drm/i915/intel_atomic_plane.c
parentdrm/i915/gtt: Setup vm callbacks late (diff)
downloadkernel-qcow2-linux-e9728bd888e1fa2d5c1f77de8817a96eeba31747.tar.gz
kernel-qcow2-linux-e9728bd888e1fa2d5c1f77de8817a96eeba31747.tar.xz
kernel-qcow2-linux-e9728bd888e1fa2d5c1f77de8817a96eeba31747.zip
drm/i915: Track visible planes in a bitmask
In a lot of place we wish to know which planes on the crtc are actually visible, or how many of them there are. Let's start tracking that in a bitmask in the crtc state. We already track enabled planes (ie. ones with an fb and crtc specified by the user) but that's not quite the same thing as enabled planes may still end up being invisible due to clipping and whatnot. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/20170302171508.1666-2-ville.syrjala@linux.intel.com
Diffstat (limited to 'drivers/gpu/drm/i915/intel_atomic_plane.c')
-rw-r--r--drivers/gpu/drm/i915/intel_atomic_plane.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_atomic_plane.c b/drivers/gpu/drm/i915/intel_atomic_plane.c
index 41fd94e62d3c..1eaf840cf9ff 100644
--- a/drivers/gpu/drm/i915/intel_atomic_plane.c
+++ b/drivers/gpu/drm/i915/intel_atomic_plane.c
@@ -189,6 +189,12 @@ int intel_plane_atomic_check_with_state(struct intel_crtc_state *crtc_state,
if (ret)
return ret;
+ /* FIXME pre-g4x don't work like this */
+ if (intel_state->base.visible)
+ crtc_state->active_planes |= BIT(intel_plane->id);
+ else
+ crtc_state->active_planes &= ~BIT(intel_plane->id);
+
return intel_plane_atomic_calc_changes(&crtc_state->base, state);
}