drm/i915: Move unload time GTT, MSI IRQ cleanup later
authorImre Deak <imre.deak@intel.com>
Wed, 16 Mar 2016 11:39:01 +0000 (13:39 +0200)
committerImre Deak <imre.deak@intel.com>
Thu, 17 Mar 2016 13:22:07 +0000 (15:22 +0200)
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
drivers/gpu/drm/i915/i915_dma.c

index 40a5af4038caaa70ab6b2afcde496eba0844684a..fb28a03e96c67ee3619093b86779092ce3930934 100644 (file)
@@ -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);