[Intel-gfx] [PULL] drm-intel-next

Daniel Vetter daniel.vetter at ffwll.ch
Fri Aug 12 17:21:42 UTC 2016

Hi Dave,

- refactor ddi buffer programming a bit (Ville)
- large-scale renaming to untangle naming in the gem code (Chris)
- rework vma/active tracking for accurately reaping idle mappings of shared
  objects (Chris)
- misc dp sst/mst probing corner case fixes (Ville)
- tons of cleanup&tunings all around in gem
- lockless (rcu-protected) request lookup, plus use it everywhere for
  non(b)locking waits (Chris)
- pipe crc debugfs fixes (Rodrigo)
- random fixes all over
- more engine code unification (Tvrtko)
- reorganize rps&rc6 setup (Chris Wilson)
- hotplug polling when in deep rpm states, especially fixes vls (Lyude)
- mocs fix for bxt (Imre)
- convert i915 request to use dma fences (Chris)
- prep work for lockless i915 requests/fences (needed for full sync integration)
  from Chris Wilson
- wait for external rendering/fences attached to dma_bufs (Chris)
- tons of small bugfixes all over

Note also contains a backmerge (git got confused), but when you've pulled
in all pending pulls (there's a few now) I want to do another backmerge to
get at the latest fences stuff from Gustavo.

Cheers, Daniel

The following changes since commit 1cf915d305b6e1d57db6c35c208016f9747ba3c6:

  Merge tag 'imx-drm-fixes-2016-07-27' of git://git.pengutronix.de/git/pza/linux into drm-next (2016-07-30 05:45:30 +1000)

are available in the git repository at:

  git://anongit.freedesktop.org/drm-intel tags/drm-intel-next-2016-08-08

for you to fetch changes up to c5b7e97b27db4f8a8ffe1072506620679043f006:

  drm/i915: Update DRIVER_DATE to 20160808 (2016-08-08 09:37:31 +0200)

- refactor ddi buffer programming a bit (Ville)
- large-scale renaming to untangle naming in the gem code (Chris)
- rework vma/active tracking for accurately reaping idle mappings of shared
  objects (Chris)
- misc dp sst/mst probing corner case fixes (Ville)
- tons of cleanup&tunings all around in gem
- lockless (rcu-protected) request lookup, plus use it everywhere for
  non(b)locking waits (Chris)
- pipe crc debugfs fixes (Rodrigo)
- random fixes all over

Akash Goel (1):
      drm/i915/gen9: Update i915_drpc_info debugfs for coarse pg & forcewake info

Bob Paauwe (1):
      drm/i915: Set legacy properties when using legacy gamma set IOCTL. (v2)

Chris Wilson (152):
      drm/i915/breadcrumbs: Queue hangcheck before sleeping
      drm/i915: Kick hangcheck from retire worker
      drm/i915: Remove temporary RPM wakeref assert disables
      drm/i915: Update ifdeffery for mutex->owner
      drm/i915: Provide argument names for static stubs
      drm/i915: Flush GT idle status upon reset
      drm/i915: Preserve current RPS frequency across init
      drm/i915: Perform static RPS frequency setup before userspace
      drm/i915: Move overclocking detection to alongside RPS frequency detection
      drm/i915: Define a separate variable and control for RPS waitboost frequency
      drm/i915: Remove superfluous powersave work flushing
      drm/i915: Defer enabling rc6 til after we submit the first batch/context
      drm/i915: Hide gen6_update_ring_freq()
      drm/i915/fbdev: Drain the suspend worker on retiring
      drm/i915/fbdev: Check for the framebuffer before use
      drm/i915/evict: Always switch away from the current context
      drm/i915: Flush logical context image out to memory upon suspend
      drm/i915: Handle ENOSPC after failing to insert a mappable node
      drm/i915: Move GEM request routines to i915_gem_request.c
      drm/i915: Retire oldest completed request before allocating next
      drm/i915: Mark all current requests as complete before resetting them
      drm/i915: Derive GEM requests from dma-fence
      drm/i915: Disable waitboosting for fence_wait()
      drm/i915: Disable waitboosting for mmioflips/semaphores
      drm/i915: Mark imported dma-buf objects as being coherent
      drm/i915: Wait on external rendering for GEM objects
      drm/i915: Rename request reference/unreference to get/put
      drm/i915: Rename i915_gem_context_reference/unreference()
      drm/i915: Wrap drm_gem_object_lookup in i915_gem_object_lookup
      drm/i915: Wrap drm_gem_object_reference in i915_gem_object_get
      drm/i915: Rename drm_gem_object_unreference in preparation for lockless free
      drm/i915: Rename drm_gem_object_unreference_unlocked in preparation for lockless free
      drm/i915: Treat ringbuffer writes as write to normal memory
      drm/i915: Rename ring->virtual_start as ring->vaddr
      drm/i915: Convert i915_semaphores_is_enabled over to early sanitize
      drm/i915: Enable RC6 immediately
      Revert "drm/i915: Enable RC6 immediately"
      drm/i915: Drop racy markup of missed-irqs from idle-worker
      drm/i915: Update the breadcrumb interrupt counter before enabling
      drm/i915: Reduce breadcrumb lock coverage for intel_engine_enable_signaling()
      drm/i915: Prefer list_first_entry_or_null
      drm/i915: Only clear the client pointer when tearing down the file
      drm/i915: Only drop the batch-pool's object reference
      drm/i915/cmdparser: Remove stray intel_engine_cs *ring
      drm/i915: Use engine to refer to the user's BSD intel_engine_cs
      drm/i915: Avoid using intel_engine_cs *ring for GPU error capture
      drm/i915: Remove stray intel_engine_cs ring identifiers from i915_gem.c
      drm/i915: Update a couple of hangcheck comments to talk about engines
      drm/i915: Fix up some stray to_i915(dev) after a recent merge
      drm/i915: Add missing ring_mask to Pineview
      drm/i915: Protect older gen against intel_gt_init_powersave()
      drm/i915: Unify intel_logical_ring_emit and intel_ring_emit
      drm/i915: Rename request->ringbuf to request->ring
      drm/i915: Rename intel_context[engine].ringbuf
      drm/i915: Rename struct intel_ringbuffer to struct intel_ring
      drm/i915: Rename residual ringbuf parameters
      drm/i915: Rename intel_pin_and_map_ring()
      drm/i915: Remove obsolete engine->gpu_caches_dirty
      drm/i915: Reduce engine->emit_flush() to a single mode parameter
      drm/i915: Simplify request_alloc by returning the allocated request
      drm/i915: Unify legacy/execlists emission of MI_BATCHBUFFER_START
      drm/i915: Remove intel_ring_get_tail()
      drm/i915: Convert engine->write_tail to operate on a request
      drm/i915: Move the modulus for ring emission to the register write
      drm/i915: Unify request submission
      drm/i915/lrc: Update function names to match request flow
      drm/i915: Stop passing caller's num_dwords to engine->semaphore.signal()
      drm/i915: Reuse legacy breadcrumbs + tail emission
      drm/i915/ringbuffer: Specialise SNB+ request emission for semaphores
      drm/i915: Remove duplicate golden render state init from execlists
      drm/i915: Refactor golden render state emission to unconfuse gcc
      drm/i915: Unify legacy/execlists submit_execbuf callbacks
      drm/i915: Simplify calling engine->sync_to
      drm/i915: Rename engine->semaphore.sync_to, engine->sempahore.signal locals
      drm/i915: Move the common engine cleanup to intel_engine_cs.c
      drm/i915: Amalgamate GGTT/ppGTT vma debug list walkers
      drm/i915: Split GGTT initialisation between probing and setup
      drm/i915: Update GGTT initialisation functions to take drm_i915_private
      drm/i915: Split early global GTT initialisation
      drm/i915: Rearrange GGTT probing to avoid needing a vfunc
      drm/i915: Store owning file on the i915_address_space
      drm/i915: Count how many VMA are bound for an object
      drm/i915: Be more careful when unbinding vma
      drm/i915: Kill drop_pages()
      drm/i915: Introduce i915_gem_active for request tracking
      drm/i915: Prepare i915_gem_active for annotations
      drm/i915: Mark up i915_gem_active for locking annotation
      drm/i915: Refactor blocking waits
      drm/i915: Rename request->list to link for consistency
      drm/i915: Remove obsolete i915_gem_object_flush_active()
      drm/i915: Refactor activity tracking for requests
      drm/i915: Track requests inside each intel_ring
      drm/i915: Convert intel_overlay to request tracking
      drm/i915: Move the special case wait-request handling to its one caller
      drm/i915: Disable waitboosting for a saturated engine
      drm/i915: s/__i915_wait_request/i915_wait_request/
      drm/i915: Double check activity before relocations
      drm/i915: Move request list retirement to i915_gem_request.c
      drm/i915: i915_vma_move_to_active prep patch
      drm/i915: Track active vma requests
      drm/i915: Release vma when the handle is closed
      drm/i915: Mark the context and address space as closed
      Revert "drm/i915: Clean up associated VMAs on context destruction"
      drm/i915: Fix use of engine->index for register offset
      drm/i915/fbc: FBC causes display flicker when VT-d is enabled on Skylake
      drm/i915: Add missing rpm wakelock to GGTT pread
      drm/i915: Acquire audio powerwell for HD-Audio registers
      drm/i915: Combine loops within i915_gem_evict_something
      drm/i915: Remove surplus drm_device parameter to i915_gem_evict_something()
      drm/i915: Double check the active status on the batch pool
      drm/i915: Remove request retirement before each batch
      drm/i915: Remove i915_gem_execbuffer_retire_commands()
      drm/i915: Fix up vma alignment to be u64
      drm/i915: Pad GTT views of exec objects up to user specified size
      drm/i915: Reduce WARN(i915_gem_valid_gtt_space) to a debug-only check
      drm/i915: Split insertion/binding of an object into the VM
      drm/i915: Convert 4096 alignment request to 0 for drm_mm allocations
      drm/i915: Update the GGTT size/alignment query functions
      drm/i915: Update i915_gem_get_ggtt_size/_alignment to use drm_i915_private
      drm/i915: Record allocated vma size
      drm/i915: Wrap vma->pin_count accessors with small inline helpers
      drm/i915: Start passing around i915_vma from execbuffer
      drm/i915: Combine all i915_vma bitfields into a single set of flags
      drm/i915: Make i915_vma_pin() small and inline
      drm/i915: Remove highly confusing i915_gem_obj_ggtt_pin()
      drm/i915: Separate intel_frontbuffer into its own header
      drm/i915: Make fb_tracking.lock a spinlock
      drm/i915: Use atomics to manipulate obj->frontbuffer_bits
      drm/i915: Use dev_priv consistently through the intel_frontbuffer interface
      drm/i915: Move obj->active:5 to obj->flags
      drm/i915: Move i915_gem_object_wait_rendering()
      drm/i915: Enable lockless lookup of request tracking via RCU
      drm/i915: Export our request as a dma-buf fence on the reservation object
      drm/i915: Introduce i915_gem_active_wait_unlocked()
      drm/i915: Convert non-blocking waits for requests over to using RCU
      drm/i915: Convert non-blocking userptr waits for requests over to using RCU
      drm/i915/userptr: Remove superfluous interruptible=false on waiting
      drm/i915: Remove forced stop ring on suspend/unload
      drm/i915: Enable i915_gem_wait_for_idle() without holding struct_mutex
      drm/i915: Simplify do_idling() (Ironlake vt-d w/a)
      drm/i915/shrinker: Wait before acquiring struct_mutex under oom
      drm/i915: Tidy generation of the GTT mmap offset
      drm/i915: Remove unused no-shrinker-steal
      drm/i915: Do a nonblocking wait first in pread/pwrite
      drm/i915: Remove (struct_mutex) locking for wait-ioctl
      drm/i915: Remove (struct_mutex) locking for busy-ioctl
      drm/i915: Reduce locking inside swfinish ioctl
      drm/i915: Remove pinned check from madvise ioctl
      drm/i915: Remove locking for get_tiling
      drm/i915: Document and reject invalid tiling modes
      drm/i915: Repack fence tiling mode and stride into a single integer
      drm/i915: Assert that the request hasn't been retired

Daniel Vetter (8):
      drm/i915: Fixup kerneldoc code snippets in intel_uncore.c
      drm/i915: Clean up kerneldoc for intel_lrc.c
      drm/i915: Update missing kerneldoc
      drm/i915: Remove misleading CSR firmware loading docs
      drm/i915: Update DRIVER_DATE to 20160725
      Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next-queued
      drm/i915: Update comment before i915_spin_request
      drm/i915: Update DRIVER_DATE to 20160808

Dave Gordon (7):
      drm/i915: unify first-stage engine struct setup
      drm/i915: compile-time consistency check on __EXEC_OBJECT flags
      drm/i915: refactor eb_get_batch()
      drm/i915: rename macro parameter(ring) to (engine)
      drm/i915: rename 'ring' where it refers to an engine or engine_id
      drm/i915: rename & update eb_select_ring()
      drm/i915: use i915_gem_object_put_unlocked() after releasing mutex

David Weinehall (1):
      drm/i915/debugfs: Take runtime_pm ref for sseu

Imre Deak (3):
      drm/i915/gen9: Clean up MOCS table definitions
      drm/i915/bxt: Fix inadvertent CPU snooping due to incorrect MOCS config
      drm/i915: Give proper names to MOCS entries

Keith Packard (1):
      drm/i915: cleanup_plane_fb: also drop reference to current state wait_req

Lionel Landwerlin (1):
      drm/i915: add missing condition for committing planes on crtc

Lyude (4):
      drm/i915/vlv: Make intel_crt_reset() per-encoder
      drm/i915/vlv: Reset the ADPA in vlv_display_power_well_init()
      drm/i915/vlv: Disable HPD in valleyview_crt_detect_hotplug()
      drm/i915: Enable polling when we don't have hpd

Matt Roper (1):
      drm/i915/gen9: Give one extra block per line for SKL plane WM calculations

Matthew Auld (4):
      drm/i915: remove superfluous i915_gem_object_free_mmap_offset call
      drm/i915: remove redundant fbc warnings
      drm/i915: fix WaInsertDummyPushConstPs
      drm/i915: fix aliasing_ppgtt leak

Mika Kuoppala (2):
      drm/i915/gen9: Add WaInPlaceDecompressionHang
      drm/i915/gen9: Add WaDisableGatherAtSetShaderCommonSlice

Rodrigo Vivi (3):
      drm/i915/guc: Revert "drm/i915/guc: enable GuC loading & submission by default"
      drm/i915: Fix copy_to_user usage for pipe_crc
      drm/i915: Use drm official vblank_no_hw_counter callback.

Tim Gore (1):
      drm/i915:gen9: restrict WaC6DisallowByGfxPause

Tvrtko Ursulin (6):
      drm/i915: Prepare for engine init unification
      drm/i915: Unify engine init loop
      drm/i915: Make more use of the shared engine irq setup
      drm/i915: Simplify intel_init_ring_buffer prototype
      drm/i915: Move common engine setup into intel_engine_cs.c
      drm/i915: Pull out some more common engine init code

Ville Syrjälä (27):
      drm/i915: Unbreak interrupts on pre-gen6
      drm/i915: Ignore panel type from OpRegion on SKL
      drm/i915: Treat eDP as always connected, again
      drm/i915: Wait up to 3ms for the pcu to ack the cdclk change request on SKL
      drm/i915: Never fully mask the the EI up rps interrupt on SNB/IVB
      drm/i915: Fix iboost setting for DDI with 4 lanes on SKL
      drm/i915: Name the "iboost bit"
      drm/i915: Program iboost settings for HDMI/DVI on SKL
      drm/i915: Move bxt_ddi_vswing_sequence() call into intel_ddi_pre_enable() for HDMI
      drm/i915: Explicitly use ddi buf trans entry 9 for hdmi
      drm/i915: Split DP/eDP/FDI and HDMI/DVI DDI buffer programming apart
      drm/i915: Get the iboost setting based on the port type
      drm/i915: Simplify intel_ddi_get_encoder_port()
      drm/i915: Extract bdw_get_buf_trans_edp()
      drm/i915: Always use cpp==4 for FW_BLC_SELF on 915GM/945GM
      drm/i915: Program FW_BLC_SELF on 915G as well
      drm/i915: Warn about aux msg buffer vs. size mismatch
      drm/i915: Clean up the extra RPM ref on CHV with i915.enable_rc6=0
      drm/i915: Read PSR caps/intermediate freqs/etc. only once on eDP
      drm/i915: Avoid mixing up SST and MST in DDI setup
      drm/i915: Reject mixing MST and SST/HDMI on the same digital port
      drm/i915: Track active streams also for DP SST
      drm/i915: Allow MST sinks to work even if drm_probe_ddc() fails
      drm/i915: Remove useless rate_to_index() usage
      drm/i915: Don't try to ack sink irqs when there are none
      drm/i915: Fix iboost setting for SKL Y/U DP DDI buffer translation entry 2
      Revert "drm/i915: Track active streams also for DP SST"

 Documentation/gpu/i915.rst                   |    3 +
 drivers/gpu/drm/i915/Makefile                |    3 +-
 drivers/gpu/drm/i915/i915_cmd_parser.c       |   74 +-
 drivers/gpu/drm/i915/i915_debugfs.c          |  187 +-
 drivers/gpu/drm/i915/i915_drv.c              |   85 +-
 drivers/gpu/drm/i915/i915_drv.h              |  521 ++---
 drivers/gpu/drm/i915/i915_gem.c              | 2796 +++++++++-----------------
 drivers/gpu/drm/i915/i915_gem_batch_pool.c   |   34 +-
 drivers/gpu/drm/i915/i915_gem_batch_pool.h   |    6 +-
 drivers/gpu/drm/i915/i915_gem_context.c      |  183 +-
 drivers/gpu/drm/i915/i915_gem_debug.c        |   70 -
 drivers/gpu/drm/i915/i915_gem_dmabuf.c       |   71 +-
 drivers/gpu/drm/i915/i915_gem_evict.c        |  187 +-
 drivers/gpu/drm/i915/i915_gem_execbuffer.c   |  476 +++--
 drivers/gpu/drm/i915/i915_gem_fence.c        |   52 +-
 drivers/gpu/drm/i915/i915_gem_gtt.c          |  587 +++---
 drivers/gpu/drm/i915/i915_gem_gtt.h          |  183 +-
 drivers/gpu/drm/i915/i915_gem_render_state.c |  120 +-
 drivers/gpu/drm/i915/i915_gem_render_state.h |   18 -
 drivers/gpu/drm/i915/i915_gem_request.c      |  767 +++++++
 drivers/gpu/drm/i915/i915_gem_request.h      |  676 +++++++
 drivers/gpu/drm/i915/i915_gem_shrinker.c     |   78 +-
 drivers/gpu/drm/i915/i915_gem_stolen.c       |   20 +-
 drivers/gpu/drm/i915/i915_gem_tiling.c       |   52 +-
 drivers/gpu/drm/i915/i915_gem_userptr.c      |   57 +-
 drivers/gpu/drm/i915/i915_gpu_error.c        |  459 +++--
 drivers/gpu/drm/i915/i915_guc_submission.c   |   31 +-
 drivers/gpu/drm/i915/i915_irq.c              |   57 +-
 drivers/gpu/drm/i915/i915_pci.c              |    1 +
 drivers/gpu/drm/i915/i915_reg.h              |   20 +-
 drivers/gpu/drm/i915/i915_sysfs.c            |   78 +-
 drivers/gpu/drm/i915/i915_trace.h            |   35 +-
 drivers/gpu/drm/i915/i915_vgpu.c             |    3 +-
 drivers/gpu/drm/i915/intel_audio.c           |    6 +
 drivers/gpu/drm/i915/intel_breadcrumbs.c     |   31 +-
 drivers/gpu/drm/i915/intel_csr.c             |    7 -
 drivers/gpu/drm/i915/intel_ddi.c             |  255 +--
 drivers/gpu/drm/i915/intel_display.c         |  255 ++-
 drivers/gpu/drm/i915/intel_dp.c              |  231 ++-
 drivers/gpu/drm/i915/intel_dp_mst.c          |    4 +-
 drivers/gpu/drm/i915/intel_drv.h             |   40 +-
 drivers/gpu/drm/i915/intel_engine_cs.c       |  231 +++
 drivers/gpu/drm/i915/intel_fbc.c             |   29 +-
 drivers/gpu/drm/i915/intel_fbdev.c           |   32 +-
 drivers/gpu/drm/i915/intel_frontbuffer.c     |  128 +-
 drivers/gpu/drm/i915/intel_frontbuffer.h     |   91 +
 drivers/gpu/drm/i915/intel_guc.h             |    1 -
 drivers/gpu/drm/i915/intel_guc_loader.c      |   10 +-
 drivers/gpu/drm/i915/intel_hotplug.c         |    1 -
 drivers/gpu/drm/i915/intel_lrc.c             |  837 +++-----
 drivers/gpu/drm/i915/intel_lrc.h             |   52 +-
 drivers/gpu/drm/i915/intel_mocs.c            |   61 +-
 drivers/gpu/drm/i915/intel_mocs.h            |    2 +-
 drivers/gpu/drm/i915/intel_overlay.c         |  174 +-
 drivers/gpu/drm/i915/intel_pm.c              |  357 ++--
 drivers/gpu/drm/i915/intel_psr.c             |   26 +-
 drivers/gpu/drm/i915/intel_renderstate.h     |   16 +-
 drivers/gpu/drm/i915/intel_ringbuffer.c      | 1157 +++++------
 drivers/gpu/drm/i915/intel_ringbuffer.h      |  228 +--
 drivers/gpu/drm/i915/intel_sprite.c          |   13 +-
 drivers/gpu/drm/i915/intel_uncore.c          |   14 +-
 include/uapi/drm/i915_drm.h                  |   42 +-
 62 files changed, 6296 insertions(+), 6025 deletions(-)
 delete mode 100644 drivers/gpu/drm/i915/i915_gem_debug.c
 create mode 100644 drivers/gpu/drm/i915/i915_gem_request.c
 create mode 100644 drivers/gpu/drm/i915/i915_gem_request.h
 create mode 100644 drivers/gpu/drm/i915/intel_engine_cs.c
 create mode 100644 drivers/gpu/drm/i915/intel_frontbuffer.h

Daniel Vetter
Software Engineer, Intel Corporation

More information about the Intel-gfx mailing list