mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-29 04:45:05 +00:00
drm/i915/bdw: Add 42ms delay for IPS disable
This is a requirement added to the spec. This patch will prevent persistent corruption on the display. v2: Make the wait before the vblank wait. (Art) Try to finish early by polling the register s/present/prevent (Chris) Cc: Art Runyan <arthur.j.runyan@intel.com> Signed-off-by: Ben Widawsky <ben@bwidawsk.net> [danvet: Upgrade debug output to ERROR.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
439d7ac087
commit
23d0b13036
@ -3583,10 +3583,13 @@ void hsw_disable_ips(struct intel_crtc *crtc)
|
||||
return;
|
||||
|
||||
assert_plane_enabled(dev_priv, crtc->plane);
|
||||
if (IS_BROADWELL(crtc->base.dev)) {
|
||||
if (IS_BROADWELL(dev)) {
|
||||
mutex_lock(&dev_priv->rps.hw_lock);
|
||||
WARN_ON(sandybridge_pcode_write(dev_priv, DISPLAY_IPS_CONTROL, 0));
|
||||
mutex_unlock(&dev_priv->rps.hw_lock);
|
||||
/* wait for pcode to finish disabling IPS, which may take up to 42ms */
|
||||
if (wait_for((I915_READ(IPS_CTL) & IPS_ENABLE) == 0, 42))
|
||||
DRM_ERROR("Timed out waiting for IPS disable\n");
|
||||
} else {
|
||||
I915_WRITE(IPS_CTL, 0);
|
||||
POSTING_READ(IPS_CTL);
|
||||
|
Loading…
Reference in New Issue
Block a user