@@ -7123,8 +7123,6 @@ static void intel_update_crtc(struct intel_atomic_state *state,
7123
7123
7124
7124
intel_fbc_update (state , crtc );
7125
7125
7126
- drm_WARN_ON (& i915 -> drm , !intel_display_power_is_enabled (i915 , POWER_DOMAIN_DC_OFF ));
7127
-
7128
7126
if (!modeset &&
7129
7127
(new_crtc_state -> uapi .color_mgmt_changed ||
7130
7128
new_crtc_state -> update_pipe ))
@@ -7501,28 +7499,8 @@ static void intel_atomic_commit_tail(struct intel_atomic_state *state)
7501
7499
drm_atomic_helper_wait_for_dependencies (& state -> base );
7502
7500
drm_dp_mst_atomic_wait_for_dependencies (& state -> base );
7503
7501
7504
- /*
7505
- * During full modesets we write a lot of registers, wait
7506
- * for PLLs, etc. Doing that while DC states are enabled
7507
- * is not a good idea.
7508
- *
7509
- * During fastsets and other updates we also need to
7510
- * disable DC states due to the following scenario:
7511
- * 1. DC5 exit and PSR exit happen
7512
- * 2. Some or all _noarm() registers are written
7513
- * 3. Due to some long delay PSR is re-entered
7514
- * 4. DC5 entry -> DMC saves the already written new
7515
- * _noarm() registers and the old not yet written
7516
- * _arm() registers
7517
- * 5. DC5 exit -> DMC restores a mixture of old and
7518
- * new register values and arms the update
7519
- * 6. PSR exit -> hardware latches a mixture of old and
7520
- * new register values -> corrupted frame, or worse
7521
- * 7. New _arm() registers are finally written
7522
- * 8. Hardware finally latches a complete set of new
7523
- * register values, and subsequent frames will be OK again
7524
- */
7525
- wakeref = intel_display_power_get (dev_priv , POWER_DOMAIN_DC_OFF );
7502
+ if (state -> modeset )
7503
+ wakeref = intel_display_power_get (dev_priv , POWER_DOMAIN_MODESET );
7526
7504
7527
7505
intel_atomic_prepare_plane_clear_colors (state );
7528
7506
@@ -7661,8 +7639,8 @@ static void intel_atomic_commit_tail(struct intel_atomic_state *state)
7661
7639
* the culprit.
7662
7640
*/
7663
7641
intel_uncore_arm_unclaimed_mmio_detection (& dev_priv -> uncore );
7642
+ intel_display_power_put (dev_priv , POWER_DOMAIN_MODESET , wakeref );
7664
7643
}
7665
- intel_display_power_put (dev_priv , POWER_DOMAIN_DC_OFF , wakeref );
7666
7644
intel_runtime_pm_put (& dev_priv -> runtime_pm , state -> wakeref );
7667
7645
7668
7646
/*
0 commit comments