[PULL] drm-intel-next

Daniel Vetter
2016-08-24T07:59:36Z

Hi Dave,

drm-intel-next-2016-08-22:
- bugfixes and cleanups for rcu-protected requests (Chris)
- atomic modeset fixes for gpu reset on pre-g4x (Maarten&Ville)
- guc submission improvements (Dave Gordon)
- panel power sequence cleanup (Imre)
- better use of stolen and unmappable ggtt (Chris), plus prep work to make that
happen
- rework of framebuffer offsets, prep for multi-plane framebuffers (Ville)
- fully partial ggtt vmaps, including fenced ones (Chris)
- move lots more of the gem tracking from the object to the vma (Chris)
- tune the command parser (Chris)
- allow fbc without fences on recent platforms (Chris)
- fbc frontbuffer tracking fixes (Chris)
- fast prefaulting using io-mappping.h pgprot caching (Chris)

Plus two fixups for io-mapping.h because gpiolib uses the wrong header.
Chris is chasing 2 patches to fix that properly, this here at least avoids
compile-breakage meanwhile. I tested on x86, arm and microblaze (to
confirm the patch indeed fixes stuff).

Cheers, Daniel

The following changes since commit fc93ff608b15ae32cde3006b7af860b59cac20ec:

Merge tag 'drm-intel-next-2016-08-08' of git://anongit.freedesktop.org/drm-intel into drm-next (2016-08-15 16:53:57 +1000)

are available in the git repository at:

git://anongit.freedesktop.org/drm-intel drm-intel-next

for you to fetch changes up to 351243897b15aba02ad15317724d616aeaf00c7d:

io-mapping: Fixup for different names of writecombine (2016-08-24 09:43:49 +0200)

----------------------------------------------------------------
Chris Wilson (102):
drm/i915: Remove unused i915_gem_active_peek_rcu()
drm/i915: Wrap the protected active RCU dereference in a helper
drm/i915: Don't check for idleness before retiring after a GPU hang
drm/i915: Add smp_rmb() to busy ioctl's RCU dance
drm/i915: Do not overwrite the request with zero on reallocation
drm/i915: Correct typo for __i915_gem_active_get_rcu in a comment
drm/i915: Always mark the writer as also a read for busy ioctl
drm/i915: Move missed interrupt detection from hangcheck to breadcrumbs
drm/i915: Use RCU to annotate and enforce protection for breadcrumb's bh
drm/i915: Fix nesting of rps.mutex and struct_mutex during powersave init
drm/i915: Mark unmappable GGTT entries as PIN_HIGH
drm/i915: Move setting of request->batch into its single callsite
drm/i915: Support for creating write combined type vmaps
drm/i915: Use SSE4.1 movntdqa to accelerate reads from WC memory
drm/i915: Initialize return value for empty i915_gem_object_unbind()
drm/i915: Unbind closed vma for i915_gem_object_unbind()
drm/i915: Show RPS autotuning thresholds along with waitboost
drm/i915: Record the position of the start of the request
drm/i915: Reduce amount of duplicate buffer information captured on error
drm/i915: Store the active context object on all engines upon error
drm/i915: Remove inactive/active list from debugfs
drm/i915: Focus debugfs/i915_gem_pinned to show only display pins
drm/i915: Reduce i915_gem_objects to only show object information
drm/i915: Remove redundant WARN_ON from __i915_add_request()
drm/i915: Always set the vma->pages
drm/i915: Create a VMA for an object
drm/i915: Add fetch_and_zero() macro
drm/i915: Add convenience wrappers for vma's object get/put
drm/i915: Track pinned vma inside guc
drm/i915: Convert fence computations to use vma directly
drm/i915: Use VMA directly for checking tiling parameters
drm/i915: Use VMA as the primary object for context state
drm/i915: Only change the context object's domain when binding
drm/i915: Move assertion for iomap access to i915_vma_pin_iomap
drm/i915: Use VMA for ringbuffer tracking
drm/i915: Use VMA for scratch page tracking
drm/i915: Move common scratch allocation/destroy to intel_engine_cs.c
drm/i915: Move common seqno reset to intel_engine_cs.c
drm/i915/overlay: Use VMA as the primary tracker for images
drm/i915: Use VMA as the primary tracker for semaphore page
drm/i915: Use VMA for render state page tracking
drm/i915: Use VMA for wa_ctx tracking
drm/i915: Consolidate i915_vma_unpin_and_release()
drm/i915: Track pinned VMA
drm/i915: Introduce i915_ggtt_offset()
drm/i915: Move debug only per-request pid tracking from request to ctx
drm/i915: Print the batchbuffer offset next to BBADDR in error state
drm/i915: Only record active and pending requests upon a GPU hang
drm/i915: Record the RING_MODE register for post-mortem debugging
drm/i915: Initialise mmaped_count for i915_gem_object_info
drm/i915: Embrace the race in busy-ioctl
drm/i915: Silence GCC warning for cmn_a_well
drm/i915: Mark the static key for movntqda as static
drm/i915: Mark i915_hpd_poll_init_work as static
drm/i915: Remember to set vma->pages for the preallocated stolen object
drm/i915: Add missing kerneldoc for guc_client_alloc:engines
drm/i915: Unconditionally flush any chipset buffers before execbuf
agp/intel: Flush chipset writes after updating a single PTE
drm/i915: vfree() no longer ignores the low bits of the address
drm/i915: Use ORIGIN_CPU for fb invalidation from pwrite
drm/i915: Mark up the GTT flush following WC writes as ORIGIN_CPU
drm/i915: Fallback to single page pwrite/pread if unable to release fence
drm/i915: Cache kmap between relocations
drm/i915: Extract i915_gem_obj_prepare_shmem_write()
drm/i915: Before accessing an object via the cpu, flush GTT writes
drm/i915: Wait for writes through the GTT to land before reading back
drm/i915: Pin the pages first in shmem prepare read/write
drm/i915: Tidy up flush cpu/gtt write domains
drm/i915: Refactor execbuffer relocation writing
drm/i915: Fallback to single page GTT mmappings for relocations
drm/i915: Disallow direct CPU access to stolen pages for relocations
drm/i915: Move map-and-fenceable tracking to the VMA
drm/i915: Allow ringbuffers to be bound anywhere
drm/i915: Allocate rings from stolen
drm/i915/userptr: Make gup errors stickier
drm/i915: Rename fence.lru_list to link
drm/i915: Move fence tracking from object to vma
drm/i915: Choose partial chunksize based on tile row size
drm/i915: Fix partial GGTT faulting
drm/i915: Convert partial ggtt vma to full ggtt if it spans the entire object
drm/i915: Drop ORIGIN_GTT for untracked GTT writes
drm/i915: Choose not to evict faultable objects from the GGTT
drm/i915: Fallback to using unmappable memory for scanout
drm/i915: Track display alignment on VMA
drm/i915: Bump the inactive tracking for all VMA accessed
drm/i915: Stop discarding GTT cache-domain on unbind vma
drm/i915/cmdparser: Make initialisation failure non-fatal
drm/i915/cmdparser: Add the TIMESTAMP register for the other engines
drm/i915/cmdparser: Use cached vmappings
drm/i915/cmdparser: Only cache the dst vmap
drm/i915/cmdparser: Improve hash function
drm/i915/cmdparser: Compare against the previous command descriptor
drm/i915/cmdparser: Check for SKIP descriptors first
drm/i915/cmdparser: Use binary search for faster register lookup
drm/i915/cmdparser: Accelerate copies from WC memory
drm/i915: Flush delayed fence releases after reset
drm/i915/fbc: Don't set an illegal fence if unfenced
drm/i915/fbc: Allow on unfenced surfaces, for recent gen
io-mapping: Always create a struct to hold metadata about the io-mapping
drm/i915: Embed the io-mapping struct inside drm_i915_private
drm/i915: Use remap_io_mapping() to prefault all PTE in a single pass
io-mapping.h: s/PAGE_KERNEL_IO/PAGE_KERNEL/

Daniel Vetter (3):
Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next-queued
drm/i915: Update DRIVER_DATE to 20160822
io-mapping: Fixup for different names of writecombine

Dave Gordon (7):
drm: avoid "possible bad bitmask?" warning
drm/i915/guc: doorbell reset should avoid used doorbells
drm/i915/guc: refactor guc_init_doorbell_hw()
drm/i915/guc: add engine mask to GuC client & pass to GuC
drm/i915/guc: use for_each_engine_id() where appropriate
drm/i915/guc: re-optimise i915_guc_client layout
drm/i915: Reattach comment, complete type specification

Imre Deak (6):
drm/i915: Merge the PPS register definitions
drm/i915: Merge TARGET_POWER_ON and PANEL_POWER_ON flag definitions
drm/i915/lvds: Restore initial HW state during encoder enabling
drm/i915/dp: Restore PPS HW state from the encoder resume hook
drm/i915: Apply the PPS register unlock workaround more consistently
drm/i915: Remove LVDS and PPS suspend time save/restore

Maarten Lankhorst (2):
drm/i915: Fix modeset handling during gpu reset, v5.
drm/i915: Add a way to test the modeset done during gpu reset, v3.

Matt Roper (2):
drm/i915/gen9: Initialize intel_state->active_crtcs during WM sanitization (v2)
drm/i915/gen9: Drop invalid WARN() during data rate calculation

Tvrtko Ursulin (4):
drm/i915: Store number of active engines in device info
drm/i915/guc: Consolidate firmware major-minor to one place
drm/i915: Add enum for hardware engine identifiers
drm/i915: Initialize legacy semaphores from engine hw id indexed array

Ville Syrjälä (16):
drm/i915: Add some curly braces
drm/i915: Don't mark PCH underrun reporting as disabled for transcoder B/C on LPT-H
drm/i915: Introduce gpu_reset_clobbers_display()
drm/i915: Use the g4x+ approach on gen2 for handling display stuff around GPU reset
drm/i915: Account for TSEG size when determining 865G stolen base
drm/i915: Rewrite fb rotation GTT handling
drm/i915: Don't pass pitch to intel_compute_page_offset()
drm/i915: Move SKL hw stride calculation into a helper
drm/i915: Pass around plane_state instead of fb+rotation
drm/i915: Use fb modifiers for display tiling decisions
drm/i915: Adjust obj tiling vs. fb modifier rules
drm/i915: Limit fb x offset due to fences
drm/i915: Allow calling intel_adjust_tile_offset() multiple times
drm/i915: Make intel_adjust_tile_offset() work for linear buffers
drm/i915: Compute display surface offset in the plane check hook for SKL+
drm/i915: Deal with NV12 CbCr plane AUX surface on SKL+

arch/x86/kernel/early-quirks.c | 9 +-
drivers/char/agp/intel-gtt.c | 2 +
drivers/gpu/drm/Makefile | 2 +-
drivers/gpu/drm/i915/Makefile | 6 +-
drivers/gpu/drm/i915/i915_cmd_parser.c | 309 +++----
drivers/gpu/drm/i915/i915_debugfs.c | 334 ++++----
drivers/gpu/drm/i915/i915_drv.c | 3 +
drivers/gpu/drm/i915/i915_drv.h | 504 +++++++-----
drivers/gpu/drm/i915/i915_gem.c | 904 ++++++++++----------
drivers/gpu/drm/i915/i915_gem_context.c | 74 +-
drivers/gpu/drm/i915/i915_gem_dmabuf.c | 2 +-
drivers/gpu/drm/i915/i915_gem_evict.c | 7 +-
drivers/gpu/drm/i915/i915_gem_execbuffer.c | 457 +++++++----
drivers/gpu/drm/i915/i915_gem_fence.c | 483 +++++------
drivers/gpu/drm/i915/i915_gem_gtt.c | 191 +++--
drivers/gpu/drm/i915/i915_gem_gtt.h | 65 +-
drivers/gpu/drm/i915/i915_gem_render_state.c | 40 +-
drivers/gpu/drm/i915/i915_gem_render_state.h | 2 +-
drivers/gpu/drm/i915/i915_gem_request.c | 76 +-
drivers/gpu/drm/i915/i915_gem_request.h | 61 +-
drivers/gpu/drm/i915/i915_gem_stolen.c | 26 +-
drivers/gpu/drm/i915/i915_gem_tiling.c | 72 +-
drivers/gpu/drm/i915/i915_gem_userptr.c | 17 +-
drivers/gpu/drm/i915/i915_gpu_error.c | 438 +++++-----
drivers/gpu/drm/i915/i915_guc_submission.c | 243 +++---
drivers/gpu/drm/i915/i915_irq.c | 26 +-
drivers/gpu/drm/i915/i915_memcpy.c | 101 +++
drivers/gpu/drm/i915/i915_mm.c | 84 ++
drivers/gpu/drm/i915/i915_params.c | 6 +
drivers/gpu/drm/i915/i915_params.h | 1 +
drivers/gpu/drm/i915/i915_reg.h | 152 ++--
drivers/gpu/drm/i915/i915_suspend.c | 41 -
drivers/gpu/drm/i915/intel_breadcrumbs.c | 91 ++-
drivers/gpu/drm/i915/intel_display.c | 1131 +++++++++++++++++++-------
drivers/gpu/drm/i915/intel_dp.c | 85 +-
drivers/gpu/drm/i915/intel_drv.h | 41 +-
drivers/gpu/drm/i915/intel_engine_cs.c | 120 ++-
drivers/gpu/drm/i915/intel_fbc.c | 70 +-
drivers/gpu/drm/i915/intel_fbdev.c | 21 +-
drivers/gpu/drm/i915/intel_guc.h | 18 +-
drivers/gpu/drm/i915/intel_guc_loader.c | 58 +-
drivers/gpu/drm/i915/intel_hotplug.c | 3 +-
drivers/gpu/drm/i915/intel_lrc.c | 149 ++--
drivers/gpu/drm/i915/intel_lvds.c | 151 ++--
drivers/gpu/drm/i915/intel_overlay.c | 71 +-
drivers/gpu/drm/i915/intel_pm.c | 24 +-
drivers/gpu/drm/i915/intel_ringbuffer.c | 481 +++++------
drivers/gpu/drm/i915/intel_ringbuffer.h | 81 +-
drivers/gpu/drm/i915/intel_runtime_pm.c | 8 +-
drivers/gpu/drm/i915/intel_sprite.c | 111 +--
include/drm/i915_drm.h | 2 +-
include/linux/io-mapping.h | 98 ++-
include/uapi/drm/i915_drm.h | 16 +-
53 files changed, 4259 insertions(+), 3309 deletions(-)
create mode 100644 drivers/gpu/drm/i915/i915_memcpy.c
create mode 100644 drivers/gpu/drm/i915/i915_mm.c

--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org