]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
Merge drm/drm-next into drm-misc-next
authorSean Paul <seanpaul@chromium.org>
Wed, 24 Oct 2018 18:26:04 +0000 (14:26 -0400)
committerSean Paul <seanpaul@chromium.org>
Wed, 24 Oct 2018 18:26:04 +0000 (14:26 -0400)
4.19 is out, Lyude asked for a backmerge, and it's been a while. All
very good reasons on their own :-)

Signed-off-by: Sean Paul <seanpaul@chromium.org>
12 files changed:
1  2 
MAINTAINERS
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
drivers/gpu/drm/drm_panel_orientation_quirks.c
drivers/gpu/drm/drm_syncobj.c
drivers/gpu/drm/i915/i915_gem_execbuffer.c
drivers/gpu/drm/msm/adreno/a5xx_gpu.c
drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c
drivers/gpu/drm/msm/msm_drv.c
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c
drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c

diff --cc MAINTAINERS
Simple merge
index b7eaa603f368d8340bde4bcd04163e19e485de8d,5c2091dbd230307bcd8825674b0206f0433ec9d1..c8252cd4c02d1db84f65b7ff345673d1ab275ef5
@@@ -150,28 -106,36 +150,30 @@@ static void drm_syncobj_add_callback_lo
        list_add_tail(&cb->node, &syncobj->cb_list);
  }
  
 -static int drm_syncobj_fence_get_or_add_callback(struct drm_syncobj *syncobj,
 -                                               struct dma_fence **fence,
 -                                               struct drm_syncobj_cb *cb,
 -                                               drm_syncobj_func_t func)
 +static void drm_syncobj_fence_get_or_add_callback(struct drm_syncobj *syncobj,
 +                                                struct dma_fence **fence,
 +                                                struct drm_syncobj_cb *cb,
 +                                                drm_syncobj_func_t func)
  {
 -      int ret;
 +      u64 pt_value = 0;
  
 -      *fence = drm_syncobj_fence_get(syncobj);
 -      if (*fence)
 -              return 1;
+       WARN_ON(*fence);
 +      if (syncobj->type == DRM_SYNCOBJ_TYPE_BINARY) {
 +              /*BINARY syncobj always wait on last pt */
 +              pt_value = syncobj->signal_point;
  
 -      spin_lock(&syncobj->lock);
 -      /* We've already tried once to get a fence and failed.  Now that we
 -       * have the lock, try one more time just to be sure we don't add a
 -       * callback when a fence has already been set.
 -       */
 -      if (syncobj->fence) {
 -              *fence = dma_fence_get(rcu_dereference_protected(syncobj->fence,
 -                                                               lockdep_is_held(&syncobj->lock)));
 -              ret = 1;
 -      } else {
 -              *fence = NULL;
 -              drm_syncobj_add_callback_locked(syncobj, cb, func);
 -              ret = 0;
 +              if (pt_value == 0)
 +                      pt_value += DRM_SYNCOBJ_BINARY_POINT;
        }
 -      spin_unlock(&syncobj->lock);
  
 -      return ret;
 +      mutex_lock(&syncobj->cb_mutex);
 +      spin_lock(&syncobj->pt_lock);
 +      *fence = drm_syncobj_find_signal_pt_for_point(syncobj, pt_value);
 +      spin_unlock(&syncobj->pt_lock);
 +      if (!*fence)
 +              drm_syncobj_add_callback_locked(syncobj, cb, func);
 +      mutex_unlock(&syncobj->cb_mutex);
  }
  
  void drm_syncobj_add_callback(struct drm_syncobj *syncobj,
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge