[PATCH 4/4] init-power

Chris Wilson chris at chris-wilson.co.uk
Sat Aug 11 18:51:58 UTC 2018


---
 drivers/gpu/drm/i915/i915_drv.c      | 22 +++++++++++++++-------
 drivers/gpu/drm/i915/intel_display.c |  5 -----
 2 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index eb6e2107b5b6..b600fa76711a 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -664,13 +664,6 @@ static int i915_load_modeset_init(struct drm_device *dev)
 	if (ret)
 		goto cleanup_vga_client;
 
-	/* must happen before intel_power_domains_init_hw() on VLV/CHV */
-	intel_update_rawclk(dev_priv);
-
-	intel_power_domains_init_hw(dev_priv, false);
-
-	intel_csr_ucode_init(dev_priv);
-
 	ret = intel_irq_install(dev_priv);
 	if (ret)
 		goto cleanup_csr;
@@ -921,6 +914,8 @@ static int i915_driver_init_early(struct drm_i915_private *dev_priv)
 	intel_init_audio_hooks(dev_priv);
 	intel_display_crc_init(dev_priv);
 
+	drm_mode_config_init(&dev_priv->drm);
+
 	intel_detect_preproduction_hw(dev_priv);
 
 	return 0;
@@ -1404,7 +1399,17 @@ int i915_driver_load(struct pci_dev *pdev, const struct pci_device_id *ent)
 			goto out_cleanup_hw;
 	}
 
+	intel_csr_ucode_init(dev_priv);
+
+	intel_update_rawclk(dev_priv);
+	intel_power_domains_init_hw(dev_priv, false);
+
 	ret = i915_load_modeset_init(&dev_priv->drm);
+
+	/* intel_power_domains_init_hw() counter part  */
+	intel_display_set_init_power(dev_priv, false);
+	intel_power_domains_verify_state(dev_priv);
+
 	if (ret < 0)
 		goto out_cleanup_hw;
 
@@ -1777,6 +1782,9 @@ static int i915_drm_resume(struct drm_device *dev)
 
 	intel_opregion_notify_adapter(dev_priv, PCI_D0);
 
+	intel_display_set_init_power(dev_priv, false);
+	intel_power_domains_verify_state(dev_priv);
+
 	enable_rpm_wakeref_asserts(dev_priv);
 
 	return 0;
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index cc3f21ddae9c..580b84d75a70 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -15186,8 +15186,6 @@ int intel_modeset_init(struct drm_device *dev)
 
 	dev_priv->modeset_wq = alloc_ordered_workqueue("i915_modeset", 0);
 
-	drm_mode_config_init(dev);
-
 	dev->mode_config.min_width = 0;
 	dev->mode_config.min_height = 0;
 
@@ -15900,9 +15898,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