Unexpected screen flicker during i915 initialization
Submitted by Chris Chiu
Assigned to Intel GFX Bugs mailing list
We have 2 laptops, ASUS Z406MA and Acer TravelMate B118, both powered by the same Intel N5000 GemniLake CPU. On the Acer laptop, the panel will blink once during boot which never happens on the ASUS laptop. It caught my attention and I find the difference between them but I need help for more information,
The major difference happens in bxt_sanitize_cdclk() on the following condition check.
if (cdctl == expected)
/* All well; nothing to sanitize */
On the problematic Acer laptop, the value of cdctl is 0x27a while the same cdctl is 0x278 on ASUS machine. Due to the 0x27a is not equal to the expected value 0x278 so it needs to be sanitized by assigning -1 to dev_priv->cdclk.hw.vco. Then the consequent bxt_set_cdclk() will force the full PLL disable and enable. And that's the flicker (blink) we observed during boot.
Although I can't find the definition of the BIT(2) of CDCLK_CTL which causes this difference. I reproduced this bug on latest 5.3 mainline and also kernel built from https://github.com/freedesktop/drm-intel. But I think it's not really about i915 driver if the content from register CDCLK_CTL is unexpected. Can anyone suggest what exactly the problem is and how should we deal with it? Thanks.
Please ref. https://lkml.org/lkml/2019/10/30/240 mail thread here.