drm/i915: Do not acquire crtc state to check clock during modeset, v4.
authorMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Thu, 10 Dec 2015 11:33:57 +0000 (12:33 +0100)
committerMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Tue, 22 Dec 2015 12:42:27 +0000 (13:42 +0100)
commit565602d7501a3e83580289d7d6da9b15838cfbe3
treed5091e8a5c79c6cc28625ba92024c59cd0939353
parentbf8a0af0cc9f9de9e54aefd1afd8c23b91809e41
drm/i915: Do not acquire crtc state to check clock during modeset, v4.

Parallel modesets are still not allowed, but this will allow updating
a different crtc during a modeset if the clock is not changed.

Additionally when all pipes are DPMS off the cdclk will be lowered
to the minimum allowed.

Changes since v1:
- Add dev_priv->active_crtcs for tracking which crtcs are active.
- Rename min_cdclk to min_pixclk and move to dev_priv.
- Add a active_crtcs mask which is updated atomically.
- Add intel_atomic_state->modeset which is set on modesets.
- Commit new pixclk/active_crtcs right after state swap.
Changes since v2:
- Make the changes related to max_pixel_rate calculations more readable.
Changes since v3:
- Add cherryview and missing WARN_ON to readout.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Reviewed-by: Mika Kahola <mika.kahola@intel.com>
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/intel_atomic.c
drivers/gpu/drm/i915/intel_display.c
drivers/gpu/drm/i915/intel_drv.h