Merge branch 'irqdomain/merge' of git://git.secretlab.ca/git/linux-2.6
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 29 Mar 2012 21:11:54 +0000 (14:11 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 29 Mar 2012 21:11:54 +0000 (14:11 -0700)
Pull the code to generalize the powerpc VIRQ_DEBUG code from Grant Likely.

That code had been moved into generic irqdomain code, but still had
powerpc-specific code and could only be enabled on powerpc.

* 'irqdomain/merge' of git://git.secretlab.ca/git/linux-2.6:
  irqdomain/powerpc: updated defconfigs for VIRQ_DEBUG rename
  irqdomain: Remove powerpc dependency from debugfs file

drivers/gpu/drm/i915/i915_drv.c
drivers/gpu/drm/i915/intel_drv.h
drivers/gpu/drm/i915/intel_fb.c
fs/proc/task_mmu.c

index 0694e170a338932ca7f81fa3559e0bf615076949..1a7559b59997cfaa8782e898e7c39cce09465f02 100644 (file)
@@ -467,6 +467,10 @@ static int i915_drm_freeze(struct drm_device *dev)
        /* Modeset on resume, not lid events */
        dev_priv->modeset_on_lid = 0;
 
+       console_lock();
+       intel_fbdev_set_suspend(dev, 1);
+       console_unlock();
+
        return 0;
 }
 
@@ -539,6 +543,9 @@ static int i915_drm_thaw(struct drm_device *dev)
 
        dev_priv->modeset_on_lid = 0;
 
+       console_lock();
+       intel_fbdev_set_suspend(dev, 0);
+       console_unlock();
        return error;
 }
 
index 9cec6c3937faef852f036ee5134cec067367e52d..5a14149b3794237ad26ee24bce00b5938e157b93 100644 (file)
@@ -382,7 +382,7 @@ extern int intel_framebuffer_init(struct drm_device *dev,
                                  struct drm_i915_gem_object *obj);
 extern int intel_fbdev_init(struct drm_device *dev);
 extern void intel_fbdev_fini(struct drm_device *dev);
-
+extern void intel_fbdev_set_suspend(struct drm_device *dev, int state);
 extern void intel_prepare_page_flip(struct drm_device *dev, int plane);
 extern void intel_finish_page_flip(struct drm_device *dev, int pipe);
 extern void intel_finish_page_flip_plane(struct drm_device *dev, int plane);
index 2d8766978388d43316263fa542a31971b078b176..19ecd78b8a2ce572c98b1407122e1d97d94c4781 100644 (file)
@@ -254,6 +254,16 @@ void intel_fbdev_fini(struct drm_device *dev)
        kfree(dev_priv->fbdev);
        dev_priv->fbdev = NULL;
 }
+
+void intel_fbdev_set_suspend(struct drm_device *dev, int state)
+{
+       drm_i915_private_t *dev_priv = dev->dev_private;
+       if (!dev_priv->fbdev)
+               return;
+
+       fb_set_suspend(dev_priv->fbdev->helper.fbdev, state);
+}
+
 MODULE_LICENSE("GPL and additional rights");
 
 void intel_fb_output_poll_changed(struct drm_device *dev)
index c283832d411d4ea79170210e68fb27f008aa49ea..2b9a7607cbd5496084ec386fcc2377752ab75107 100644 (file)
@@ -783,7 +783,6 @@ static int pagemap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end,
 
        /* find the first VMA at or above 'addr' */
        vma = find_vma(walk->mm, addr);
-       spin_lock(&walk->mm->page_table_lock);
        if (pmd_trans_huge_lock(pmd, vma) == 1) {
                for (; addr != end; addr += PAGE_SIZE) {
                        unsigned long offset;