[regression, bisected] [i915] setting initial watermarks on gen 7 IVYBRIDGE causes blank lines on monitor
Submitted by Andrea
Assigned to Intel GFX Bugs mailing list
Link to original bug (#109477)
Description
Created attachment 143236
output corruption
I've seen a regression on linux-stable since this commit (merged on stable between 4.19.2 and 4.19.3)
I've a gen 7:
Platform: IVYBRIDGE
PCI ID: 0x0166
PCI Revision: 0x09
PCI Subsystem: 17aa:2208
graphic card on a Lenovo T431s, which has "has_gmch_display: no", but apparently it doesn't fully support setting the initial_watermarks().
See screenshot for the output corruption. See git bisect log, and the lspci for the card.
Excluding the call to initial_watermarks() "fixes" the issue:
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 3bd44d042a1d..1c1b2ee556ef 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -12639,12 +12639,14 @@ static void intel_atomic_commit_tail(struct drm_atomic_state *state)
intel_check_cpu_fifo_underruns(dev_priv);
intel_check_pch_fifo_underruns(dev_priv);
+#if 0
/* FIXME unify this for all platforms */
if (!new_crtc_state->active &&
!HAS_GMCH_DISPLAY(dev_priv) &&
dev_priv->display.initial_watermarks)
dev_priv->display.initial_watermarks(intel_state,
to_intel_crtc_state(new_crtc_state));
+#endif
}
}
For completeness, I've tried the drm-tip:
commit bc2fcdf82a5b94f015126dfa9db03f88feb9ae17
Date: Mon Jan 28 11:15:42 2019 +0100
but the issue is still present.
### git bisect log
git bisect start
# bad: [73aa1c86c6ec67931abf0c6b96b6853578b07db5] Linux 4.19.3
git bisect bad 73aa1c86c6ec67931abf0c6b96b6853578b07db5
# good: [7950eb316adf792283cac5743dfe5a11e74833dc] Linux 4.19.2
git bisect good 7950eb316adf792283cac5743dfe5a11e74833dc
# good: [67a19f87a02beec6a676ed427fbe3c1f5f00d9f4] mm: thp: relax __GFP_THISNODE for MADV_HUGEPAGE mappings
git bisect good 67a19f87a02beec6a676ed427fbe3c1f5f00d9f4
# good: [401182ae096bfb16693bcfb8fcab1bc128a5c6bc] kdb: print real address of pointers instead of hashed addresses
git bisect good 401182ae096bfb16693bcfb8fcab1bc128a5c6bc
# good: [3ff21b59ffd294c04fd83994e71417247f0d2ee7] drm/etnaviv: fix bogus fence complete check in timeout handler
git bisect good 3ff21b59ffd294c04fd83994e71417247f0d2ee7
# good: [1a25e1a1be71a49ee7f34fb14b5a26191e6cf501] drm/i915: Mark up GTT sizes as u64
git bisect good 1a25e1a1be71a49ee7f34fb14b5a26191e6cf501
# bad: [828271c43b7850748b3cd18e769367a244875acf] drm/i915/ringbuffer: Delay after EMIT_INVALIDATE for gen4/gen5
git bisect bad 828271c43b7850748b3cd18e769367a244875acf
# bad: [b4aa9db0b24f8504ee8e4de36bc84eae4f9fad63] drm/i915: Compare user's 64b GTT offset even on 32b
git bisect bad b4aa9db0b24f8504ee8e4de36bc84eae4f9fad63
# bad: [a46a7350b1e85fe78580f6a4c809a876867a9df8] drm/i915: Fix ilk+ watermarks when disabling pipes
git bisect bad a46a7350b1e85fe78580f6a4c809a876867a9df8
# good: [6d6e718e454b65448bbb50c876e5040f5d05db6d] drm/i915: Fix error handling for the NV12 fb dimensions check
git bisect good 6d6e718e454b65448bbb50c876e5040f5d05db6d
# first bad commit: [a46a7350b1e85fe78580f6a4c809a876867a9df8] drm/i915: Fix ilk+ watermarks when disabling pipes
### lspci -vvv -x
00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09) (prog-if 00 [VGA controller])
Subsystem: Lenovo 3rd Gen Core processor Graphics Controller
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- `SERR- Latency: 0
Interrupt: pin A routed to IRQ 26
Region 0: Memory at f0000000 (64-bit, non-prefetchable) [size=4M]
Region 2: Memory at e0000000 (64-bit, prefetchable) [size=256M]
Region 4: I/O ports at 4000 [size=64]
[virtual] Expansion ROM at 000c0000 [disabled] [size=128K]
Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
Address: fee08004 Data: 4025
Capabilities: [d0] Power Management version 2
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [a4] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel driver in use: i915
00: 86 80 66 01 07 04 90 00 09 00 00 03 00 00 00 00
10: 04 00 00 f0 00 00 00 00 0c 00 00 e0 00 00 00 00
20: 01 40 00 00 00 00 00 00 00 00 00 00 aa 17 08 22
30: 00 00 00 00 90 00 00 00 00 00 00 00 ff 01 00 00
**Attachment 143236**, "output corruption":