[PULL] drm-intel-next

Daniel Vetter
2016-08-12T17:21:54Z

Hi Dave,

drm-intel-next-2016-08-08:
- 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
drm-intel-next-2016-07-25:
- 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
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org