[PATCH 11/27] drm/i915: Release POWER_DOMAIN_INIT reference when display is disabled

José Roberto de Souza jose.souza at intel.com
Tue Aug 7 17:58:29 UTC 2018


When loading the driver
i915_load_modeset_init()->intel_modeset_setup_hw_state() do the
counter part call of intel_power_domains_init_hw() calling
intel_display_set_init_power(false).
The problem is i915_load_modeset_init() is not executed when display
is disabled, so moving it to i915_driver_load().
Also calling intel_display_set_init_power(false) in
__intel_display_resume() as it would be executed by calling
intel_modeset_setup_hw_state().

Signed-off-by: José Roberto de Souza <jose.souza at intel.com>
---
 drivers/gpu/drm/i915/i915_drv.c      | 4 ++++
 drivers/gpu/drm/i915/intel_display.c | 8 +++++---
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index c7f5ff737d3f..fbdbbb57de4f 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -1407,6 +1407,10 @@ int i915_driver_load(struct pci_dev *pdev, const struct pci_device_id *ent)
 			goto cleanup_gem;
 	}
 
+	/* intel_power_domains_init_hw() counter part  */
+	intel_display_set_init_power(dev_priv, false);
+	intel_power_domains_verify_state(dev_priv);
+
 	i915_driver_register(dev_priv);
 
 	intel_runtime_pm_enable(dev_priv);
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 06bd5485d8e7..dcd27403319b 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -3664,11 +3664,16 @@ __intel_display_resume(struct drm_device *dev,
 		       struct drm_atomic_state *state,
 		       struct drm_modeset_acquire_ctx *ctx)
 {
+	struct drm_i915_private *dev_priv = to_i915(dev);
 	struct drm_crtc_state *crtc_state;
 	struct drm_crtc *crtc;
 	int i, ret;
 
 	intel_modeset_setup_hw_state(dev, ctx);
+
+	intel_display_set_init_power(dev_priv, false);
+	intel_power_domains_verify_state(dev_priv);
+
 	i915_redisable_vga(to_i915(dev));
 
 	if (!state)
@@ -15890,9 +15895,6 @@ intel_modeset_setup_hw_state(struct drm_device *dev,
 		if (WARN_ON(put_domains))
 			modeset_put_power_domains(dev_priv, put_domains);
 	}
-	intel_display_set_init_power(dev_priv, false);
-
-	intel_power_domains_verify_state(dev_priv);
 
 	intel_fbc_init_pipe_state(dev_priv);
 }
-- 
2.18.0



More information about the Intel-gfx-trybot mailing list