drm/i915: Move load time audio component registration earlier
authorImre Deak <imre.deak@intel.com>
Wed, 16 Mar 2016 11:38:59 +0000 (13:38 +0200)
committerImre Deak <imre.deak@intel.com>
Thu, 17 Mar 2016 13:22:06 +0000 (15:22 +0200)
We should register all the interfaces before we enable runtime PM.

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-11-git-send-email-imre.deak@intel.com
drivers/gpu/drm/i915/i915_dma.c

index 2d279a60d3c49e4e8ff00c2daf8935006fd1ed0b..2bdafa998704eb2b9ce50c51592a35da2f63ba55 100644 (file)
@@ -1164,10 +1164,10 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
        if (IS_GEN5(dev))
                intel_gpu_ips_init(dev_priv);
 
-       intel_runtime_pm_enable(dev_priv);
-
        i915_audio_component_init(dev_priv);
 
+       intel_runtime_pm_enable(dev_priv);
+
        intel_runtime_pm_put(dev_priv);
 
        return 0;
@@ -1206,8 +1206,6 @@ int i915_driver_unload(struct drm_device *dev)
 
        intel_fbdev_fini(dev);
 
-       i915_audio_component_cleanup(dev_priv);
-
        ret = i915_gem_suspend(dev);
        if (ret) {
                DRM_ERROR("failed to idle hardware: %d\n", ret);
@@ -1216,6 +1214,8 @@ int i915_driver_unload(struct drm_device *dev)
 
        intel_power_domains_fini(dev_priv);
 
+       i915_audio_component_cleanup(dev_priv);
+
        intel_gpu_ips_teardown();
 
        i915_teardown_sysfs(dev);