i5-10210U flickering display (built-in, HDMI and miniDP) and FIFO underrun while using USB and deep package C-states
The system:
Intel i5-10210U/UHD 620 based notebook, with HDMI 1.4 and miniDP external display ports. dmidecode attached: dmidecode.out
Fedora 32, kernel-5.6.19-300.fc32.x86_64, mesa-dri-drivers-20.1.1-1.fc32.x86_64. Using Gnome 3 on Wayland.
The issue:
When I attach the said notebook to a Dell P2720D monitor via either the HDMI or miniDP port, and all deep package C-states are available, the display works fine at 2560x1440@60Hz. Then if there is some activity on the notebooks USB bus -- e.g., plug in a keyboard, use the web-cam -- the display will begin to flicker or distort on HDMI, or go blank for several seconds if using miniDP. The picture below is a burst-shot capture of the sort of corruption seen on HDMI:
Sometimes
[drm:intel_cpu_fifo_underrun_irq_handler [i915]] *ERROR* CPU pipe A FIFO underrun
appears in dmesg -- full log attached: i915-flicker-dmesg.log. I'll add a drm.debug-enabled log next. Was not able to dump the VBIOS.
This doesn't appear to be related to power draw -- just letting my tablet charge from the notebook, for instance, has no effect; it requires some data transfer to be going on. Furthermore, I think this is related to the activation of deep package C-states (deeper than PC3). If I inhibit them, e.g. by disabling ASPM on a device, the flickering/drop-outs go away.
It seems to be most prevalent on this particular combination of notebook with the Dell P2720D display:
- It don't see it with other machines using the P2720D (on HDMI), and this is my only machine with an i5-10210U processor.
- The notebook in question runs fine attached to my Samsung and Panasonic TVs via HDMI, and can drive the latter at 3840x2160@30Hz without any flickering. However, sometimes the notebook's internal display will go blank temporarily and/or a FIFO underrun message will be logged.
[In the meantime I can probably work around this by some udev trickery and preventing deep sleep states, but something's not quite right here.]