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

Daniel Vetter daniel.vetter at ffwll.ch
Wed Aug 24 07:58:49 UTC 2016

Hi Dave,

- 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
- 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

More information about the Intel-gfx mailing list