aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaarten Lankhorst <maarten.lankhorst@linux.intel.com>2016-02-03 10:53:24 -0500
committerMaarten Lankhorst <maarten.lankhorst@linux.intel.com>2016-02-08 08:21:46 -0500
commit5c74cd730807a6f0c4a2066bdb92c2b6fc3e5775 (patch)
tree041db2546b9286b6c67dfd728e9c3eff01f52f40
parentdb168f117779b23097487548b4f4999b0a66835c (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.c25
-rw-r--r--drivers/gpu/drm/i915/intel_drv.h1
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
4807static void intel_pre_plane_update(struct intel_crtc *crtc) 4807static 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 */
545struct intel_crtc_atomic_commit { 545struct 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;