[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