drm/i915: Move power well init earlier during driver load
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Mon, 16 Sep 2013 14:38:34 +0000 (17:38 +0300)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 1 Oct 2013 05:45:09 +0000 (07:45 +0200)
intel_modeset_init() will already attempt to disable VGA. In order to do
that, it needs the power well to be on. So move the power well init
to happen before intel_modeset_init() during driver load.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_dma.c

index e172624f88180d3ec000670c60d1d043a8b63e29..a71bb127e26191d2659304a3d6b002ce85092ae2 100644 (file)
@@ -1314,21 +1314,21 @@ static int i915_load_modeset_init(struct drm_device *dev)
        if (ret)
                goto cleanup_gem_stolen;
 
+       intel_init_power_well(dev);
+
+       /* Keep VGA alive until i915_disable_vga_mem() */
+       intel_display_power_get(dev, POWER_DOMAIN_VGA);
+
        /* Important: The output setup functions called by modeset_init need
         * working irqs for e.g. gmbus and dp aux transfers. */
        intel_modeset_init(dev);
 
        ret = i915_gem_init(dev);
        if (ret)
-               goto cleanup_irq;
+               goto cleanup_power;
 
        INIT_WORK(&dev_priv->console_resume_work, intel_console_resume);
 
-       intel_init_power_well(dev);
-
-       /* Keep VGA alive until i915_disable_vga_mem() */
-       intel_display_power_get(dev, POWER_DOMAIN_VGA);
-
        intel_modeset_gem_init(dev);
 
        /* Always safe in the mode setting case. */
@@ -1379,7 +1379,8 @@ cleanup_gem:
        mutex_unlock(&dev->struct_mutex);
        i915_gem_cleanup_aliasing_ppgtt(dev);
        drm_mm_takedown(&dev_priv->gtt.base.mm);
-cleanup_irq:
+cleanup_power:
+       intel_display_power_put(dev, POWER_DOMAIN_VGA);
        drm_irq_uninstall(dev);
 cleanup_gem_stolen:
        i915_gem_cleanup_stolen(dev);