drm/i915/skl: Flush the WM configuration
authorDamien Lespiau <damien.lespiau@intel.com>
Tue, 4 Nov 2014 17:07:02 +0000 (17:07 +0000)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Fri, 7 Nov 2014 17:42:14 +0000 (18:42 +0100)
commit0e8fb7ba7ca5410b2a8adc7f19eeb229ed01a32e
tree00b900b9151e0c38eaceba15072e964d06d78c37
parent34bb56af7fae9d4d6a33bf6f5f915e75a4023e02
drm/i915/skl: Flush the WM configuration

When we write new values for the DDB allocation and WM parameters, we now
need to trigger the double buffer update for the pipe to take the new
configuration into account.

As the DDB is a global resource shared between planes, enabling or
disabling one plane will result in changes for all planes that are
currently in use, thus the need write PLANE_SURF/CUR_BASE for more than
the plane we're touching.

v2: Don't wait for pipes that are off

v3: Split the staging results structure to not exceed the 1Kb stack
    allocation in skl_update_wm()

v4: Rework and document the algorithm after Ville found that it was all
    wrong.

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_pm.c