Score:0

i915 randomly picking 60hz or 30hz on Intel HD P630

au flag

On ubuntu 21, and even on the latest dev branch of 22.04, I switched early in hope the issue would be resolved without luck.

Update: I managed to get 60hz all the time by completely unplugging the monitor, letting it boot, and then plugging it in. Apparently it does not like the handshake when linux is starting, for some reason.


I don't seem to be able to find the root cause for this one. Here is xrandr when it works at 60hz:

Screen 0: minimum 8 x 8, current 3840 x 2160, maximum 16384 x 16384
DVI-I-0 disconnected (normal left inverted right x axis y axis)
DVI-I-1 disconnected (normal left inverted right x axis y axis)
DP-0 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
DP-1-1 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 597mm x 336mm
   3840x2160     60.00*+  60.00    50.00    59.94    30.00    25.00    24.00    29.97    23.98  
   2560x1440     59.95  
   1920x1200     59.88  
   1920x1080     60.00    50.00    59.94    30.00    25.00    24.00    29.97    23.98  
   1680x1050     59.95  
   1600x900      60.00  
   1280x1024     60.02  
   1440x900      59.89  
   1366x768      60.00  
   1280x800      74.93    59.81  
   1280x720      60.00    50.00    59.94  
   1024x768      60.00  
   800x600       60.32  
   720x576       50.00  
   720x480       60.00    59.94  
   640x480       60.00    59.94  
   720x400       70.08  
HDMI-1-1 disconnected (normal left inverted right x axis y axis)
DP-1-2 disconnected (normal left inverted right x axis y axis)
HDMI-1-2 disconnected (normal left inverted right x axis y axis)
DP-1-3 disconnected (normal left inverted right x axis y axis)
HDMI-1-3 disconnected (normal left inverted right x axis y axis)

And here is after a reboot picking 30hz (which is 90% of the time)

Screen 0: minimum 320 x 200, current 3840 x 2160, maximum 16384 x 16384
DP-1 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 597mm x 336mm
   3840x2160     30.00*   25.00    24.00    29.97    23.98  
   2560x1440     59.95  
   1920x1200     59.88  
   1920x1080     60.00    50.00    59.94    30.00    25.00    24.00    29.97    23.98  
   1680x1050     59.95  
   1600x900      60.00  
   1280x1024     60.02  
   1440x900      59.89  
   1366x768      60.00  
   1280x800      74.93    59.81  
   1280x720      60.00    50.00    59.94  
   1024x768      60.00  
   800x600       60.32  
   720x576       50.00  
   720x480       60.00    59.94  
   640x480       60.00    59.94  
   720x400       70.08  
HDMI-1 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
HDMI-2 disconnected (normal left inverted right x axis y axis)
DP-3 disconnected (normal left inverted right x axis y axis)
HDMI-3 disconnected (normal left inverted right x axis y axis)
DVI-I-1-0 disconnected (normal left inverted right x axis y axis)
DVI-I-1-1 disconnected (normal left inverted right x axis y axis)
DP-1-0 disconnected (normal left inverted right x axis y axis)
DP-1-1 disconnected (normal left inverted right x axis y axis)

The machine is an Dell Poweredge t40. I flashed a Dell Precision 3630 bios to be able to use the nvme port, and the problem persists. It randomly works at the expected 60hz. I also tried changing the display port cable, and the display port port.

The only way it works at 60hz in a reliable way is when I use an external card, so it must be a problem with the onboard intel gpu, which is the one I want to use for this monitor.

I also tried to add the resolution manually by generating the xrandr configuration using the crt tool, but it doesn't work either.

I found an error and VERY different initialization logs when it DOESN'T work. Here is the log for when it works, and later is the log diff where it doesn't work. Check the memory values and MEMATTR too

Working dmesg diff:

...
[    0.000000] efi: ACPI 2.0=0x79b2d000 ACPI=0x79b2d000 SMBIOS=0xf05e0 SMBIOS 3.0=0xf0600 TPMFinalLog=0x79d0b000 ESRT=0x7a52d698 MEMATTR=0x7390c018 MOKvar=0x7702c000 RNG=0x7a585f98 TPMEventLog=0x655c3018 
...
[    0.094955] Memory: 24325840K/24989276K available (16393K kernel code, 4384K rwdata, 10752K rodata, 2956K init, 4796K bss, 663176K reserved, 0K cma-reserved)
...
[    0.281764] pci 0000:01:00.0: vgaarb: setting as boot VGA device
[    0.281764] pci 0000:01:00.0: vgaarb: VGA device added: decodes=io+mem,owns=io+mem,locks=none
[    0.281764] pci 0000:01:00.0: vgaarb: bridge control possible
...
[    2.857665] i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/kbl_dmc_ver1_04.bin (v1.4)
...
[    3.159097] i915 0000:00:02.0: [drm] failed to retrieve link info, disabling eDP
[    3.159357] i915 0000:00:02.0: [drm] [ENCODER:94:DDI B/PHY B] is disabled/in DSI mode with an ungated DDI clock, gate it
[    3.159359] i915 0000:00:02.0: [drm] [ENCODER:111:DDI C/PHY C] is disabled/in DSI mode with an ungated DDI clock, gate it
[    3.159361] i915 0000:00:02.0: [drm] [ENCODER:121:DDI D/PHY D] is disabled/in DSI mode with an ungated DDI clock, gate it
...
[    4.698100] i915 0000:00:02.0: [drm] Cannot find any crtc or sizes

non-working dmesg diff:

...
[    0.000000] efi: ACPI 2.0=0x79b2d000 ACPI=0x79b2d000 SMBIOS=0xf05e0 SMBIOS 3.0=0xf0600 TPMFinalLog=0x79d0b000 ESRT=0x7a52d698 MEMATTR=0x726bc098 MOKvar=0x726bd000 RNG=0x7a585f98 TPMEventLog=0x655c3018 
...
Reserving Intel graphics memory at [mem 0x7d800000-0x7f7fffff]
[    0.102166] Memory: 24250648K/24989276K available (16393K kernel code, 4384K rwdata, 10752K rodata, 2956K init, 4796K bss, 738368K reserved, 0K cma-reserved)
...
[    0.289644] pci 0000:00:02.0: vgaarb: setting as boot VGA device
[    0.289644] pci 0000:00:02.0: vgaarb: VGA device added: decodes=io+mem,owns=io+mem,locks=none
[    0.289644] pci 0000:01:00.0: vgaarb: VGA device added: decodes=io+mem,owns=none,locks=none
[    0.289644] pci 0000:00:02.0: vgaarb: no bridge control possible
[    0.289644] pci 0000:01:00.0: vgaarb: bridge control possible
...
[    3.057229] i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/kbl_dmc_ver1_04.bin (v1.4)
...
[    3.064548] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.064556] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.065520] nvidia 0000:01:00.0: enabling device (0100 -> 0103)
[    3.065594] nvidia 0000:01:00.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=none
[    3.081168] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.081176] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.081179] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.097823] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.097828] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.097831] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.114499] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.114505] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.114509] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.131168] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.131173] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.131176] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.147826] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.147830] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.147833] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.164604] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.164611] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.164613] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.181275] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.181280] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.181283] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.197838] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.197842] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.197845] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.214497] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.214501] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.214503] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.231173] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.231176] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.231178] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.247943] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.247948] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.264497] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.264501] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.264503] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.281166] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.281169] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.281171] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.297834] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.297837] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.297839] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.314509] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.314512] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.314515] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.330645] i915 0000:00:02.0: [drm] failed to retrieve link info, disabling eDP
[    3.331278] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.331283] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.331288] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.347964] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[    3.347968] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
...
[    4.752284] fbcon: i915drmfb (fb0) is primary device
[    4.780782] i915 0000:00:02.0: [drm] Reducing the compressed framebuffer size. This may lead to less power savings than a non-reduced-size. Try to increase stolen memory size if available in BIOS.

These logs are cherry picked from what I think is most relevant to the issue. I saved the output of dmesg and manually reviewed the differences to better understand the issue.

mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.