summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/drm_atomic_helper.c
diff options
context:
space:
mode:
authorMaarten Lankhorst2015-07-16 15:51:01 +0200
committerDaniel Vetter2015-07-16 16:58:14 +0200
commit2660801f7323b84fc2ad46449a5d1f331266d9f7 (patch)
tree6103577b0a63fa3698136f8b567f02b13bc0b8ad /drivers/gpu/drm/drm_atomic_helper.c
parentdrm/fb: drop panic handling (diff)
downloadkernel-qcow2-linux-2660801f7323b84fc2ad46449a5d1f331266d9f7.tar.gz
kernel-qcow2-linux-2660801f7323b84fc2ad46449a5d1f331266d9f7.tar.xz
kernel-qcow2-linux-2660801f7323b84fc2ad46449a5d1f331266d9f7.zip
drm/atomic: Only update crtc->x/y if it's part of the state, v2.
Universal planes may not be assigned to the current crtc, so only update crtc->x/y when the primary is part of the state and bound to the current crtc. Changes since v1: - Add the crtc check. Cc: dri-devel@lists.freedesktop.org Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/drm_atomic_helper.c')
-rw-r--r--drivers/gpu/drm/drm_atomic_helper.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
index 0898afbc9e23..f94cc371742e 100644
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
@@ -665,10 +665,16 @@ drm_atomic_helper_update_legacy_modeset_state(struct drm_device *dev,
/* set legacy state in the crtc structure */
for_each_crtc_in_state(old_state, crtc, old_crtc_state, i) {
+ struct drm_plane *primary = crtc->primary;
+
crtc->mode = crtc->state->mode;
crtc->enabled = crtc->state->enable;
- crtc->x = crtc->primary->state->src_x >> 16;
- crtc->y = crtc->primary->state->src_y >> 16;
+
+ if (drm_atomic_get_existing_plane_state(old_state, primary) &&
+ primary->state->crtc == crtc) {
+ crtc->x = primary->state->src_x >> 16;
+ crtc->y = primary->state->src_y >> 16;
+ }
if (crtc->state->enable)
drm_calc_timestamping_constants(crtc,