drm/i915: disable IPS while getting the sink CRCs
authorPaulo Zanoni <paulo.r.zanoni@intel.com>
Mon, 25 May 2015 21:52:29 +0000 (18:52 -0300)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 28 May 2015 09:13:53 +0000 (11:13 +0200)
commit4373f0f24ed52549d4d6a0d7e155301476ec0a36
treee1081f442879d75618df07d5d8df14b5564c8ae4
parent5e3daaca09f5158eff9c92290faa1d2001ecc6e4
drm/i915: disable IPS while getting the sink CRCs

This commit is the "sink CRC" version of:

commit 8c740dcea254a1472df2c0ac5ac585412a2507ec
Author: Paulo Zanoni <paulo.r.zanoni@intel.com>
Date:   Fri Oct 17 18:42:03 2014 -0300
    drm/i915: disable IPS while getting the pipe CRCs.

For some unknown reason, when IPS gets enabled, the sink CRC changes.
Since hsw_enable_ips() doesn't really guarantee to enable IPS (it
depends on package C-states), we can't really predict if IPS is
enabled or disabled while running our CRC tests, so let's just
completely disable IPS while sink CRCs are being used.

If we find a way to make IPS not change the pipe CRC result, we may
want to fix IPS and then revert this patch (and 8c740dcea too). While
this doesn't happen, let's merge this patch, so the IGT tests relying
on sink CRCs can work properly.

This was discovered while developing a new IGT test, which will
probably be called kms_frontbuffer_tracking.

Testcase: igt/kms_frontbuffer_tracking (not on upstream IGT yet)
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_dp.c