Op 11-06-15 om 03:36 schreef Matt Roper: > On Thu, Jun 04, 2015 at 02:47:46PM +0200, Maarten Lankhorst wrote: >> This is probably intended to be be done during vblank evasion. >> >> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx> >> --- >> drivers/gpu/drm/i915/intel_atomic.c | 3 --- >> drivers/gpu/drm/i915/intel_display.c | 8 ++++---- >> drivers/gpu/drm/i915/intel_drv.h | 1 - >> 3 files changed, 4 insertions(+), 8 deletions(-) >> >> diff --git a/drivers/gpu/drm/i915/intel_atomic.c b/drivers/gpu/drm/i915/intel_atomic.c >> index 7ca225194b7c..8447a1fef332 100644 >> --- a/drivers/gpu/drm/i915/intel_atomic.c >> +++ b/drivers/gpu/drm/i915/intel_atomic.c >> @@ -144,9 +144,6 @@ int intel_atomic_commit(struct drm_device *dev, >> for_each_crtc_in_state(state, crtc, crtc_state, i) { >> to_intel_crtc(crtc)->config = to_intel_crtc_state(crtc->state); >> >> - if (INTEL_INFO(dev)->gen >= 9) >> - skl_detach_scalers(to_intel_crtc(crtc)); >> - >> drm_atomic_helper_commit_planes_on_crtc(crtc_state); >> } >> >> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c >> index f5f074524603..2ba3d6abbd0c 100644 >> --- a/drivers/gpu/drm/i915/intel_display.c >> +++ b/drivers/gpu/drm/i915/intel_display.c >> @@ -2911,16 +2911,13 @@ unsigned long intel_plane_obj_offset(struct intel_plane *intel_plane, >> /* >> * This function detaches (aka. unbinds) unused scalers in hardware >> */ >> -void skl_detach_scalers(struct intel_crtc *intel_crtc) >> +static void skl_detach_scalers(struct intel_crtc *intel_crtc) >> { >> struct drm_device *dev; >> struct drm_i915_private *dev_priv; >> struct intel_crtc_scaler_state *scaler_state; >> int i; >> >> - if (!intel_crtc || !intel_crtc->config) >> - return; >> - >> dev = intel_crtc->base.dev; >> dev_priv = dev->dev_private; >> scaler_state = &intel_crtc->config->scaler_state; >> @@ -13505,6 +13502,9 @@ static void intel_begin_crtc_commit(struct drm_crtc *crtc) >> intel_crtc->atomic.evade = >> intel_pipe_update_start(intel_crtc, >> &intel_crtc->atomic.start_vbl_count); >> + >> + if (!needs_modeset(crtc->state) && INTEL_INFO(dev)->gen >= 9) >> + skl_detach_scalers(intel_crtc); > I'm not sure I follow where the !needs_modeset test comes from. Do > these get blown away somewhere else in the modeset sequence that I'm > overlooking? Detaching scalers here when we are doing a modeset > wouldn't cause actual problems would it? No it won't cause direct problems, just unneeded since modeset disable would already disable scalers. ~Maarten _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx