]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/gpu/drm/i915/i915_dma.c
Merge tag 'v3.12-rc2' into drm-intel-next
[karo-tx-linux.git] / drivers / gpu / drm / i915 / i915_dma.c
index fdaa0915ce56cfe25bf403a3833b4d46cbb88693..512645fdaff5f2d28487b41df4ea6ced0a65bbf5 100644 (file)
@@ -52,7 +52,7 @@
        intel_ring_emit(LP_RING(dev_priv), x)
 
 #define ADVANCE_LP_RING() \
-       intel_ring_advance(LP_RING(dev_priv))
+       __intel_ring_advance(LP_RING(dev_priv))
 
 /**
  * Lock test for when it's just for synchronization of ring access.
@@ -1290,9 +1290,12 @@ static int i915_load_modeset_init(struct drm_device *dev)
         * then we do not take part in VGA arbitration and the
         * vga_client_register() fails with -ENODEV.
         */
-       ret = vga_client_register(dev->pdev, dev, NULL, i915_vga_set_decode);
-       if (ret && ret != -ENODEV)
-               goto out;
+       if (!HAS_PCH_SPLIT(dev)) {
+               ret = vga_client_register(dev->pdev, dev, NULL,
+                                         i915_vga_set_decode);
+               if (ret && ret != -ENODEV)
+                       goto out;
+       }
 
        intel_register_dsm_handler();
 
@@ -1321,6 +1324,8 @@ static int i915_load_modeset_init(struct drm_device *dev)
 
        INIT_WORK(&dev_priv->console_resume_work, intel_console_resume);
 
+       intel_init_power_well(dev);
+
        intel_modeset_gem_init(dev);
 
        /* Always safe in the mode setting case. */
@@ -1348,6 +1353,12 @@ static int i915_load_modeset_init(struct drm_device *dev)
         */
        intel_fbdev_initial_config(dev);
 
+       /*
+        * Must do this after fbcon init so that
+        * vgacon_save_screen() works during the handover.
+        */
+       i915_disable_vga_mem(dev);
+
        /* Only enable hotplug handling once the fbdev is fully set up. */
        dev_priv->enable_hotplug_processing = true;
 
@@ -1667,7 +1678,7 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
        return 0;
 
 out_gem_unload:
-       if (dev_priv->mm.inactive_shrinker.shrink)
+       if (dev_priv->mm.inactive_shrinker.scan_objects)
                unregister_shrinker(&dev_priv->mm.inactive_shrinker);
 
        if (dev->pdev->msi_enabled)
@@ -1706,7 +1717,7 @@ int i915_driver_unload(struct drm_device *dev)
 
        i915_teardown_sysfs(dev);
 
-       if (dev_priv->mm.inactive_shrinker.shrink)
+       if (dev_priv->mm.inactive_shrinker.scan_objects)
                unregister_shrinker(&dev_priv->mm.inactive_shrinker);
 
        mutex_lock(&dev->struct_mutex);