From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> 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 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx