diff options
author | Maarten Lankhorst <maarten.lankhorst@linux.intel.com> | 2016-02-03 10:53:24 -0500 |
---|---|---|
committer | Maarten Lankhorst <maarten.lankhorst@linux.intel.com> | 2016-02-08 08:21:46 -0500 |
commit | 5c74cd730807a6f0c4a2066bdb92c2b6fc3e5775 (patch) | |
tree | 041db2546b9286b6c67dfd728e9c3eff01f52f40 | |
parent | db168f117779b23097487548b4f4999b0a66835c (diff) |
drm/i915: Remove atomic.pre_disable_primary.
This can be derived from the atomic state in pre_plane_update,
which makes it more clear when it's supposed to be called.
Reviewed-by: Ander Conselvan de Oliveira <conselvan2@gmail.com>
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1454514805-10595-3-git-send-email-maarten.lankhorst@linux.intel.com
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 25 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_drv.h | 1 |
2 files changed, 19 insertions, 7 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 4760ecb6ae06..a7fa627f4c05 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
@@ -4804,19 +4804,33 @@ static void intel_post_plane_update(struct intel_crtc *crtc) | |||
4804 | memset(atomic, 0, sizeof(*atomic)); | 4804 | memset(atomic, 0, sizeof(*atomic)); |
4805 | } | 4805 | } |
4806 | 4806 | ||
4807 | static void intel_pre_plane_update(struct intel_crtc *crtc) | 4807 | static void intel_pre_plane_update(struct intel_crtc_state *old_crtc_state) |
4808 | { | 4808 | { |
4809 | struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->base.crtc); | ||
4809 | struct drm_device *dev = crtc->base.dev; | 4810 | struct drm_device *dev = crtc->base.dev; |
4810 | struct drm_i915_private *dev_priv = dev->dev_private; | 4811 | struct drm_i915_private *dev_priv = dev->dev_private; |
4811 | struct intel_crtc_atomic_commit *atomic = &crtc->atomic; | 4812 | struct intel_crtc_atomic_commit *atomic = &crtc->atomic; |
4812 | struct intel_crtc_state *pipe_config = | 4813 | struct intel_crtc_state *pipe_config = |
4813 | to_intel_crtc_state(crtc->base.state); | 4814 | to_intel_crtc_state(crtc->base.state); |
4815 | struct drm_atomic_state *old_state = old_crtc_state->base.state; | ||
4816 | struct drm_plane *primary = crtc->base.primary; | ||
4817 | struct drm_plane_state *old_pri_state = | ||
4818 | drm_atomic_get_existing_plane_state(old_state, primary); | ||
4819 | bool modeset = needs_modeset(&pipe_config->base); | ||
4814 | 4820 | ||
4815 | if (atomic->update_fbc) | 4821 | if (atomic->update_fbc) |
4816 | intel_fbc_pre_update(crtc); | 4822 | intel_fbc_pre_update(crtc); |
4817 | 4823 | ||
4818 | if (atomic->pre_disable_primary) | 4824 | if (old_pri_state) { |
4819 | intel_pre_disable_primary(&crtc->base); | 4825 | struct intel_plane_state *primary_state = |
4826 | to_intel_plane_state(primary->state); | ||
4827 | struct intel_plane_state *old_primary_state = | ||
4828 | to_intel_plane_state(old_pri_state); | ||
4829 | |||
4830 | if (old_primary_state->visible && | ||
4831 | (modeset || !primary_state->visible)) | ||
4832 | intel_pre_disable_primary(&crtc->base); | ||
4833 | } | ||
4820 | 4834 | ||
4821 | if (pipe_config->disable_cxsr) { | 4835 | if (pipe_config->disable_cxsr) { |
4822 | crtc->wm.cxsr_allowed = false; | 4836 | crtc->wm.cxsr_allowed = false; |
@@ -11882,7 +11896,6 @@ int intel_plane_atomic_calc_changes(struct drm_crtc_state *crtc_state, | |||
11882 | 11896 | ||
11883 | switch (plane->type) { | 11897 | switch (plane->type) { |
11884 | case DRM_PLANE_TYPE_PRIMARY: | 11898 | case DRM_PLANE_TYPE_PRIMARY: |
11885 | intel_crtc->atomic.pre_disable_primary = turn_off; | ||
11886 | intel_crtc->atomic.post_enable_primary = turn_on; | 11899 | intel_crtc->atomic.post_enable_primary = turn_on; |
11887 | intel_crtc->atomic.update_fbc = true; | 11900 | intel_crtc->atomic.update_fbc = true; |
11888 | 11901 | ||
@@ -13494,7 +13507,7 @@ static int intel_atomic_commit(struct drm_device *dev, | |||
13494 | if (!needs_modeset(crtc->state)) | 13507 | if (!needs_modeset(crtc->state)) |
13495 | continue; | 13508 | continue; |
13496 | 13509 | ||
13497 | intel_pre_plane_update(intel_crtc); | 13510 | intel_pre_plane_update(to_intel_crtc_state(crtc_state)); |
13498 | 13511 | ||
13499 | if (crtc_state->active) { | 13512 | if (crtc_state->active) { |
13500 | intel_crtc_disable_planes(crtc, crtc_state->plane_mask); | 13513 | intel_crtc_disable_planes(crtc, crtc_state->plane_mask); |
@@ -13550,7 +13563,7 @@ static int intel_atomic_commit(struct drm_device *dev, | |||
13550 | } | 13563 | } |
13551 | 13564 | ||
13552 | if (!modeset) | 13565 | if (!modeset) |
13553 | intel_pre_plane_update(intel_crtc); | 13566 | intel_pre_plane_update(to_intel_crtc_state(crtc_state)); |
13554 | 13567 | ||
13555 | if (crtc->state->active && intel_crtc->atomic.update_fbc) | 13568 | if (crtc->state->active && intel_crtc->atomic.update_fbc) |
13556 | intel_fbc_enable(intel_crtc); | 13569 | intel_fbc_enable(intel_crtc); |
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h index 5fd3e13936e4..d0921ba9a65a 100644 --- a/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h | |||
@@ -544,7 +544,6 @@ struct intel_mmio_flip { | |||
544 | */ | 544 | */ |
545 | struct intel_crtc_atomic_commit { | 545 | struct intel_crtc_atomic_commit { |
546 | /* Sleepable operations to perform before commit */ | 546 | /* Sleepable operations to perform before commit */ |
547 | bool pre_disable_primary; | ||
548 | 547 | ||
549 | /* Sleepable operations to perform after commit */ | 548 | /* Sleepable operations to perform after commit */ |
550 | unsigned fb_bits; | 549 | unsigned fb_bits; |