2016-04-04 23:36:23

by Lyude Paul

[permalink] [raw]
Subject: [PATCH] drm/i915/skl: Disable underrun reporting on MST unplug

Unplugging MST displays usually causes underruns, so turn off underrun
reporting so people don't report false positives.

Signed-off-by: Lyude <[email protected]>
---
drivers/gpu/drm/i915/intel_display.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 6e0d828..fa8a72b 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -5146,6 +5146,10 @@ static void haswell_crtc_disable(struct drm_crtc *crtc)
if (intel_crtc->config->has_pch_encoder)
intel_set_pch_fifo_underrun_reporting(dev_priv, TRANSCODER_A,
false);
+ else if (intel_crtc->config->dp_encoder_is_mst)
+ intel_set_cpu_fifo_underrun_reporting(dev_priv,
+ intel_crtc->pipe, false);
+

for_each_encoder_on_crtc(dev, crtc, encoder) {
intel_opregion_notify_encoder(encoder, false);
@@ -5182,7 +5186,10 @@ static void haswell_crtc_disable(struct drm_crtc *crtc)

intel_set_pch_fifo_underrun_reporting(dev_priv, TRANSCODER_A,
true);
- }
+ } else if (intel_crtc->config->dp_encoder_is_mst)
+ intel_set_cpu_fifo_underrun_reporting(dev_priv,
+ intel_crtc->pipe, true);
+
}

static void i9xx_pfit_enable(struct intel_crtc *crtc)
--
2.5.5