Hi Dave, Three tags in total. I also just realized that in the last one I've forgotten to mention the LPE audio fixes from Ville, which also touch sound/. Those patches are all reviewed by Takashi. drm-intel-next-2017-05-15: Another pile of stuff for 4.12: - OA improvements and fixes from Robert Bragg - fixes for the dp aux backlight driver (Puthikorn Voravootivat) - no RCU during shrinking (unfortunately), from Joonas - small atomic leftovers (better unpin, statified hw verifier), from Maarten - g4x wm fixes (Ville) - piles of cursor fixes/improvements (Ville) - g4x overlay plane support (Ville) - prep for new guc logging/notification (Michal Wajdeczko) - pile of static checker appeasement from Imre - implement dma_buf->kmap, good for testing (Chris) - fine-tune ring handling (Chris) drm-intel-next-2017-05-02: Somehow not much these 2 weeks ... - (hopefully) stability fixes for byt/bsw gt wake (Chris) - tighten up requests (especially restarts) checks and debug tracking (Chris) - unify context handling more for gen5+ (Chris+Joonas) - oddball bugfixes as usual drm-intel-next-2017-04-18: First slice of 4.13 features: new uabi: - extend error state dumping to include non-batch buffers requested by userspace (Chris), so that mesa gets more useful error state dumps - reapply the link status patch, for handlig dp link failures (Manasi). This needs updated -modesetting to work correctly. - Add new _WC cache domain, our assumption that wc can be subsumed by the existing cache domains didn't pan out (Chris) feature work: - first pile of conversion to atomic properties for connectors (Maarten) - refactor dp link rate handling code and related areas (Jani) - split engine info into class and runtime stuff (Oscar Mateo) - more robust wait_for_register code (Chris, Michal Wajdeczko) - fix rcu issues in the shrinker and simplify locking (Joonas) - guc/huc for glk (Anusha) - enable atomic modesetting for vlv/chv (Ville), plus final fixes for that I chatted with Sean, and the plan is that he'll send you the drm-misc-next pull for opening 4.13 drm-next later today. We need to backmerge the entire thing into drm-intel afterwards, Maarten needs the connector state hooks for landing the remaining connector atomicification patches for i915. Cheers, Daniel The following changes since commit 8b03d1ed2c43a2ba5ef3381322ee4515b97381bf: Merge branch 'linux-4.12' of git://github.com/skeggsb/linux into drm-next (2017-05-02 04:46:01 +1000) are available in the git repository at: git://anongit.freedesktop.org/git/drm-intel tags/drm-intel-next-2017-05-15 for you to fetch changes up to 2388cd9c5056b10c8e461ca2ab075f49d6f1b25d: drm/i915: Update DRIVER_DATE to 20170515 (2017-05-15 09:11:48 +0200) ---------------------------------------------------------------- Another pile of stuff for 4.12: - OA improvements and fixes from Robert Bragg - fixes for the dp aux backlight driver (Puthikorn Voravootivat) - no RCU during shrinking (unfortunately), from Joonas - small atomic leftovers (better unpin, statified hw verifier), from Maarten - g4x wm fixes (Ville) - piles of cursor fixes/improvements (Ville) - g4x overlay plane support (Ville) - prep for new guc logging/notification (Michal Wajdeczko) - pile of static checker appeasement from Imre - implement dma_buf->kmap, good for testing (Chris) - fine-tune ring handling (Chris) ---------------------------------------------------------------- Ander Conselvan de Oliveira (2): drm/i915/glk: Don't allow 12 bpc when htotal is too big drm/i915/glk: Fix DSI "*ERROR* ULPS is still active" messages Andrea Arcangeli (1): i915: initialize the free_list of the fencing atomic_helper Anusha Srivatsa (2): drm/i915/GuC/GLK: Load GuC on GLK drm/i915/GLK/HuC: Load HuC on GLK Chris Wilson (51): drm/i915: intel_ring.engine is unused drm/i915: Onion unwind for intel_init_ring_common() drm/i915: Park the signaler before sleeping drm/i915: Apply a cond_resched() to the saturated signaler drm/i915: Use the right mapping_gfp_mask for final shmem allocation drm/i915: Assert the engine is idle before overwiting the HWS drm/i915: Advance ring->head fully when idle drm/i915: The shrinker already acquires struct_mutex, so call it unlocked drm/i915: Drain any freed objects prior to hibernation drm/i915: Break up long runs of freeing objects drm/i915: Insert cond_resched() into i915_gem_free_objects drm/i915: Use drm_i915_private directly from debugfs drm/i915: Stop second guessing the caller for intel_uncore_wait_for_register() drm/i915: Stop sleeping from inside gen6_bsd_submit_request() drm/i915: Acquire uncore.lock over intel_uncore_wait_for_register() drm/i915: Use __intel_uncore_wait_for_register_fw for sandybride_pcode_read drm/i915: Use safer intel_uncore_wait_for_register in ring-init drm/i915: Rename intel_engine_cs.exec_id to uabi_id drm/i915: Bail if we do not setup the RCS engine drm/i915: Lie and treat all engines as idle if wedged drm/i915/execlists: Document runtime pm for intel_lrc_irq_handler() drm/i915: Combine write_domain flushes to a single function drm/i915: Treat WC a separate cache domain drm/i915: Add stub mmio read/write routines to mock device drm/i915: Pretend the engine is always idle when mocking drm/i915: Wake device for emitting request during selftest drm/i915: Fix use after free in lpe_audio_platdev_destroy() drm/i915: Copy user requested buffers into the error state drm/i915/selftests: Allocate inode/file dynamically drm/i915: Use discardable buffers for rings drm/i915: Stop touching hangcheck.seqno from intel_engine_init_global_seqno() drm/i915: Avoid busy-spinning on VLV_GLTC_PW_STATUS mmio drm/i915: Confirm the request is still active before adding it to the await drm/i915: Include interesting seqno in the missed breadcrumb debug drm/i915: Report request restarts for both execlists/guc drm/i915: Differentiate between sw write location into ring and last hw read drm/i915: Poison the request before emitting commands drm/i915: Skip waking the signaler when enabling before request submission drm/i915: Defer context state allocation for legacy ring submission drm/i915: Mark up clflushes as belonging to an unordered timeline drm/i915: Unwrap top level fence-array drm/i915: Lift timeline ordering to await_dma_fence drm/i915: Squash repeated awaits on the same fence drm/i915: Rename intel_timeline.sync_seqno[] to .global_sync[] drm/i915: Do not record a successful syncpoint for a dma-await drm/i915: Switch the global i915.semaphores check to a local predicate drm/i915: Implement dma_buf_ops->kmap drm/i915: Use engine->context_pin() to report the intel_ring drm/i915: Avoid the branch in computing intel_ring_space() drm/i915: Report the ring->space from intel_ring_update_space() drm/i915: Micro-optimise hotpath through intel_ring_begin() Chuanxiao Dong (1): drm/i915: set initialised only when init_context callback is NULL Dan Carpenter (2): drm/i915: checking for NULL instead of IS_ERR() in mock selftests drm/i915: set "ret" correctly on error paths Daniel Vetter (6): Merge airlied/drm-next into drm-intel-next-queued drm/i915: Update DRIVER_DATE to 20170418 drm/i915: Update DRIVER_DATE to 20170502 Merge tag 'tags/drm-for-v4.12' into drm-intel-next-queued drm/i915: Fix __intel_wait_for_register_fw to not sleep in atomic drm/i915: Update DRIVER_DATE to 20170515 Daniele Ceraolo Spurio (2): drm/i915: Classify the engines in class + instance drm/i915: Use the engine class to get the context size Dhinakaran Pandiyan (1): drm/i915: Typo fix - 'pipe bpc' to 'pipe bpp' Geliang Tang (1): drm/i915: use memdup_user_nul Imre Deak (7): drm/i915/vlv: Fix port B PLL opamp initialization drm/i915/dp: Check error return during DPCD capability queries drm/i915/sdvo: Check error return from intel_sdvo_get_value() drm/i915: Check error return when setting DMA mask drm/i915: Check error return when converting pipe to connector drm/i915: Sanitize stolen memory size calculation drm/i915/lvds: Remove magic from PLL programming Jani Nikula (14): drm/i915/dp: use known correct array size in rate_to_index drm/i915/dp: return errors from rate_to_index() drm/i915/dp: rename rate_to_index() to intel_dp_rate_index() and reuse drm/i915/dp: cache source rates at init drm/i915/dp: generate and cache sink rate array for all DP, not just eDP 1.4 drm/i915/dp: use the sink rates array for max sink rates drm/i915/dp: cache common rates with sink rates drm/i915/dp: do not limit rate seek when not needed drm/i915/dp: don't call the link parameters sink parameters drm/i915/dp: add functions for max common link rate and lane count drm/i915/mst: use max link not sink lane count drm/i915/dp: localize link rate index variable more drm/i915/dp: use readb and writeb calls for single byte DPCD access drm/i915/dp: read sink count to a temporary variable first Joonas Lahtinen (8): drm/i915: Don't call synchronize_rcu_expedited under struct_mutex drm/i915: Simplify shrinker locking drm/i915: Sanitize engine context sizes drm/i915: Eliminate HAS_HW_CONTEXTS drm/i915: Reset ILK during GEM sanitization drm/i915: Capture CCID on ILK drm/i915: Do not leak dev_priv->l3_parity.remap_info[] drm/i915: Do not sync RCU during shrinking Kees Cook (1): drm/i915: Avoid format string expansion from engine names Maarten Lankhorst (10): drm/i915: Remove unused members from intel_tv.c drm/i915: Convert intel_tv connector properties to atomic, v5. drm/i915: Remove unused dp properties for dp-mst. drm/i915: Convert intel_dp_mst connector properties to atomic. drm/i915: Convert intel_crt connector properties to atomic. drm/i915: Convert intel DVO connector to atomic Revert "drm/i915: Lock mode_config.mutex in intel_display_resume." drm/i915: Do not use lock all in hsw_trans_edp_pipe_A_crc_wa drm/i915: Fix hw state verifier access to crtc->state. drm/i915: Remove vma unpin in intel_plane_destroy Madhav Chauhan (1): drm/i915/glk: limit pixel clock to 99% of cdclk workaround Manasi Navare (2): drm/i915/dp: Validate cached link rate and lane count before retraining drm/i915: Implement Link Rate fallback on Link training failure Matthew Auld (1): drm/i915: don't do allocate_va_range again on PIN_UPDATE Michal Wajdeczko (11): drm/i915/huc: Simplify intel_huc_init_hw() drm/i915/guc: Use GUC prefix for CORE_FAMILY definitions drm/i915: Fix type of timeout_ms parameter in intel_wait_for_register_fw() drm/i915: Extend intel_wait_for_register_fw() with fast timeout drm/i915/guc: Use wait_for_register_fw() while waiting for MMIO response drm/i915: Drop const qualifiers from params in wait_for_register() drm/i915: Don't allow overuse of __intel_wait_for_register_fw() drm/i915/guc: Enable send function only after successful init drm/i915: Move uncore definitions into a separate header drm/i915/guc: Move notification code into virtual function drm/i915/guc: Make scratch register base and count flexible Michel Thierry (2): drm/i915: Fix stale comment about I915_RESET_IN_PROGRESS flag drm/i915: Rename gen8_(un)request_engine_reset to gen8_reset_engine_start/cancel Mika Kuoppala (4): drm/i915: Fix system hang with EI UP masked on Haswell drm/i915: Move the GTFIFODBG to the common mmio dbg framework drm/i915: Use wait_for_atomic_us when waiting for gt fifo drm/i915: Show dmc debug registers on Kabylake Oscar Mateo (4): drm/i915: Use the same vfunc for BSD2 ring init drm/i915: Generate the engine name based on the instance number drm/i915: Split the engine info table in two levels, using class + instance drm/i915/guc: Dump the GuC stage descriptor pool in debugfs Puthikorn Voravootivat (4): drm/i915: Fix cap check for intel_dp_aux_backlight driver drm/i915: Correctly enable backlight brightness adjustment via DPCD drm/i915: Set backlight mode before enable backlight drm/i915: Restore brightness level in aux backlight driver Robert Bragg (8): drm/i915/perf: fix gen7_append_oa_reports comment drm/i915/perf: avoid poll, read, EAGAIN busy loops drm/i915/perf: avoid read back of head register drm/i915/perf: no head/tail ref in gen7_oa_read drm/i915/perf: improve tail race workaround drm/i915/perf: improve invalid OA format debug message drm/i915/perf: better pipeline aged/aging tail updates drm/i915/perf: rate limit spurious oa report notice Sagar Arun Kamble (1): drm/i915: Suspend GuC prior to GPU Reset during GEM suspend Tvrtko Ursulin (3): drm/i915: Remove user-triggerable WARN from i915_gem_object_create drm/i915: Fix GCC 4.4 build issue with __intel_wait_for_register_fw drm/i915/guc: Fix sleep under spinlock during reset Ville Syrjälä (47): drm/i915: Make legacy cursor updates more unsynced drm/i915: Check for id==PLANE_CURSOR instead of type==DRM_PLANE_TYPE_CURSOR drm/i915: Use intel_wm_plane_visible() on VLV/CHV as well drm/i915: Enable atomic on VLV/CHV drm/i915: Perform link quality check unconditionally during long pulse drm/i915: Fix runtime PM for LPE audio ALSA: x86: Clear the pdata.notify_lpe_audio pointer before teardown drm/i915: Stop pretending to mask/unmask LPE audio interrupts drm/i915: Remove the unused pending_notify from LPE platform data drm/i915: Replace tmds_clock_speed and link_rate with just ls_clock drm/i915: Remove hdmi_connected from LPE audio pdata drm/i915: Reorganize intel_lpe_audio_notify() arguments drm/i915: Clean up the LPE audio platform data ALSA: x86: Prepare LPE audio ctls for multiple PCMs ALSA: x86: Split snd_intelhad into card and PCM specific structures ALSA: x86: Register multiple PCM devices for the LPE audio card drm/i915: Fix rawclk readout for g4x drm/i915: s/vlv_plane_wm_compute/vlv_raw_plane_wm_compute/ etc. drm/i915: Drop the debug message from vlv_get_fifo_size() drm/i915: s/vlv_num_wm_levels/intel_wm_num_levels/ drm/i915: Rename bunch of vlv_ watermark structures to g4x_ drm/i915: Make vlv/chv watermark debug print less cryptic drm/i915: Document CxSR drm/i915: Fix cursor 'cpp' in watermark calculatins for old platforms drm/i915: Fix the g4x watermark TLB miss workaround drm/i915: Refactor the g4x TLB miss w/a to a helper drm/i915: Refactor wm calculations drm/i915: Apply the g4x TLB miss w/a to SR watermarks as well drm/i915: Two stage watermarks for g4x drm/i915: Enable HPLL watermarks on g4x drm/i915: Add g4x watermark tracepoint drm/i915: Add support for sprites on g4x drm/i915: Parametrize cursor/primary pipe select bits drm/i915: Pass intel_plane and intel_crtc to plane hooks drm/i915: Refactor CURBASE calculation drm/i915: Clean up cursor junk from intel_crtc drm/i915: Refactor CURPOS calculation drm/i915: Move cursor position and base handling into the platform specific functions drm/i915: Drop useless posting reads from cursor commit drm/i915: Split cursor check_plane into i845 and i9xx variants drm/i915: Generalize cursor size checks a bit drm/i915: Use fb->pitches[0] in cursor code drm/i915: Support variable cursor height on ivb+ drm/i915: Fix gen3 physical cursor alignment requirements drm/i915: Handle fb offset and src coordinates for cursors drm/i915: Relax 845/865 CURBASE alignemnt requirement to 32 bytes drm/i915: Simplify cursor register write sequence daniele.ceraolospurio@xxxxxxxxx (1): drm/i915/guc: write wopcm related register once during uc init drivers/gpu/drm/i915/Makefile | 1 + drivers/gpu/drm/i915/dvo_ch7017.c | 4 +- drivers/gpu/drm/i915/gvt/scheduler.c | 12 +- drivers/gpu/drm/i915/i915_cmd_parser.c | 8 +- drivers/gpu/drm/i915/i915_debugfs.c | 162 ++- drivers/gpu/drm/i915/i915_drv.c | 27 +- drivers/gpu/drm/i915/i915_drv.h | 273 ++-- drivers/gpu/drm/i915/i915_gem.c | 232 ++-- drivers/gpu/drm/i915/i915_gem.h | 2 + drivers/gpu/drm/i915/i915_gem_clflush.c | 8 +- drivers/gpu/drm/i915/i915_gem_clflush.h | 1 - drivers/gpu/drm/i915/i915_gem_context.c | 115 +- drivers/gpu/drm/i915/i915_gem_dmabuf.c | 24 + drivers/gpu/drm/i915/i915_gem_execbuffer.c | 12 + drivers/gpu/drm/i915/i915_gem_gtt.c | 42 +- drivers/gpu/drm/i915/i915_gem_request.c | 178 ++- drivers/gpu/drm/i915/i915_gem_request.h | 11 + drivers/gpu/drm/i915/i915_gem_shrinker.c | 61 +- drivers/gpu/drm/i915/i915_gem_timeline.c | 95 +- drivers/gpu/drm/i915/i915_gem_timeline.h | 47 +- drivers/gpu/drm/i915/i915_gpu_error.c | 46 +- drivers/gpu/drm/i915/i915_guc_submission.c | 9 +- drivers/gpu/drm/i915/i915_irq.c | 35 +- drivers/gpu/drm/i915/i915_pci.c | 5 - drivers/gpu/drm/i915/i915_perf.c | 395 ++++-- drivers/gpu/drm/i915/i915_reg.h | 40 +- drivers/gpu/drm/i915/i915_syncmap.c | 412 ++++++ drivers/gpu/drm/i915/i915_syncmap.h | 38 + drivers/gpu/drm/i915/i915_sysfs.c | 26 +- drivers/gpu/drm/i915/i915_trace.h | 49 + drivers/gpu/drm/i915/i915_utils.h | 6 + drivers/gpu/drm/i915/intel_atomic_plane.c | 24 +- drivers/gpu/drm/i915/intel_audio.c | 19 +- drivers/gpu/drm/i915/intel_breadcrumbs.c | 13 +- drivers/gpu/drm/i915/intel_cdclk.c | 22 +- drivers/gpu/drm/i915/intel_crt.c | 10 +- drivers/gpu/drm/i915/intel_device_info.c | 2 +- drivers/gpu/drm/i915/intel_display.c | 732 ++++++----- drivers/gpu/drm/i915/intel_dp.c | 360 +++-- drivers/gpu/drm/i915/intel_dp_aux_backlight.c | 37 +- drivers/gpu/drm/i915/intel_dp_link_training.c | 25 +- drivers/gpu/drm/i915/intel_dp_mst.c | 16 +- drivers/gpu/drm/i915/intel_drv.h | 86 +- drivers/gpu/drm/i915/intel_dsi.c | 7 +- drivers/gpu/drm/i915/intel_dvo.c | 2 +- drivers/gpu/drm/i915/intel_engine_cs.c | 215 ++- drivers/gpu/drm/i915/intel_guc_fwif.h | 4 +- drivers/gpu/drm/i915/intel_guc_loader.c | 19 +- drivers/gpu/drm/i915/intel_guc_log.c | 6 +- drivers/gpu/drm/i915/intel_hangcheck.c | 2 +- drivers/gpu/drm/i915/intel_hdmi.c | 7 +- drivers/gpu/drm/i915/intel_huc.c | 64 +- drivers/gpu/drm/i915/intel_lpe_audio.c | 99 +- drivers/gpu/drm/i915/intel_lrc.c | 110 +- drivers/gpu/drm/i915/intel_lrc.h | 2 - drivers/gpu/drm/i915/intel_panel.c | 17 +- drivers/gpu/drm/i915/intel_pipe_crc.c | 30 +- drivers/gpu/drm/i915/intel_pm.c | 1390 ++++++++++++++------ drivers/gpu/drm/i915/intel_ringbuffer.c | 329 +++-- drivers/gpu/drm/i915/intel_ringbuffer.h | 85 +- drivers/gpu/drm/i915/intel_sdvo.c | 9 +- drivers/gpu/drm/i915/intel_sprite.c | 124 +- drivers/gpu/drm/i915/intel_tv.c | 208 +-- drivers/gpu/drm/i915/intel_uc.c | 101 +- drivers/gpu/drm/i915/intel_uc.h | 19 +- drivers/gpu/drm/i915/intel_uncore.c | 247 ++-- drivers/gpu/drm/i915/intel_uncore.h | 169 +++ .../gpu/drm/i915/selftests/i915_gem_coherency.c | 10 +- drivers/gpu/drm/i915/selftests/i915_gem_dmabuf.c | 100 ++ drivers/gpu/drm/i915/selftests/i915_gem_object.c | 4 +- drivers/gpu/drm/i915/selftests/i915_gem_request.c | 2 +- drivers/gpu/drm/i915/selftests/i915_gem_timeline.c | 301 +++++ .../gpu/drm/i915/selftests/i915_mock_selftests.h | 2 + drivers/gpu/drm/i915/selftests/i915_random.c | 11 + drivers/gpu/drm/i915/selftests/i915_random.h | 2 + drivers/gpu/drm/i915/selftests/i915_syncmap.c | 616 +++++++++ drivers/gpu/drm/i915/selftests/mock_engine.c | 11 +- drivers/gpu/drm/i915/selftests/mock_gem_device.c | 2 + drivers/gpu/drm/i915/selftests/mock_timeline.c | 45 + drivers/gpu/drm/i915/selftests/mock_timeline.h | 33 + drivers/gpu/drm/i915/selftests/mock_uncore.c | 46 + drivers/gpu/drm/i915/selftests/mock_uncore.h | 30 + include/drm/intel_lpe_audio.h | 22 +- include/uapi/drm/i915_drm.h | 17 +- sound/x86/intel_hdmi_audio.c | 328 +++-- sound/x86/intel_hdmi_audio.h | 20 +- 86 files changed, 5924 insertions(+), 2665 deletions(-) create mode 100644 drivers/gpu/drm/i915/i915_syncmap.c create mode 100644 drivers/gpu/drm/i915/i915_syncmap.h create mode 100644 drivers/gpu/drm/i915/intel_uncore.h create mode 100644 drivers/gpu/drm/i915/selftests/i915_gem_timeline.c create mode 100644 drivers/gpu/drm/i915/selftests/i915_syncmap.c create mode 100644 drivers/gpu/drm/i915/selftests/mock_timeline.c create mode 100644 drivers/gpu/drm/i915/selftests/mock_timeline.h create mode 100644 drivers/gpu/drm/i915/selftests/mock_uncore.c create mode 100644 drivers/gpu/drm/i915/selftests/mock_uncore.h -- 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