drm/i915: enable the power well before module unload
authorPaulo Zanoni <paulo.r.zanoni@intel.com>
Wed, 14 Aug 2013 17:40:37 +0000 (14:40 -0300)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 22 Aug 2013 11:31:50 +0000 (13:31 +0200)
Our driver initialization doesn't seem to be ready to load when the
power well is disabled: we hit a few "Unclaimed register" messages. So
do just like we already do for the suspend/resume path: enable the
power well before unloading.

At some point we'll want to be able to survive suspend/resume and
load/unload with the power well disabled, but for now let's just fix
the regression.

Regression introduced by the following commit:

commit bf51d5e2cda5d36d98e4b46ac7fca9461e512c41
Author: Paulo Zanoni <paulo.r.zanoni@intel.com>
Date:   Wed Jul 3 17:12:13 2013 -0300
    drm/i915: switch disable_power_well default value to 1

Bug can be reproduced by running the "module_reload" script from
intel-gpu-tools.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=67813
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Reviewed-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_dma.c

index d4c176b7d76e0544a151af0df204e038a10eac42..5a051eaab9efad4783d30dd27831e6908fb7567e 100644 (file)
@@ -1688,8 +1688,13 @@ int i915_driver_unload(struct drm_device *dev)
 
        intel_gpu_ips_teardown();
 
-       if (HAS_POWER_WELL(dev))
+       if (HAS_POWER_WELL(dev)) {
+               /* The i915.ko module is still not prepared to be loaded when
+                * the power well is not enabled, so just enable it in case
+                * we're going to unload/reload. */
+               intel_set_power_well(dev, true);
                i915_remove_power_well(dev);
+       }
 
        i915_teardown_sysfs(dev);