1

I have my Lenovo ThinkPad X220 connected to an Acer VG0 27" 1440p screen via DisplayPort. Periodically, the screen flicks off for several seconds. Usually it comes back, but occasionally it will switch off until I unplug the screen and reconnect it.

I added a port replicator, which allows me to connect a second screen and use the laptop closed. The second screen is an LG 23" 1080p connected via DisplayPort->HDMI. This screen doesn't flicker, so it's something to do with either the higher resolution of the Acer or the native DisplayPort connection (or both).

I've found a lot of conflicting information on the error message that appears in dmesg after a flicker:

[ 2779.680083] [drm:intel_cpu_fifo_underrun_irq_handler [i915]] *ERROR* CPU pipe B FIFO underrun
[ 2779.680147] [drm:intel_set_pch_fifo_underrun_reporting [i915]] *ERROR* uncleared pch fifo underrun on pch transcoder B
[ 2779.680176] [drm:intel_pch_fifo_underrun_irq_handler [i915]] *ERROR* PCH transcoder B FIFO underrun

Sometimes it's pipe/transcoder A. Either way, it's the same block of messages. Extensive searching has turned up that this is a simple diagnostic message, with no particular impact on use, to the same symptoms I'm experiencing with display flickering, and no clear resolution. Some posts state that this was fixed in older kernels than I'm running - 5.4.0-37.

The flicker happens very randomly and is difficult to induce, but often happens while scrolling in Firefox, dropping down my Guake terminal or participating in a Zoom meeting.

I've tried many different kernel flags from the various posts, which seem to point to either 1) the IOMMU in this Sandy Bridge i7 or 2) C-States and power management. Nothing has reliably fixed the problem. Some of the options I've tried: "i915.enable_rc6=0 i915.semaphores=1 pcie_aspm=force i915.enable_psr=0 i915.edp_vswing=2 intel_iommu=on,igfx_off processor.max_cstate=1 intel_idle.max_cstate=1". I'm currently running with "i915.enable_rc6=1 i915.enable_fbc=1 i915.powersave=1 i915.modeset=1 i915.lvds_downclock=1" and it still flickers. One example: Flickering screen + CPU pipe B FIFO underrun when I use the termnal

I replaced the motherboard in my X220 and there's damage to the NIC, so it's not impossible there is a hardware fault on this board, but since it does work for a reasonable amount of time and the second screen is stable, I'm confident it's not this board. I haven't tried the Acer screen on the original board, but connecting the original board to 1080p screens via DP->HDMI had no issues. I don't have another DP screen to test with. I have tried a different DP cable without success. It also flickers if it's connected to the laptop's DP output.

The screen is not the problem as it works on another laptop via DP. I've also tried connecting the screen to the X220 via HDMI, which is stable but it seems to max out at 1080p resolution, and I specifically want the extra pixels.

Hardware is:

  • Core i7 2620m with 16GB DDR3
  • integrated Intel HD Graphics 3000
  • Acer VG270UPbmiipx via DP
  • LG IPS236v via DP->HDMI
  • Lenovo Mini Dock Series 3 Plus USB3.0

Software is:

  • Ubuntu 20.04 x64
  • 5.4.0-37 kernel
  • Cinnamon GUI on Xorg

Kernel modules:

Module                  Size  Used by
ppp_mppe               16384  2
ppp_async              20480  1
nf_conntrack_pptp      24576  0
nf_conntrack          139264  1 nf_conntrack_pptp
nf_defrag_ipv6         24576  1 nf_conntrack
nf_defrag_ipv4         16384  1 nf_conntrack
binfmt_misc            24576  1
nls_iso8859_1          16384  1
dm_multipath           32768  0
scsi_dh_rdac           16384  0
scsi_dh_emc            16384  0
scsi_dh_alua           20480  0
intel_rapl_msr         20480  0
mei_hdcp               24576  0
intel_rapl_common      24576  1 intel_rapl_msr
x86_pkg_temp_thermal    20480  0
coretemp               20480  0
kvm_intel             282624  0
kvm                   663552  1 kvm_intel
intel_cstate           20480  0
intel_rapl_perf        20480  0
uvcvideo               98304  0
videobuf2_vmalloc      20480  1 uvcvideo
videobuf2_memops       20480  1 videobuf2_vmalloc
snd_usb_audio         262144  1
videobuf2_v4l2         24576  1 uvcvideo
videobuf2_common       49152  2 videobuf2_v4l2,uvcvideo
cdc_mbim               20480  0
joydev                 24576  0
snd_usbmidi_lib        36864  1 snd_usb_audio
snd_rawmidi            36864  1 snd_usbmidi_lib
snd_seq_device         16384  1 snd_rawmidi
iwldvm                237568  0
videodev              225280  3 videobuf2_v4l2,uvcvideo,videobuf2_common
cdc_ncm                36864  1 cdc_mbim
mac80211              843776  1 iwldvm
usbnet                 45056  2 cdc_mbim,cdc_ncm
wmi_bmof               16384  0
mii                    20480  1 usbnet
libarc4                16384  2 ppp_mppe,mac80211
mc                     53248  5 videodev,snd_usb_audio,videobuf2_v4l2,uvcvideo,videobuf2_common
input_leds             16384  0
cdc_acm                40960  0
cdc_wdm                24576  1 cdc_mbim
serio_raw              20480  0
iwlwifi               331776  1 iwldvm
snd_hda_codec_hdmi     61440  1
snd_hda_codec_conexant    28672  1
snd_hda_codec_generic    81920  1 snd_hda_codec_conexant
cfg80211              704512  3 iwldvm,iwlwifi,mac80211
snd_hda_intel          53248  5
snd_intel_dspcfg       24576  1 snd_hda_intel
snd_hda_codec         131072  4 snd_hda_codec_generic,snd_hda_codec_conexant,snd_hda_codec_hdmi,snd_hda_intel
snd_hda_core           90112  5 snd_hda_codec_generic,snd_hda_codec_conexant,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec
thinkpad_acpi         110592  0
snd_hwdep              20480  2 snd_usb_audio,snd_hda_codec
mei_me                 40960  1
snd_pcm               106496  6 snd_hda_codec_hdmi,snd_hda_intel,snd_usb_audio,snd_hda_codec,snd_hda_core
mei                   106496  3 mei_hdcp,mei_me
nvram                  16384  1 thinkpad_acpi
ledtrig_audio          16384  3 snd_hda_codec_generic,snd_hda_codec_conexant,thinkpad_acpi
snd_timer              36864  1 snd_pcm
snd                    90112  24 snd_hda_codec_generic,snd_hda_codec_conexant,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_usb_audio,snd_usbmidi_lib,snd_hda_codec,snd_timer,thinkpad_acpi,snd_pcm,snd_rawmidi
soundcore              16384  1 snd
mac_hid                16384  0
sch_fq_codel           20480  3
parport_pc             40960  0
ppdev                  24576  0
lp                     20480  0
parport                53248  3 parport_pc,lp,ppdev
ip_tables              32768  0
x_tables               40960  1 ip_tables
autofs4                45056  2
btrfs                1253376  0
zstd_compress         167936  1 btrfs
dm_crypt               40960  1
raid10                 57344  0
raid456               155648  0
async_raid6_recov      24576  1 raid456
async_memcpy           20480  2 raid456,async_raid6_recov
async_pq               24576  2 raid456,async_raid6_recov
async_xor              20480  3 async_pq,raid456,async_raid6_recov
async_tx               20480  5 async_pq,async_memcpy,async_xor,raid456,async_raid6_recov
xor                    24576  2 async_xor,btrfs
raid6_pq              114688  4 async_pq,btrfs,raid456,async_raid6_recov
libcrc32c              16384  3 nf_conntrack,btrfs,raid456
raid1                  45056  0
raid0                  24576  0
multipath              20480  0
linear                 20480  0
hid_logitech_hidpp     40960  0
hid_logitech_dj        24576  0
hid_generic            16384  0
usbhid                 57344  1 hid_logitech_dj
hid                   131072  4 usbhid,hid_generic,hid_logitech_dj,hid_logitech_hidpp
crct10dif_pclmul       16384  1
crc32_pclmul           16384  0
ghash_clmulni_intel    16384  0
i915                 1986560  22
sdhci_pci              53248  0
cqhci                  28672  1 sdhci_pci
ahci                   40960  3
aesni_intel           372736  2
psmouse               155648  0
libahci                32768  1 ahci
i2c_algo_bit           16384  1 i915
i2c_i801               32768  0
lpc_ich                24576  0
sdhci                  65536  1 sdhci_pci
drm_kms_helper        184320  1 i915
syscopyarea            16384  1 drm_kms_helper
crypto_simd            16384  1 aesni_intel
sysfillrect            16384  1 drm_kms_helper
sysimgblt              16384  1 drm_kms_helper
fb_sys_fops            16384  1 drm_kms_helper
cryptd                 24576  3 crypto_simd,ghash_clmulni_intel
glue_helper            16384  1 aesni_intel
drm                   491520  8 drm_kms_helper,i915
e1000e                258048  0
wmi                    32768  1 wmi_bmof
video                  49152  2 thinkpad_acpi,i915

3 Answers3

0

Since it's random, I can't say for sure if this is a fix, but with newer kernels/other updates seeming to increase the frequency of the flickering, this does seem to have helped:

https://bbs.archlinux.org/viewtopic.php?pid=1533863#p1533863

This driver uses SNA as the default acceleration method. You can try falling back to UXA if you run into trouble. To do so, save a file with the following content as /etc/X11/xorg.conf.d/20-intel.conf :

  Section "Device"
    Identifier  "Intel Graphics"
    Driver      "intel"
    Option      "AccelMethod"  "uxa"
    #Option      "AccelMethod"  "sna"
  EndSection

It hasn't flickered since adding this file and restarting X11. Fingers crossed this helps.

Edit: no, it's not a fix. Just had another flicker. However, it does seem to have reduced the occurrences.

0

I have similar problem as yours on my Thinkpad W520 and similar CPU error message.

It is a hardware issue as I tried switch to Windows 7 and my screen flickers the same way. The issue has to do with overheating.

I increased the fan speed to maximum using "Thinkfan" and I rarely have the problem anymore.

Kevin Bowen
  • 19,615
  • 55
  • 79
  • 83
hlu
  • 1
  • Now that's very interesting. I had assumed it was kernel-related, and also, I would very frequently work the machine hard enough to see the CPU temperature at 97-98'C without causing the flicker. – Gargravarr Oct 29 '20 at 16:15
  • You should really try blowing the dust out of your laptop if it is overheating this badly. My laptop got 20 degrees (Celsius) cooler once I blew the dust out. You can also try re-applying the thermal paste to the CPU if the problem still occurs – Gordster Nov 02 '20 at 19:32
0

I had the same problem for few months, with the same error messages. I'm using Fedora 32 with kernel 5.11.22, but the problem was present with previous kernels. My laptop is an ASUS N55S and the problem persists even with a fresh copy of Ubuntu 20.04.

I confirm that the problem is due to overheating. I cleaned the CPU fan and the problem was minimized. Additionally, fancontrol service (operates together with pwmconfig provided by lm_sensors) has the problem that in my case the file "fan1_input" has not any value ( cat command over this file shows "No such device or address" error)... Therefore I have created a small shell service to control fan in a more strict way. I have created also a gnome shell extension to have it supervised at any time (due to the same problem with fan1_input file the standard extensions showing fan status also fail in my case).

The program (fanASUS service and gnome shell) can be downloaded from https://nuvol.cmima.csic.es/owncloud/s/ehzjniK9Ls2hlLx