drm/i915: Prevent using uninitialized MMIO funcs
authorBen Widawsky <benjamin.widawsky@intel.com>
Sat, 5 Oct 2013 04:22:49 +0000 (21:22 -0700)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 10 Oct 2013 10:47:07 +0000 (12:47 +0200)
For upcoming patches which will have GEN specific MMIO functions, we'll
need to initialize the uncore data structure earlier than we do today.

If we do not do this, the following will be problematic:

intel_uncore_sanitize
intel_disable_gt_powersave
gen6_disable_rps
I915_WRITE(GEN6_RC_CONTROL, 0); <--- MMIO
intel_uncore_init // initializes MMIO

By initializing the function pointers first, we should be safe.

Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
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 b3873c945d1b19e7393433240596e38b0a2330b8..ff2083e805ee3929123be66a2f021d995d7add05 100644 (file)
@@ -1614,8 +1614,8 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
 
        intel_irq_init(dev);
        intel_pm_init(dev);
-       intel_uncore_sanitize(dev);
        intel_uncore_init(dev);
+       intel_uncore_sanitize(dev);
 
        /* Try to make sure MCHBAR is enabled before poking at it */
        intel_setup_mchbar(dev);