intel_uncore_arm_unclaimed_mmio_detection(&dev_priv->uncore);
                intel_display_power_put(dev_priv, POWER_DOMAIN_MODESET, wakeref);
        }
+       intel_runtime_pm_put(dev_priv, intel_state->wakeref);
 
        /*
         * Defer the cleanup of the old state to a separate worker to not
        struct drm_i915_private *dev_priv = to_i915(dev);
        int ret = 0;
 
+       intel_state->wakeref = intel_runtime_pm_get(dev_priv);
+
        drm_atomic_state_get(state);
        i915_sw_fence_init(&intel_state->commit_ready,
                           intel_atomic_commit_ready);
        if (ret) {
                DRM_DEBUG_ATOMIC("Preparing state failed with %i\n", ret);
                i915_sw_fence_commit(&intel_state->commit_ready);
+               intel_runtime_pm_put(dev_priv, intel_state->wakeref);
                return ret;
        }
 
                i915_sw_fence_commit(&intel_state->commit_ready);
 
                drm_atomic_helper_cleanup_planes(dev, state);
+               intel_runtime_pm_put(dev_priv, intel_state->wakeref);
                return ret;
        }
        dev_priv->wm.distrust_bios_wm = false;
 
 struct intel_atomic_state {
        struct drm_atomic_state base;
 
+       intel_wakeref_t wakeref;
+
        struct {
                /*
                 * Logical state of cdclk (used for all scaling, watermark,