Merge tag 'drm-intel-fixes-2015-07-15' into drm-intel-next-queued
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 15 Jul 2015 14:36:50 +0000 (16:36 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 15 Jul 2015 14:36:50 +0000 (16:36 +0200)
Backmerge fixes since it's getting out of hand again with the massive
split due to atomic between -next and 4.2-rc. All the bugfixes in
4.2-rc are addressed already (by converting more towards atomic
instead of minimal duct-tape) so just always pick the version in next
for the conflicts in modeset code.

All the other conflicts are just adjacent lines changed.

Conflicts:
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_gem_gtt.c
drivers/gpu/drm/i915/intel_display.c
drivers/gpu/drm/i915/intel_drv.h
drivers/gpu/drm/i915/intel_ringbuffer.h

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
20 files changed:
1  2 
drivers/char/agp/intel-gtt.c
drivers/gpu/drm/drm_crtc.c
drivers/gpu/drm/i915/i915_debugfs.c
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_gem.c
drivers/gpu/drm/i915/i915_gem_context.c
drivers/gpu/drm/i915/i915_gem_execbuffer.c
drivers/gpu/drm/i915/i915_gem_gtt.c
drivers/gpu/drm/i915/i915_gem_stolen.c
drivers/gpu/drm/i915/i915_ioc32.c
drivers/gpu/drm/i915/i915_irq.c
drivers/gpu/drm/i915/i915_reg.h
drivers/gpu/drm/i915/i915_trace.h
drivers/gpu/drm/i915/intel_audio.c
drivers/gpu/drm/i915/intel_display.c
drivers/gpu/drm/i915/intel_dp.c
drivers/gpu/drm/i915/intel_lrc.c
drivers/gpu/drm/i915/intel_opregion.c
drivers/gpu/drm/i915/intel_ringbuffer.c
drivers/gpu/drm/i915/intel_ringbuffer.h

Simple merge
Simple merge
Simple merge
index 4af33d59d507048d113b918c49a0526c1687fa92,5f27290201e074c5d9a1673d710c96846b61c08c..01fbdc57462a25e5b5a5139d4086403a0657914d
@@@ -866,7 -826,7 +866,8 @@@ struct intel_context 
        struct kref ref;
        int user_handle;
        uint8_t remap_slice;
+       struct drm_i915_private *i915;
 +      int flags;
        struct drm_i915_file_private *file_priv;
        struct i915_ctx_hang_stats hang_stats;
        struct i915_hw_ppgtt *ppgtt;
index aaabf3c259d50e1c665b79eaed4b34f85e419a6b,52b446b27b4d08359ce50577f53176629e323a64..d9f2701b45932e48c77fe0826158240e53c162ca
@@@ -2548,10 -2538,34 +2554,11 @@@ void __i915_add_request(struct drm_i915
         */
        request->batch_obj = obj;
  
 -      if (!i915.enable_execlists) {
 -              /* Hold a reference to the current context so that we can inspect
 -               * it later in case a hangcheck error event fires.
 -               */
 -              request->ctx = ring->last_context;
 -              if (request->ctx)
 -                      i915_gem_context_reference(request->ctx);
 -      }
 -
        request->emitted_jiffies = jiffies;
+       ring->last_submitted_seqno = request->seqno;
        list_add_tail(&request->list, &ring->request_list);
 -      request->file_priv = NULL;
 -
 -      if (file) {
 -              struct drm_i915_file_private *file_priv = file->driver_priv;
 -
 -              spin_lock(&file_priv->mm.lock);
 -              request->file_priv = file_priv;
 -              list_add_tail(&request->client_list,
 -                            &file_priv->mm.request_list);
 -              spin_unlock(&file_priv->mm.lock);
 -
 -              request->pid = get_pid(task_pid(current));
 -      }
  
        trace_i915_gem_request_add(request);
 -      ring->outstanding_lazy_request = NULL;
  
        i915_queue_hangcheck(ring->dev);
  
index ed65f24867b4257903b4231620ae580957b35c09,56b52a4767d48c56e40f6d4444204485d7cc5d94..c2a291e09bd98222a20239881e8d5cbca6a49d6a
@@@ -583,9 -513,10 +583,9 @@@ static void gen8_ppgtt_clear_range(stru
        while (num_entries) {
                struct i915_page_directory *pd;
                struct i915_page_table *pt;
 -              struct page *page_table;
  
                if (WARN_ON(!ppgtt->pdp.page_directory[pdpe]))
-                       continue;
+                       break;
  
                pd = ppgtt->pdp.page_directory[pdpe];
  
  
                pt = pd->page_table[pde];
  
 -              if (WARN_ON(!pt->page))
 +              if (WARN_ON(!px_page(pt)))
-                       continue;
+                       break;
  
 -              page_table = pt->page;
 -
                last_pte = pte + num_entries;
                if (last_pte > GEN8_PTES)
                        last_pte = GEN8_PTES;
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 0ea89ea301827d41fc1a03ec07718a577541a692,4be66f60504d13661f07886cb891fd9417da754f..2e85fda949638079d2c7c4c9f8ac9daf39f97f5f
@@@ -292,6 -271,17 +292,13 @@@ struct  intel_engine_cs 
         */
        struct list_head request_list;
  
 -      /**
 -       * Do we have some not yet emitted requests outstanding?
 -       */
 -      struct drm_i915_gem_request *outstanding_lazy_request;
+       /**
+        * Seqno of request most recently submitted to request_list.
+        * Used exclusively by hang checker to avoid grabbing lock while
+        * inspecting request list.
+        */
+       u32 last_submitted_seqno;
        bool gpu_caches_dirty;
  
        wait_queue_head_t irq_queue;