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@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx