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

Daniel Vetter daniel.vetter at ffwll.ch
Tue May 16 09:05:23 UTC 2017


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 at intel.com (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


More information about the Intel-gfx mailing list