intel_display_power_get(i915, POWER_DOMAIN_INIT);
 
        /* Disable power support if the user asked so. */
-       if (!i915->params.disable_power_well)
-               intel_display_power_get(i915, POWER_DOMAIN_INIT);
+       if (!i915->params.disable_power_well) {
+               drm_WARN_ON(&i915->drm, power_domains->disable_wakeref);
+               i915->power_domains.disable_wakeref = intel_display_power_get(i915,
+                                                                             POWER_DOMAIN_INIT);
+       }
        intel_power_domains_sync_hw(i915);
 
        power_domains->initializing = false;
 
        /* Remove the refcount we took to keep power well support disabled. */
        if (!i915->params.disable_power_well)
-               intel_display_power_put_unchecked(i915, POWER_DOMAIN_INIT);
+               intel_display_power_put(i915, POWER_DOMAIN_INIT,
+                                       fetch_and_zero(&i915->power_domains.disable_wakeref));
 
        intel_display_power_flush_work_sync(i915);
 
         * power wells if power domains must be deinitialized for suspend.
         */
        if (!i915->params.disable_power_well)
-               intel_display_power_put_unchecked(i915, POWER_DOMAIN_INIT);
+               intel_display_power_put(i915, POWER_DOMAIN_INIT,
+                                       fetch_and_zero(&i915->power_domains.disable_wakeref));
 
        intel_display_power_flush_work(i915);
        intel_power_domains_verify_state(i915);