|
@@ -403,6 +403,8 @@ static int i915_load_modeset_init(struct drm_device *dev)
|
|
|
if (ret)
|
|
|
goto cleanup_gem_stolen;
|
|
|
|
|
|
+ intel_setup_gmbus(dev);
|
|
|
+
|
|
|
/* Important: The output setup functions called by modeset_init need
|
|
|
* working irqs for e.g. gmbus and dp aux transfers. */
|
|
|
intel_modeset_init(dev);
|
|
@@ -452,6 +454,7 @@ cleanup_gem:
|
|
|
cleanup_irq:
|
|
|
intel_guc_ucode_fini(dev);
|
|
|
drm_irq_uninstall(dev);
|
|
|
+ intel_teardown_gmbus(dev);
|
|
|
cleanup_gem_stolen:
|
|
|
i915_gem_cleanup_stolen(dev);
|
|
|
cleanup_vga_switcheroo:
|
|
@@ -1026,7 +1029,6 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
|
|
|
|
|
|
/* Try to make sure MCHBAR is enabled before poking at it */
|
|
|
intel_setup_mchbar(dev);
|
|
|
- intel_setup_gmbus(dev);
|
|
|
intel_opregion_setup(dev);
|
|
|
|
|
|
i915_gem_load(dev);
|
|
@@ -1097,7 +1099,6 @@ out_gem_unload:
|
|
|
if (dev->pdev->msi_enabled)
|
|
|
pci_disable_msi(dev->pdev);
|
|
|
|
|
|
- intel_teardown_gmbus(dev);
|
|
|
intel_teardown_mchbar(dev);
|
|
|
pm_qos_remove_request(&dev_priv->pm_qos);
|
|
|
destroy_workqueue(dev_priv->gpu_error.hangcheck_wq);
|
|
@@ -1196,7 +1197,6 @@ int i915_driver_unload(struct drm_device *dev)
|
|
|
|
|
|
intel_csr_ucode_fini(dev_priv);
|
|
|
|
|
|
- intel_teardown_gmbus(dev);
|
|
|
intel_teardown_mchbar(dev);
|
|
|
|
|
|
destroy_workqueue(dev_priv->hotplug.dp_wq);
|