[Intel-gfx] [PATCH 00/14] drm/i915: VLV/CHV two-stage watermarks

ville.syrjala at linux.intel.com ville.syrjala at linux.intel.com
Mon Dec 12 20:35:16 UTC 2016


From: Ville Syrjälä <ville.syrjala at linux.intel.com>

OK, so finally managed to beat the HW mostly into submission
and got the two stage watermark programming to work on VLV/CHV.

So the hardware has the following features:
* single buffered watermark registers, hence we need the two-stage programming
* inverted watermark registers, which actually makes the two-stage stuff
  easier than on ilk-bdw
* double buffered FIFO split registers, hence FIFO split changed atomically
  with the plane updates as long as we program everything within the same frame
* various ways to make things blow up. I found two new ones this time, but
  they were reasonable easy to workaround

One of the goals I had was to keep the planes as independent as possible, and
so I track the watermark and FIFO in the crtc state rather than the plane
states so that we don't need the plane locks for the other planes when only
a subset of planes is changing.

Entire series available here:
git://github.com/vsyrjala/linux.git vlv_atomic_wm_4

Ville Syrjälä (14):
  drm/i915: Track visible planes in a bitmask
  drm/i915: Track plane fifo sizes under intel_crtc
  drm/i915: Move vlv wms from crtc->wm_state to crtc->wm.active.vlv
  drm/i915: Plop vlv wm state into crtc_state
  drm/i915: Plop vlv/chv fifo sizes into crtc state
  drm/i915: Compute VLV/CHV FIFO sizes based on the PM2 watermarks
  drm/i915: Compute vlv/chv wms the atomic way
  drm/i915: Skip useless watermark/FIFO related work on VLV/CHV when not
    needed
  drm/i915: Compute proper intermediate wms for vlv/cvh
  drm/i915: Nuke crtc->wm.cxsr_allowed
  drm/i915: Only use update_wm_{pre,post} for pre-ilk platforms
  drm/i915: Sanitize VLV/CHV watermarks properly
  drm/i915: Workaround VLV/CHV sprite1->sprite0 enable underrun
  drm/i915: Kill level 0 wm hack for VLV/CHV

 drivers/gpu/drm/i915/i915_drv.h           |   8 +
 drivers/gpu/drm/i915/intel_atomic.c       |   1 +
 drivers/gpu/drm/i915/intel_atomic_plane.c |   6 +
 drivers/gpu/drm/i915/intel_display.c      | 175 ++++----
 drivers/gpu/drm/i915/intel_drv.h          |  46 ++-
 drivers/gpu/drm/i915/intel_pm.c           | 662 ++++++++++++++++++++----------
 6 files changed, 605 insertions(+), 293 deletions(-)

-- 
2.7.4



More information about the Intel-gfx mailing list