This patch requires the following patch from airlied/drm-next: "[PATCH] drm/atomic: Clear crtc_state->active in drm_atomic_helper_set_config." Now that suspend/restore is atomic it's time to clean up some remaining issues. First I clean up the suspend code some more now that it's atomic. After that I try to make a better separation between checking and modeset. This meant that intel_modeset_pipe_config should no longer touch mode_changed, because it will only be called when a modeset will already happen to prevent excessive rechecking. I also clean up the scaler stuff slightly, and move some of it to the crtc state. Because of feedback on my previous series I'll always add the plane, instead of handling switching from/to hq mode by waiting poking scaler 0. After that it's time to clean up the plane functions, and making sure the atomic commit runs correctly. This has gone through many iterations, and I think the way here is the most clean way to deal with it. Disabling all planes before a modeset, and committing after, even if the crtc is in a disabled state provided the most flexibility. The last callers of the transitional plane helpers are killed, and intel_set_mode becomes the replacement intel_atomic_commit. Changes since previous version: - Disable all unknown planes correctly by forcing it with a quirk, even if sprites were previously enabled it should work without requiring a full modeset. - Add a plane in the intel_atomic_setup_scalers function again, not adding a plane was too tricky. - Reorder plane cleanups, 'atomic plane updates in a nutshell' is even less scary now. - Disable skylake scalers during vblank evasion. Maarten Lankhorst (27): drm/i915: Always reset in intel_crtc_restore_mode drm/i915: Use crtc state in intel_modeset_pipe_config drm/i915: clean up intel_sanitize_crtc, v2 drm/i915: Update power domains only on affected crtc's. drm/i915: add fastboot checks for has_audio and has_infoframe drm/i915: Clean up intel_atomic_setup_scalers slightly. drm/i915: Add a simple atomic crtc check function, v2. drm/i915: Move scaler setup to check crtc function, v2. drm/i915: Assign a new pll from the crtc check function. drm/i915: Do not run most checks when there's no modeset. drm/i915: Split skl_update_scaler, v2. drm/i915: Split plane updates of crtc->atomic into a helper, v2. drm/i915: clean up plane commit functions drm/i915: clean up atomic plane check functions drm/i915: remove force argument from disable_plane drm/i915: move detaching scalers to begin_crtc_commit, v2. drm/i915: Move crtc commit updates to separate functions. drm/i915: Handle disabling planes better. drm/i915: atomic plane updates in a nutshell drm/i915: Update less state during modeset. drm/i915: get rid of intel_plane_restore in intel_crtc_page_flip drm/i915: Make setting color key atomic. drm/i915: Remove transitional references from intel_plane_atomic_check. drm/i915: Use full atomic modeset. drm/i915: Call plane update functions directly from intel_atomic_commit. drm/i915: always disable irqs in intel_pipe_update_start drm/i915: Only commit planes on crtc's that have changed planes. drivers/gpu/drm/i915/i915_debugfs.c | 8 +- drivers/gpu/drm/i915/i915_drv.c | 3 - drivers/gpu/drm/i915/intel_atomic.c | 159 +-- drivers/gpu/drm/i915/intel_atomic_plane.c | 44 +- drivers/gpu/drm/i915/intel_display.c | 1815 +++++++++++++---------------- drivers/gpu/drm/i915/intel_dp.c | 2 +- drivers/gpu/drm/i915/intel_drv.h | 41 +- drivers/gpu/drm/i915/intel_sprite.c | 191 ++- 8 files changed, 937 insertions(+), 1326 deletions(-) -- 2.1.0 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx