Backmerge tag 'v4.13-rc5' into drm-next
authorDave Airlie <airlied@redhat.com>
Tue, 15 Aug 2017 06:16:58 +0000 (16:16 +1000)
committerDave Airlie <airlied@redhat.com>
Tue, 15 Aug 2017 06:16:58 +0000 (16:16 +1000)
Linux 4.13-rc5

There's a really nasty nouveau collision, hopefully someone can take a look
once I pushed this out.

23 files changed:
1  2 
MAINTAINERS
drivers/gpu/drm/amd/amdgpu/si.c
drivers/gpu/drm/bridge/tc358767.c
drivers/gpu/drm/exynos/exynos_drm_drv.c
drivers/gpu/drm/exynos/exynos_drm_dsi.c
drivers/gpu/drm/exynos/exynos_drm_fb.c
drivers/gpu/drm/exynos/exynos_hdmi.c
drivers/gpu/drm/i915/gvt/scheduler.c
drivers/gpu/drm/i915/i915_gem_execbuffer.c
drivers/gpu/drm/i915/i915_perf.c
drivers/gpu/drm/i915/intel_color.c
drivers/gpu/drm/i915/intel_ddi.c
drivers/gpu/drm/i915/intel_display.c
drivers/gpu/drm/i915/intel_pm.c
drivers/gpu/drm/i915/selftests/mock_gem_device.c
drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c
drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
drivers/gpu/drm/nouveau/nouveau_connector.c
drivers/gpu/drm/nouveau/nouveau_display.c
drivers/gpu/drm/nouveau/nv50_display.c
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c

diff --cc MAINTAINERS
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 929f275e67aa632e10ccda6006af07515f861f48,e9503f6d110016b86311003349ff5b8ef70613d5..5fa44767c29eb4189de6e602223dc4a070f15adc
@@@ -2209,8 -2206,12 +2211,8 @@@ i915_gem_do_execbuffer(struct drm_devic
        if (err)
                goto err_rpm;
  
 -      err = eb_select_context(&eb);
 -      if (unlikely(err))
 -              goto err_unlock;
 -
        err = eb_relocate(&eb);
-       if (err)
+       if (err) {
                /*
                 * If the user expects the execobject.offset and
                 * reloc.presumed_offset to be an exact match,
Simple merge
Simple merge
Simple merge
Simple merge
index ee2a349cfe680e77e7eeb129b0eebd7965f051e5,40b224b44d1bec1bd08e970be65fe775f3a4c12e..48785ef75d33370b2fcfc150f58b8bed51cf61c4
@@@ -4459,11 -4463,11 +4459,11 @@@ static int skl_compute_plane_wm(const s
                if ((cpp * cstate->base.adjusted_mode.crtc_htotal / 512 < 1) &&
                    (plane_bytes_per_line / 512 < 1))
                        selected_result = method2;
-               else if ((ddb_allocation && ddb_allocation /
-                       fixed16_to_u32_round_up(plane_blocks_per_line)) >= 1)
+               else if (ddb_allocation >=
 -                       fixed_16_16_to_u32_round_up(plane_blocks_per_line))
 -                      selected_result = min_fixed_16_16(method1, method2);
++                       fixed16_to_u32_round_up(plane_blocks_per_line))
 +                      selected_result = min_fixed16(method1, method2);
                else if (latency >= linetime_us)
 -                      selected_result = min_fixed_16_16(method1, method2);
 +                      selected_result = min_fixed16(method1, method2);
                else
                        selected_result = method1;
        }
index 6dee4071bb3f847860a98d5cbf1e52daa8b847cc,2bc0dc9852144cfe0825b5da075333d9e85c5b9c..2efcfb18024dac19abbecca3c2b4a8d3cc7c103b
@@@ -3915,6 -3940,8 +3924,8 @@@ nv50_disp_atomic_commit_tail(struct drm
  
                NV_ATOMIC(drm, "%s: clr %04x (set %04x)\n", crtc->name,
                          asyh->clr.mask, asyh->set.mask);
 -              if (crtc_state->active && !asyh->state.active)
++              if (new_crtc_state->active && !asyh->state.active)
+                       drm_crtc_vblank_off(crtc);
  
                if (asyh->clr.mask) {
                        nv50_head_flush_clr(head, asyh, atom->flush_disable);
                        nv50_head_flush_set(head, asyh);
                        interlock_core = 1;
                }
-       }
  
-       for_each_new_crtc_in_state(state, crtc, new_crtc_state, i) {
-               if (new_crtc_state->event)
-                       drm_crtc_vblank_get(crtc);
+               if (asyh->state.active) {
 -                      if (!crtc_state->active)
++                      if (!new_crtc_state->active)
+                               drm_crtc_vblank_on(crtc);
+                       if (asyh->state.event)
+                               drm_crtc_vblank_get(crtc);
+               }
        }
  
        /* Update plane(s). */
                        NV_ERROR(drm, "%s: timeout\n", plane->name);
        }
  
 -      for_each_crtc_in_state(state, crtc, crtc_state, i) {
 -              if (crtc->state->event) {
 +      for_each_new_crtc_in_state(state, crtc, new_crtc_state, i) {
 +              if (new_crtc_state->event) {
                        unsigned long flags;
                        /* Get correct count/ts if racing with vblank irq */
-                       drm_crtc_accurate_vblank_count(crtc);
+                       if (crtc->state->active)
 -                              drm_accurate_vblank_count(crtc);
++                              drm_crtc_accurate_vblank_count(crtc);
                        spin_lock_irqsave(&crtc->dev->event_lock, flags);
 -                      drm_crtc_send_vblank_event(crtc, crtc->state->event);
 +                      drm_crtc_send_vblank_event(crtc, new_crtc_state->event);
                        spin_unlock_irqrestore(&crtc->dev->event_lock, flags);
 -                      crtc->state->event = NULL;
 +                      new_crtc_state->event = NULL;
-                       drm_crtc_vblank_put(crtc);
+                       if (crtc->state->active)
+                               drm_crtc_vblank_put(crtc);
                }
        }
  
Simple merge
Simple merge
Simple merge