[PATCH v1] Try not to account crc if fifo underrun was reported, to check if this affect fdo #103184 for pnv platform.
Stanislav Lisovskiy
stanislav.lisovskiy at intel.com
Wed Sep 12 11:58:27 UTC 2018
---
drivers/gpu/drm/i915/i915_irq.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 10f28a2ee2e6..6d57afe82512 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -1958,6 +1958,7 @@ static void i915_pipestat_irq_handler(struct drm_i915_private *dev_priv,
{
bool blc_event = false;
enum pipe pipe;
+ bool was_underrun = false;
for_each_pipe(dev_priv, pipe) {
if (pipe_stats[pipe] & PIPE_VBLANK_INTERRUPT_STATUS)
@@ -1966,11 +1967,14 @@ static void i915_pipestat_irq_handler(struct drm_i915_private *dev_priv,
if (pipe_stats[pipe] & PIPE_LEGACY_BLC_EVENT_STATUS)
blc_event = true;
- if (pipe_stats[pipe] & PIPE_CRC_DONE_INTERRUPT_STATUS)
- i9xx_pipe_crc_irq_handler(dev_priv, pipe);
-
- if (pipe_stats[pipe] & PIPE_FIFO_UNDERRUN_STATUS)
+ if (pipe_stats[pipe] & PIPE_FIFO_UNDERRUN_STATUS) {
intel_cpu_fifo_underrun_irq_handler(dev_priv, pipe);
+ was_underrun = true;
+ }
+
+ if (pipe_stats[pipe] & PIPE_CRC_DONE_INTERRUPT_STATUS)
+ if (!was_underrun)
+ i9xx_pipe_crc_irq_handler(dev_priv, pipe);
}
if (blc_event || (iir & I915_ASLE_INTERRUPT))
--
2.17.0
More information about the Intel-gfx-trybot
mailing list