Merge tag 'drm-for-v4.15-part2-fixes' of git://people.freedesktop.org/~airlied/linux
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 28 Nov 2017 18:01:15 +0000 (10:01 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 28 Nov 2017 18:01:15 +0000 (10:01 -0800)
Pull drm fixes from Dave Airlie:

 - TTM regression fix for some virt gpus (bochs vga)

 - a few i915 stable fixes

 - one vc4 fix

 - one uapi fix

* tag 'drm-for-v4.15-part2-fixes' of git://people.freedesktop.org/~airlied/linux:
  drm/ttm: don't attempt to use hugepages if dma32 requested (v2)
  drm/vblank: Pass crtc_id to page_flip_ioctl.
  drm/i915: Fix init_clock_gating for resume
  drm/i915: Mark the userptr invalidate workqueue as WQ_MEM_RECLAIM
  drm/i915: Clear breadcrumb node when cancelling signaling
  drm/i915/gvt: ensure -ve return value is handled correctly
  drm/i915: Re-register PMIC bus access notifier on runtime resume
  drm/i915: Fix false-positive assert_rpm_wakelock_held in i915_pmic_bus_access_notifier v2
  drm/edid: Don't send non-zero YQ in AVI infoframe for HDMI 1.x sinks
  drm/vc4: Account for interrupts in flight

1  2 
drivers/gpu/drm/i915/i915_drv.c
drivers/gpu/drm/i915/i915_gem_userptr.c

index 960d3d8b95b8e5d647b85b2baed7b2c5b68d83cf,7d9b07df32fade5339e8ba7e176486fd36e1cfd3..2cf10d17acfbf3a3c6c6af30afb5f5a01d6103ad
@@@ -1325,7 -1325,7 +1325,7 @@@ int i915_driver_load(struct pci_dev *pd
         * becaue the HDA driver may require us to enable the audio power
         * domain during system suspend.
         */
 -      pdev->dev_flags |= PCI_DEV_FLAGS_NEEDS_RESUME;
 +      dev_pm_set_driver_flags(&pdev->dev, DPM_FLAG_NEVER_SKIP);
  
        ret = i915_driver_init_early(dev_priv, ent);
        if (ret < 0)
@@@ -1714,6 -1714,7 +1714,7 @@@ static int i915_drm_resume(struct drm_d
        intel_guc_resume(dev_priv);
  
        intel_modeset_init_hw(dev);
+       intel_init_clock_gating(dev_priv);
  
        spin_lock_irq(&dev_priv->irq_lock);
        if (dev_priv->display.hpd_irq_setup)
@@@ -2618,6 -2619,8 +2619,8 @@@ static int intel_runtime_resume(struct 
                ret = vlv_resume_prepare(dev_priv, true);
        }
  
+       intel_uncore_runtime_resume(dev_priv);
        /*
         * No point of rolling back things in case of an error, as the best
         * we can do is to hope that things will still work (and disable RPM).
index 135fc750a8375f172e130c6b45b85747535693d9,ccde12d9e5f549c6c5732f50fc3689ab5aa312ce..382a77a1097e735468558415d3fa860afbb8c818
@@@ -172,7 -172,9 +172,9 @@@ i915_mmu_notifier_create(struct mm_stru
        spin_lock_init(&mn->lock);
        mn->mn.ops = &i915_gem_userptr_notifier;
        mn->objects = RB_ROOT_CACHED;
-       mn->wq = alloc_workqueue("i915-userptr-release", WQ_UNBOUND, 0);
+       mn->wq = alloc_workqueue("i915-userptr-release",
+                                WQ_UNBOUND | WQ_MEM_RECLAIM,
+                                0);
        if (mn->wq == NULL) {
                kfree(mn);
                return ERR_PTR(-ENOMEM);
@@@ -547,7 -549,7 +549,7 @@@ __i915_gem_userptr_get_pages_worker(str
        }
        mutex_unlock(&obj->mm.lock);
  
 -      release_pages(pvec, pinned, 0);
 +      release_pages(pvec, pinned);
        kvfree(pvec);
  
        i915_gem_object_put(obj);
@@@ -660,7 -662,7 +662,7 @@@ static int i915_gem_userptr_get_pages(s
                __i915_gem_userptr_set_active(obj, true);
  
        if (IS_ERR(pages))
 -              release_pages(pvec, pinned, 0);
 +              release_pages(pvec, pinned);
        kvfree(pvec);
  
        return PTR_ERR_OR_ZERO(pages);
@@@ -827,7 -829,7 +829,7 @@@ int i915_gem_init_userptr(struct drm_i9
  
        dev_priv->mm.userptr_wq =
                alloc_workqueue("i915-userptr-acquire",
-                               WQ_HIGHPRI | WQ_MEM_RECLAIM,
+                               WQ_HIGHPRI | WQ_UNBOUND,
                                0);
        if (!dev_priv->mm.userptr_wq)
                return -ENOMEM;