Comment 0 for bug 1928138

Revision history for this message
xalt7x (xalt7x) wrote : Flickering on built-in display (Intel Haswell graphics) since kernel v4.1 [bissected and workaround attached]

Since kernel 4.1 laptop HP Elitebook Folio 1040 G1 (with Intel i5-4210U) has a pretty issue with flickering

Symptoms:
1) If I leave mouse cursor for a few seconds, then start moving it, there's slight flicker (like display brightness changes a bit)
2) On the top left corner sometimes appears artifacts. It's relatively easy to see with black window decorations on top of the screen. This one is showed at the attached video bellow
3) With kernel boot options
drm.debug=0x1e log_buf_len=4M
dmesg shows constant refresh rate changes (even if it's set to 40HZ)
[ 29.977378] [drm:intel_dp_set_drrs_state [i915]] eDP Refresh Rate set to : 40Hz
[ 30.456537] [drm:intel_dp_set_drrs_state [i915]] eDP Refresh Rate set to : 60Hz
[ 33.973392] [drm:intel_dp_set_drrs_state [i915]] eDP Refresh Rate set to : 40Hz
[ 35.055923] [drm:intel_dp_set_drrs_state [i915]] eDP Refresh Rate set to : 60Hz

nomodeset boot option eliminates flickering

Turns out Display Refresh Rate Switching (DRRS) feature doesn't work correctly here. It was implemented on kernels 4.0...4.1 but on a particular machine flickering started with 4.1.

As a workaround I'm attaching a patch which disables DRRS by default and adds module parameter "enable_drrs" to activate it. It's made for kernel 5.12 and should work for older versions as well (tested with 5.11).

Until this issue is resolved, please consider adding parameter to disable DRRS. Windows has such option on IntelĀ® Graphics Command Center.