summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/i915/i915_dma.c
diff options
context:
space:
mode:
authorImre Deak <imre.deak@intel.com>2016-03-16 13:39:01 +0200
committerImre Deak <imre.deak@intel.com>2016-03-17 15:22:07 +0200
commit882c5a83b5116bff597aefec16ad016641dfea05 (patch)
tree6b8d0988340897ef0cc5f130a5b28aa9945dcbc2 /drivers/gpu/drm/i915/i915_dma.c
parent250ad48e2e2f2aeebafd52d67768392eca5077ad (diff)
drm/i915: Move unload time GTT, MSI IRQ cleanup later
Move the GTT,MSI IRQ cleanup later so that it matches their corresponding init order. Also fix the order of these calls wrt. each other to match their corresponding init order. Signed-off-by: Imre Deak <imre.deak@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Link: http://patchwork.freedesktop.org/patch/msgid/1458128348-15730-13-git-send-email-imre.deak@intel.com
Diffstat (limited to 'drivers/gpu/drm/i915/i915_dma.c')
-rw-r--r--drivers/gpu/drm/i915/i915_dma.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index 40a5af4038ca..fb28a03e96c6 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -1220,9 +1220,6 @@ int i915_driver_unload(struct drm_device *dev)
i915_teardown_sysfs(dev);
- io_mapping_free(dev_priv->gtt.mappable);
- arch_phys_wc_del(dev_priv->gtt.mtrr);
-
acpi_video_unregister();
i915_gem_shrinker_cleanup(dev_priv);
@@ -1253,9 +1250,6 @@ int i915_driver_unload(struct drm_device *dev)
cancel_delayed_work_sync(&dev_priv->gpu_error.hangcheck_work);
i915_destroy_error_state(dev);
- if (dev->pdev->msi_enabled)
- pci_disable_msi(dev->pdev);
-
intel_opregion_fini(dev);
/* Flush any outstanding unpin_work. */
@@ -1270,8 +1264,11 @@ int i915_driver_unload(struct drm_device *dev)
intel_power_domains_fini(dev_priv);
+ if (dev->pdev->msi_enabled)
+ pci_disable_msi(dev->pdev);
pm_qos_remove_request(&dev_priv->pm_qos);
-
+ arch_phys_wc_del(dev_priv->gtt.mtrr);
+ io_mapping_free(dev_priv->gtt.mappable);
i915_global_gtt_cleanup(dev);
intel_uncore_fini(dev);