[PATCH 0/6] drm/i915/skl: Finally fix watermarks

From: Lyude
Date: Wed Jul 20 2016 - 17:01:25 EST


To Sebastian Reichel:
If this e-mail has the bizarre email address formatting issue you
noticed in the last patch series I sent please let me know. I haven't
gotten a chance to properly look at the e-mail you forwarded to me to
see what's causing the problem, but I double checked the Cc: line for
this e-mail manually before sending it out so hopefully I should be
good for nowâ

Anyway, onto the actual patch series:

Unfortunately as a few of you are aware, Skylake is still very prone to pipe
underruns. Most of this comes from not doing things atomically enough (e.g.
needing to ensure that we update watermarks with other plane attributes, not
forcefully flushing pipes until we need to, etc.). Now that I've finally got a
grasp on how double buffered registers, arming registers, etc. works on skl,
I've written up patches that fix all of the pipe underruns on Skylake I was
able to reproduce.

Of course, one of the prerequisites for this patch series to actually fix all
of the pipe underruns is the patch I previously submitted that added support
for Skylake's SAGV.

Originally this patch series left behind the issue of running into pipe
underruns when we disabled pipes, however I've now managed to fix that behavior
as well. As such I've renamed the patch series appropriately instead of just
incrementing the version.

Signed-off-by: Lyude <cpaul@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Cc: Ville SyrjÃlà <ville.syrjala@xxxxxxxxxxxxxxx>
Cc: Daniel Vetter <daniel.vetter@xxxxxxxxx>
Cc: Radhakrishna Sripada <radhakrishna.sripada@xxxxxxxxx>
Cc: Hans de Goede <hdegoede@xxxxxxxxxx>
Cc: Matt Roper <matthew.d.roper@xxxxxxxxx>

Lyude (5):
drm/i915/skl: Update plane watermarks atomically during plane updates
drm/i915/skl: Actually reuse wm values when pipes don't change
drm/i915/skl: Always wait for pipes to update after a flush
drm/i915/skl: Only flush pipes when we change the ddb allocation
drm/i915/skl: Fix extra whitespace in skl_flush_wm_values()

Matt Roper (1):
drm/i915/gen9: Only copy WM results for changed pipes to skl_hw

drivers/gpu/drm/i915/i915_drv.h | 1 +
drivers/gpu/drm/i915/intel_display.c | 5 ++
drivers/gpu/drm/i915/intel_drv.h | 2 +
drivers/gpu/drm/i915/intel_pm.c | 133 +++++++++++++++++++++++++++++------
drivers/gpu/drm/i915/intel_sprite.c | 2 +
5 files changed, 120 insertions(+), 23 deletions(-)

--
2.7.4