Op 12-05-15 om 15:03 schreef Daniel Vetter: > On Mon, May 11, 2015 at 04:25:13PM +0200, Maarten Lankhorst wrote: >> crtc->config is gone, swap swap swap. :D >> >> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx> >> --- >> drivers/gpu/drm/i915/intel_atomic.c | 36 ++---------------------------------- >> drivers/gpu/drm/i915/intel_display.c | 7 +++++-- >> 2 files changed, 7 insertions(+), 36 deletions(-) >> >> diff --git a/drivers/gpu/drm/i915/intel_atomic.c b/drivers/gpu/drm/i915/intel_atomic.c >> index ace6aeeb1359..0315dc44b17a 100644 >> --- a/drivers/gpu/drm/i915/intel_atomic.c >> +++ b/drivers/gpu/drm/i915/intel_atomic.c >> @@ -130,7 +130,6 @@ int intel_atomic_commit(struct drm_device *dev, >> bool async) >> { >> int ret; >> - int i; >> >> if (async) { >> DRM_DEBUG_KMS("i915 does not yet support async commit\n"); >> @@ -142,48 +141,17 @@ int intel_atomic_commit(struct drm_device *dev, >> return ret; >> >> /* Point of no return */ >> + drm_atomic_helper_swap_state(dev, state); >> >> /* >> * FIXME: The proper sequence here will eventually be: >> * >> - * drm_atomic_helper_swap_state(dev, state) >> * drm_atomic_helper_commit_modeset_disables(dev, state); >> * drm_atomic_helper_commit_planes(dev, state); >> * drm_atomic_helper_commit_modeset_enables(dev, state); >> - * drm_atomic_helper_wait_for_vblanks(dev, state); >> - * drm_atomic_helper_cleanup_planes(dev, state); >> - * drm_atomic_state_free(state); >> - * >> - * once we have full atomic modeset. For now, just manually update >> - * plane states to avoid clobbering good states with dummy states >> - * while nuclear pageflipping. >> */ >> - for (i = 0; i < dev->mode_config.num_total_plane; i++) { >> - struct drm_plane *plane = state->planes[i]; >> - >> - if (!plane) >> - continue; >> - >> - plane->state->state = state; >> - swap(state->plane_states[i], plane->state); >> - plane->state->state = NULL; >> - } >> - >> - /* swap crtc_scaler_state */ >> - for (i = 0; i < dev->mode_config.num_crtc; i++) { >> - struct drm_crtc *crtc = state->crtcs[i]; >> - if (!crtc) { >> - continue; >> - } >> - >> - to_intel_crtc_state(crtc->state)->scaler_state = >> - to_intel_crtc_state(state->crtc_states[i])->scaler_state; >> - >> - if (INTEL_INFO(dev)->gen >= 9) >> - skl_detach_scalers(to_intel_crtc(crtc)); >> - } >> - >> drm_atomic_helper_commit_planes(dev, state); >> + >> drm_atomic_helper_wait_for_vblanks(dev, state); >> drm_atomic_helper_cleanup_planes(dev, state); >> drm_atomic_state_free(state); >> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c >> index 65ee2cd0437c..105bdf84e46a 100644 >> --- a/drivers/gpu/drm/i915/intel_display.c >> +++ b/drivers/gpu/drm/i915/intel_display.c >> @@ -13202,11 +13202,14 @@ static void intel_begin_crtc_commit(struct drm_crtc *crtc) >> >> /* Perform vblank evasion around commit operation */ >> if (intel_crtc->atomic.evade && >> - !dev_priv->power_domains.init_power_on) >> + !dev_priv->power_domains.init_power_on) { >> + if (dev_priv->info.gen >= 9) >> + skl_detach_scalers(to_intel_crtc(crtc)); > Don't we need to update skl_detach_scalers to look at the other config > now? Or is this an issue with the patch splitting? > > Also why is this protected by atomic.evade? Mostly to not run if a modeset's done, that already kills the scalers. ~Maarten _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx