Hi Dave, drm-intel-next-2016-11-08: - gpu idling rework for s/r (Imre) - vlv mappable scanout fix - speed up probing in resume (Lyude) - dp audio workarounds for gen9 (Dhinakaran) - more conversion to using dev_priv internally (Ville) - more gen9+ wm fixes and cleanups (Maarten) - shrinker cleanup&fixes (Chris) - reorg plane init code (Ville) - implement support for multiple timelines (prep work for scheduler) from Chris and all - untangle dev->struct_mutex locking as prep for multiple timelines (Chris) - refactor bxt phy code and collect it all in intel_dpio_phy.c (Ander) - another gvt with bugfixes all over from Zhenyu - piles of lspcon fixes from Imre - 90/270 rotation fixes (Ville) - guc log buffer support (Akash+Sagar) - fbc fixes from Paulo - untangle rpm vs. tiling-fences/mmaps (Chris) - fix atomic commit to wait on the right fences (Daniel Stone) Aside: I expect one more drm-intel feature pull for 4.10, then it's all in. Cheers, Daniel The following changes since commit fb422950c6cd726fd36eb72a7cf84583440a18a2: Merge branch 'linux-4.9' of git://github.com/skeggsb/linux into drm-next (2016-10-28 14:24:56 +1000) are available in the git repository at: git://anongit.freedesktop.org/git/drm-intel tags/drm-intel-next-2016-11-08 for you to fetch changes up to 58e197d631d44f9f4817b8198b43132a40de1164: drm/i915: Update DRIVER_DATE to 20161108 (2016-11-08 07:51:35 +0100) ---------------------------------------------------------------- - gpu idling rework for s/r (Imre) - vlv mappable scanout fix - speed up probing in resume (Lyude) - dp audio workarounds for gen9 (Dhinakaran) - more conversion to using dev_priv internally (Ville) - more gen9+ wm fixes and cleanups (Maarten) - shrinker cleanup&fixes (Chris) - reorg plane init code (Ville) - implement support for multiple timelines (prep work for scheduler) from Chris and all - untangle dev->struct_mutex locking as prep for multiple timelines (Chris) - refactor bxt phy code and collect it all in intel_dpio_phy.c (Ander) - another gvt with bugfixes all over from Zhenyu - piles of lspcon fixes from Imre - 90/270 rotation fixes (Ville) - guc log buffer support (Akash+Sagar) - fbc fixes from Paulo - untangle rpm vs. tiling-fences/mmaps (Chris) - fix atomic commit to wait on the right fences (Daniel Stone) ---------------------------------------------------------------- Akash Goel (12): drm/i915: New structure to contain GuC logging related fields drm/i915: Add low level set of routines for programming PM IER/IIR/IMR register set drm/i915: Add a relay backed debugfs interface for capturing GuC logs drm/i915: New lock to serialize the Host2GuC actions drm/i915: Add stats for GuC log buffer flush interrupts drm/i915: Optimization to reduce the sampling time of GuC log buffer drm/i915: Increase GuC log buffer size to reduce flush interrupts drm/i915: Augment i915 error state to include the dump of GuC log buffer drm/i915: Use SSE4.1 movntdqa based memcpy for sampling GuC log buffer drm/i915: Early creation of relay channel for capturing boot time logs drm/i915: Mark the GuC log buffer flush interrupts handling WQ as freezable drm/i915/guc: WA to address the Ringbuffer coherency issue Ander Conselvan de Oliveira (10): drm/i915: Rename struct i915_power_well field data to id drm/i915: Explicitly map broxton DPIO power wells to phys drm/i915: Pass lane count to bxt_ddi_phy_calc_lane_optmin_mask() drm/i915: Move broxton phy code to intel_dpio_phy.c drm/i915: Move DPIO phy documentation section to intel_dpio_phy.c drm/i915: Move broxton vswing sequence to intel_dpio_phy.c drm/i915: Create a struct to hold information about the broxton phys drm/i915: Add location of the Rcomp resistor to bxt_ddi_phy_info drm/i915: Address broxton phy registers based on phy and channel number drm/i915/bxt: Don't set OCL2_LDOFUSE_PWR_DIS bit in phy init sequence Anusha Srivatsa (1): drm/i915/DMC/KBL: Load DMC on KBL using the no_stepping_info array Arkadiusz Hiler (2): drm/i915/gvt: Implement WaForceWakeRenderDuringMmioTLBInvalidate drm/i915: fix comment on I915_{READ, WRITE}_FW Bing Niu (1): drm/i915/gvt: throw error basing on execlist submit result Chris Wilson (59): drm/i915: Move user fault tracking to a separate list drm/i915: Use RPM as the barrier for controlling user mmap access drm/i915: Remove superfluous locking around userfault_list drm/i915: Remove RPM sequence checking drm/i915: Move fence cancellation to runtime suspend drm/i915: Include the kernel uptime in the error state drm/i915: Remove insert-page shortcut from execbuf relocate_iomap() drm/i915: Support asynchronous waits on struct fence from i915_gem_request drm/i915: Allow i915_sw_fence_await_sw_fence() to allocate drm/i915: Remove superfluous wait_for_error() from throttle-ioctl drm/i915: Rearrange i915_wait_request() accounting with callers drm/i915: Remove unused i915_gem_active_wait() in favour of _unlocked() drm/i915: Defer active reference until required drm/i915: Introduce an internal allocator for disposable private objects drm/i915: Reuse the active golden render state batch drm/i915: Markup GEM API with lockdep asserts drm/i915: Use a radixtree for random access to the object's backing storage drm/i915: Use radixtree to jump start intel_partial_pages() drm/i915: Refactor object page API drm/i915: Pass around sg_table to get_pages/put_pages backend drm/i915: Move object backing storage manipulation to its own locking drm/i915/dmabuf: Acquire the backing storage outside of struct_mutex drm/i915: Implement pread without struct-mutex drm/i915: Implement pwrite without struct-mutex drm/i915: Acquire the backing storage outside of struct_mutex in set-domain drm/i915: Move object release to a freelist + worker drm/i915: Use lockless object free drm/i915: Move GEM activity tracking into a common struct reservation_object drm/i915: Restore nonblocking awaits for modesetting drm/i915: Combine seqno + tracking into a global timeline struct drm/i915: Queue the idling context switch after all other timelines drm/i915: Wait first for submission, before waiting for request completion drm/i915: Introduce a global_seqno for each request drm/i915: Rename ->emit_request to ->emit_breadcrumb drm/i915: Record space required for breadcrumb emission drm/i915: Defer breadcrumb emission drm/i915: Move the global sync optimisation to the timeline drm/i915: Create a unique name for the context drm/i915: Convert breadcrumbs spinlock to be irqsafe drm/i915: Reserve space in the global seqno during request allocation drm/i915: Defer setting of global seqno on request to submission drm/i915: Enable multiple timelines drm/i915: Mark up obj->mm.lock for shrinker drm/i915: Use the full hammer when shutting down the rcu tasks drm/i915: Discard objects from mm global_list after being shrunk drm/i915: Move the recently scanned objects to the tail after shrinking drm/i915: Avoid accessing request->timeline outside of its lifetime drm/i915: Track pages pinned due to swizzling quirk drm/i915: Store the vma in an rbtree under the object drm/i915: Improve lockdep tracking for obj->mm.lock drm/i915: Export a function to flush the context upon pinning drm/i915: Show the execlist queue in debugfs/i915_engine_info drm/i915/guc: Cache the client mapping drm/i915: Fix test on inputs for vma_compare() drm/i915: Fix pages pin counting around swizzle quirk drm/i915: Remove the vma from the object list upon close drm/i915: Round tile chunks up for constructing partial VMAs drm/i915: Limit Valleyview and earlier to only using mappable scanout drm/i915: Mark CPU cache as dirty when used for rendering Daniel Stone (1): drm: i915: Wait for fences on new fb, not old Daniel Vetter (4): Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next-queued Merge tag 'gvt-next-2016-10-27' of https://github.com/01org/gvt-linux into drm-intel-next-queued Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next-queued drm/i915: Update DRIVER_DATE to 20161108 Dhinakaran Pandiyan (2): drm/i915/dp: BDW cdclk fix for DP audio drm/i915/dp: Extend BDW DP audio workaround to GEN9 platforms Du, Changbin (3): drm/i915/gvt: use well wrapped set_mask_bits() instead of defining new one drm/i915/gvt: get msi cap offset from pdev directly drm/i915/gvt: fix nested sleeping issue Imre Deak (12): drm/dp: Factor out helper to distinguish between branch and sink devices drm/i915/dp: Remove debug dependency of DPCD SW/HW revision read drm/i915/dp: Print only sink or branch specific OUI based on dev type drm/i915/dp: Print full branch/sink descriptor drm/i915/lspcon: Fail LSPCON probe if the start of DPCD can't be read drm/i915/dp: Read DP descriptor for eDP and LSPCON too drm/i915/lspcon: Get DDC adapter via container_of() instead of cached ptr drm/i915/lspcon: Add workaround for resuming in PCON mode drm/i915: Avoid early GPU idling due to already pending idle work drm/i915: Avoid early GPU idling due to race with new request drm/i915: Make sure engines are idle during GPU idling in LR mode drm/i915: Add assert for no pending GPU requests during suspend/resume in LR mode Jani Nikula (3): drm/i915: remove AGP dependency from DRM_I915 kconfig help text drm/i915/audio: drop extra crtc clock check from HDMI audio N lookup MAINTAINERS: drop dri-devel list for i915 Joonas Lahtinen (2): drm/i915: Unify global_list into global_link drm/i915: Introduce HAS_64BIT_RELOC Jérémy Lefaure (2): drm/i915/gvt: fix bad 32 bit shift in gtt drm/i915/gvt: fix an error string format Libin Yang (1): drm/i915/audio: set proper N/M in modeset Lyude (3): drm/i915/vlv: Prevent enabling hpd polling in late suspend drm/i915: Remove redundant reprobe in i915_drm_resume drm/i915: Reinit polling before hpd when resuming Maarten Lankhorst (7): drm/i915/skl+: Prepare for removing data rate from skl watermark state, v2. drm/i915/gen9+: Use cstate plane mask instead of crtc->state. drm/i915/gen9+: Use for_each_intel_plane_on_crtc in skl_print_wm_changes, v2. drm/i915/skl+: Remove data_rate from watermark struct, v2. drm/i915/skl+: Remove minimum block allocation from crtc state. drm/i915/skl+: Clean up minimum allocations, v2. drm/i915/gen9+: Use the watermarks from crtc_state for everything, v2. Matt Roper (2): drm/i915: Rename for_each_plane -> for_each_universal_plane drm/i915: Use macro in place of open-coded for_each_universal_plane loop Mika Kuoppala (3): drm/i915/gtt: Fix pte clear range drm/i915/gtt: Mark tlbs dirty on clear drm/i915: Move hangcheck code out from i915_irq.c Min He (1): drm/i915/gvt: fix an typo in skl_decode_mi_display_flip Navare, Manasi D (1): drm/i915: Change the placement of some static functions in intel_dp.c Paulo Zanoni (2): drm/i915/fbc: fix CFB size calculation for gen8+ drm/i915/fbc: fix FBC_COMPRESSION_MASK on BDW+ Ping Gao (3): drm/i915/gvt: add vreg write for GDRST handler drm/i915/gvt: correct the reset logic drm/i915/gvt: add full vGPU reset support Sagar Arun Kamble (6): drm/i915: Decouple GuC log setup from verbosity parameter drm/i915: Add GuC ukernel logging related fields to fw interface file drm/i915: Support for GuC interrupts drm/i915: Handle log buffer flush interrupt event from GuC drm/i915: Support for forceful flush of GuC log buffer drm/i915: Debugfs support for GuC logging control Tvrtko Ursulin (5): drm/i915: Rotated view does not need a fence drm/i915: Remove two invalid warns drm/i915: Correct pipe fault reporting string drm/i915: Allow shrinking of userptr objects once again drm/i915: Tidy slab cache allocations Ville Syrjälä (32): drm/i915: Refresh that status of MST capable connectors in ->detect() drm/i915: Fix SKL+ 90/270 degree rotated plane coordinate computation drm/i915: Don't try to initialize sprite planes on pre-ilk drm/i915: Initialize planes in a reasonable order drm/i915: Bail if plane/crtc init fails drm/i915: Reorganize sprite init drm/i915: Pass dev_priv to plane constructors drm/i915: Pass dev_priv to skl_init_scalers() drm/i915: Pass intel_crtc to intel_crtc_active() drm/i915: Pass intel_crtc to update_wm functions drm/i915: Use struct intel_crtc in legacy platform wm code drm/i915: Store struct intel_crtc * in {pipe,plane}_to_crtc_mapping[] drm/i915: Pass dev_priv to intel_wait_for_vblank() drm/i915: Pass dev_priv to vlv force pll functions drm/i915: Pass dev_priv to g4x wm functions drm/i915: Pass dev_priv to intel_get_crtc_for_pipe() drm/i915: Always use intel_get_crtc_for_pipe() drm/i915: Pass dev_priv to intel_crtc_init() drm/i915: Pass dev_priv to cdclk update funcs drm/i915: Pass dev_priv to .get_display_clock_speed() drm/i915: Pass dev_priv to IS_MOBILE() drm/i915: Pass dev_priv to IS_PINEVIEW() drm/i915: Pass dev_priv to i915_pineview_get_mem_freq() and i915_ironlake_get_mem_freq() drm/i915: Pass dev_priv to .get_fifo_size() drm/i915: Pass dev_priv to HAS_FW_BLC drm/i915: Pass dev_priv to IS_BROADWATER/IS_CRESTLINE drm/i915: Pass dev_priv to rest of IS_FOO() macros for the old platforms drm/i915: Pass dev_priv to single_enabled_crtc() drm/i915: Pass dev_priv to init_clock_gating drm/i915: Pass dev_priv to intel_suspend_hw() drm/i915: Pass dev_priv to ilk_setup_wm_latency() & co. drm/i915: Pass dev_priv to intel_init_pm() Xiaoguang Chen (1): drm/i915/gvt: fix detect_host calling logic Zhenyu Wang (3): drm/i915/gvt: Fix failure when ACPI is not enabled drm/i915: GVT-g driver depends on 64BIT kernel drm/i915/gvt: Fix broken mocs offset Documentation/gpu/i915.rst | 2 +- MAINTAINERS | 1 - drivers/gpu/drm/i915/Kconfig | 13 +- drivers/gpu/drm/i915/Makefile | 3 + drivers/gpu/drm/i915/gvt/cmd_parser.c | 29 +- drivers/gpu/drm/i915/gvt/gtt.c | 4 +- drivers/gpu/drm/i915/gvt/gvt.c | 8 +- drivers/gpu/drm/i915/gvt/gvt.h | 2 + drivers/gpu/drm/i915/gvt/handlers.c | 26 +- drivers/gpu/drm/i915/gvt/opregion.c | 6 +- drivers/gpu/drm/i915/gvt/render.c | 21 +- drivers/gpu/drm/i915/gvt/scheduler.c | 28 +- drivers/gpu/drm/i915/gvt/vgpu.c | 4 +- drivers/gpu/drm/i915/i915_cmd_parser.c | 2 +- drivers/gpu/drm/i915/i915_debugfs.c | 295 ++- drivers/gpu/drm/i915/i915_drv.c | 72 +- drivers/gpu/drm/i915/i915_drv.h | 466 ++-- drivers/gpu/drm/i915/i915_gem.c | 2350 +++++++++++--------- drivers/gpu/drm/i915/i915_gem.h | 2 + drivers/gpu/drm/i915/i915_gem_batch_pool.c | 39 +- drivers/gpu/drm/i915/i915_gem_context.c | 91 +- drivers/gpu/drm/i915/i915_gem_dmabuf.c | 150 +- drivers/gpu/drm/i915/i915_gem_evict.c | 18 +- drivers/gpu/drm/i915/i915_gem_execbuffer.c | 77 +- drivers/gpu/drm/i915/i915_gem_fence.c | 31 +- drivers/gpu/drm/i915/i915_gem_gtt.c | 323 +-- drivers/gpu/drm/i915/i915_gem_gtt.h | 12 +- drivers/gpu/drm/i915/i915_gem_internal.c | 170 ++ drivers/gpu/drm/i915/i915_gem_render_state.c | 186 +- drivers/gpu/drm/i915/i915_gem_render_state.h | 4 +- drivers/gpu/drm/i915/i915_gem_request.c | 583 ++--- drivers/gpu/drm/i915/i915_gem_request.h | 124 +- drivers/gpu/drm/i915/i915_gem_shrinker.c | 99 +- drivers/gpu/drm/i915/i915_gem_stolen.c | 51 +- drivers/gpu/drm/i915/i915_gem_tiling.c | 47 +- .../{i915_gem_dmabuf.h => i915_gem_timeline.c} | 56 +- drivers/gpu/drm/i915/i915_gem_timeline.h | 72 + drivers/gpu/drm/i915/i915_gem_userptr.c | 121 +- drivers/gpu/drm/i915/i915_gpu_error.c | 101 +- drivers/gpu/drm/i915/i915_guc_submission.c | 648 +++++- drivers/gpu/drm/i915/i915_irq.c | 597 ++--- drivers/gpu/drm/i915/i915_pci.c | 5 +- drivers/gpu/drm/i915/i915_reg.h | 260 +-- drivers/gpu/drm/i915/i915_sw_fence.c | 40 +- drivers/gpu/drm/i915/i915_sw_fence.h | 8 + drivers/gpu/drm/i915/i915_trace.h | 8 +- drivers/gpu/drm/i915/intel_atomic_plane.c | 2 - drivers/gpu/drm/i915/intel_audio.c | 112 +- drivers/gpu/drm/i915/intel_breadcrumbs.c | 43 +- drivers/gpu/drm/i915/intel_crt.c | 2 +- drivers/gpu/drm/i915/intel_csr.c | 11 +- drivers/gpu/drm/i915/intel_ddi.c | 362 +-- drivers/gpu/drm/i915/intel_device_info.c | 5 +- drivers/gpu/drm/i915/intel_display.c | 681 +++--- drivers/gpu/drm/i915/intel_dp.c | 258 +-- drivers/gpu/drm/i915/intel_dpio_phy.c | 559 +++++ drivers/gpu/drm/i915/intel_dpll_mgr.c | 84 +- drivers/gpu/drm/i915/intel_drv.h | 107 +- drivers/gpu/drm/i915/intel_dvo.c | 6 +- drivers/gpu/drm/i915/intel_engine_cs.c | 29 +- drivers/gpu/drm/i915/intel_fbc.c | 6 +- drivers/gpu/drm/i915/intel_fifo_underrun.c | 23 +- drivers/gpu/drm/i915/intel_guc.h | 32 +- drivers/gpu/drm/i915/intel_guc_fwif.h | 82 +- drivers/gpu/drm/i915/intel_guc_loader.c | 10 +- drivers/gpu/drm/i915/intel_hangcheck.c | 450 ++++ drivers/gpu/drm/i915/intel_hdmi.c | 2 +- drivers/gpu/drm/i915/intel_lrc.c | 162 +- drivers/gpu/drm/i915/intel_lrc.h | 1 + drivers/gpu/drm/i915/intel_lspcon.c | 57 +- drivers/gpu/drm/i915/intel_lvds.c | 6 +- drivers/gpu/drm/i915/intel_overlay.c | 4 +- drivers/gpu/drm/i915/intel_pm.c | 587 +++-- drivers/gpu/drm/i915/intel_ringbuffer.c | 273 ++- drivers/gpu/drm/i915/intel_ringbuffer.h | 91 +- drivers/gpu/drm/i915/intel_runtime_pm.c | 154 +- drivers/gpu/drm/i915/intel_sdvo.c | 8 +- drivers/gpu/drm/i915/intel_sprite.c | 91 +- drivers/gpu/drm/i915/intel_tv.c | 6 +- 79 files changed, 6767 insertions(+), 4794 deletions(-) create mode 100644 drivers/gpu/drm/i915/i915_gem_internal.c rename drivers/gpu/drm/i915/{i915_gem_dmabuf.h => i915_gem_timeline.c} (50%) create mode 100644 drivers/gpu/drm/i915/i915_gem_timeline.h create mode 100644 drivers/gpu/drm/i915/intel_hangcheck.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