[SOLVED] Issues when initializing the 2.8K screen in Linux (X11)

I recently replaced my AMD Framework 13’s screen with the new 2.8K one. Since then I’ve run into a few issues initializing it:

  1. Sometimes, especially when an external monitor is connected, when I start X my laptop’s screen will stay black with some flickering static color bands.
  2. ABM doesn’t do anything (comparing /sys/class/drm/card0/card0-eDP-1/amdgpu_bl0/actual_brightness and /sys/class/drm/card0/card0-eDP-1/amdgpu_bl0/brightness) even when enabled.
  3. I see the attached log when I boot.

I can fix 1 & 2 by turning my laptop’s screen off and on again (e.g., with xset dpms force off).

The only relevant upstream report I can find is Kernel warning in psr_su_set_dsc_slice_height and dsc2_disable at boot (#3027) · Issues · drm / amd · GitLab, but this was apparently fixed? Maybe we need a new BIOS update for the new screen?

dmesg

[    1.900219] amdgpu: Virtual CRAT table created for CPU
[    1.900234] amdgpu: Topology: Add CPU node
[    1.900467] [drm] initializing kernel modesetting (IP DISCOVERY 0x1002:0x15BF 0xF111:0x0006 0xC4).
[    1.900681] [drm] register mmio base: 0x90500000
[    1.900683] [drm] register mmio size: 524288
[    1.905032] [drm] add ip block number 0 
[    1.905033] [drm] add ip block number 1 
[    1.905035] [drm] add ip block number 2 
[    1.905036] [drm] add ip block number 3 
[    1.905037] [drm] add ip block number 4 
[    1.905039] [drm] add ip block number 5 
[    1.905040] [drm] add ip block number 6 
[    1.905041] [drm] add ip block number 7 
[    1.905043] [drm] add ip block number 8 
[    1.905044] [drm] add ip block number 9 
[    1.905045] [drm] add ip block number 10 
[    1.905063] amdgpu 0000:c1:00.0: amdgpu: Fetched VBIOS from VFCT
[    1.905066] amdgpu: ATOM BIOS: 113-PHXGENERIC-001
[    1.906332] [drm] VCN(0) encode/decode are enabled in VM mode
[    1.906611] amdgpu 0000:c1:00.0: [drm:jpeg_v4_0_early_init] JPEG decode is enabled in VM mode
[    1.907451] amdgpu 0000:c1:00.0: vgaarb: deactivate vga console
[    1.907455] amdgpu 0000:c1:00.0: amdgpu: Trusted Memory Zone (TMZ) feature enabled
[    1.907504] [drm] vm size is 262144 GB, 4 levels, block size is 9-bit, fragment size is 9-bit
[    1.907526] amdgpu 0000:c1:00.0: amdgpu: VRAM: 4096M 0x0000008000000000 - 0x00000080FFFFFFFF (4096M used)
[    1.907528] amdgpu 0000:c1:00.0: amdgpu: GART: 512M 0x00007FFF00000000 - 0x00007FFF1FFFFFFF
[    1.907541] [drm] Detected VRAM RAM=4096M, BAR=4096M
[    1.907542] [drm] RAM width 128bits DDR5
[    1.907761] [drm] amdgpu: 4096M of VRAM memory ready
[    1.907763] [drm] amdgpu: 30037M of GTT memory ready.
[    1.907780] [drm] GART: num cpu pages 131072, num gpu pages 131072
[    1.908276] [drm] PCIE GART of 512M enabled (table at 0x00000080FFD00000).
[    1.908975] [drm] Loading DMUB firmware via PSP: version=0x08004000
[    1.909300] [drm] Found VCN firmware Version ENC: 1.22 DEC: 8 VEP: 0 Revision: 3
[    1.909306] amdgpu 0000:c1:00.0: amdgpu: Will use PSP to load VCN firmware
[    1.934964] amdgpu 0000:c1:00.0: amdgpu: reserve 0x4000000 from 0x80f8000000 for PSP TMR
[    2.492649] amdgpu 0000:c1:00.0: amdgpu: RAS: optional ras ta ucode is not available
[    2.500959] amdgpu 0000:c1:00.0: amdgpu: RAP: optional rap ta ucode is not available
[    2.500962] amdgpu 0000:c1:00.0: amdgpu: SECUREDISPLAY: securedisplay ta ucode is not available
[    2.536609] amdgpu 0000:c1:00.0: amdgpu: SMU is initialized successfully!
[    2.536613] [drm] Seamless boot condition check passed
[    2.537865] [drm] Display Core v3.2.281 initialized on DCN 3.1.4
[    2.537868] [drm] DP-HDMI FRL PCON supported
[    2.540407] [drm] DMUB hardware initialized: version=0x08004000
[    2.647832] [drm] PSR support 1, DC PSR ver 0, sink PSR ver 3 DPCD caps 0x3a su_y_granularity 4
[    2.650103] [drm] kiq ring mec 3 pipe 1 q 0
[    2.653074] amdgpu 0000:c1:00.0: [drm:jpeg_v4_0_hw_init] JPEG decode initialized successfully.
[    2.655177] kfd kfd: amdgpu: Allocated 3969056 bytes on gart
[    2.655190] kfd kfd: amdgpu: Total number of KFD nodes to be created: 1
[    2.655314] amdgpu: Virtual CRAT table created for GPU
[    2.655470] amdgpu: Topology: Add dGPU node [0x15bf:0x1002]
[    2.655472] kfd kfd: amdgpu: added device 1002:15bf
[    2.655484] amdgpu 0000:c1:00.0: amdgpu: SE 1, SH per SE 2, CU per SH 6, active_cu_number 12
[    2.655488] amdgpu 0000:c1:00.0: amdgpu: ring gfx_0.0.0 uses VM inv eng 0 on hub 0
[    2.655490] amdgpu 0000:c1:00.0: amdgpu: ring comp_1.0.0 uses VM inv eng 1 on hub 0
[    2.655491] amdgpu 0000:c1:00.0: amdgpu: ring comp_1.1.0 uses VM inv eng 4 on hub 0
[    2.655492] amdgpu 0000:c1:00.0: amdgpu: ring comp_1.2.0 uses VM inv eng 6 on hub 0
[    2.655493] amdgpu 0000:c1:00.0: amdgpu: ring comp_1.3.0 uses VM inv eng 7 on hub 0
[    2.655494] amdgpu 0000:c1:00.0: amdgpu: ring comp_1.0.1 uses VM inv eng 8 on hub 0
[    2.655495] amdgpu 0000:c1:00.0: amdgpu: ring comp_1.1.1 uses VM inv eng 9 on hub 0
[    2.655496] amdgpu 0000:c1:00.0: amdgpu: ring comp_1.2.1 uses VM inv eng 10 on hub 0
[    2.655497] amdgpu 0000:c1:00.0: amdgpu: ring comp_1.3.1 uses VM inv eng 11 on hub 0
[    2.655498] amdgpu 0000:c1:00.0: amdgpu: ring sdma0 uses VM inv eng 12 on hub 0
[    2.655499] amdgpu 0000:c1:00.0: amdgpu: ring vcn_unified_0 uses VM inv eng 0 on hub 8
[    2.655500] amdgpu 0000:c1:00.0: amdgpu: ring jpeg_dec uses VM inv eng 1 on hub 8
[    2.655501] amdgpu 0000:c1:00.0: amdgpu: ring mes_kiq_3.1.0 uses VM inv eng 13 on hub 0
[    2.656825] [drm] ring gfx_32768.1.1 was added
[    2.657440] [drm] ring compute_32768.2.2 was added
[    2.658040] [drm] ring sdma_32768.3.3 was added
[    2.658104] [drm] ring gfx_32768.1.1 ib test pass
[    2.658166] [drm] ring compute_32768.2.2 ib test pass
[    2.658239] [drm] ring sdma_32768.3.3 ib test pass
[    2.660636] amdgpu 0000:c1:00.0: amdgpu: Runtime PM not available
[    2.661738] [drm] Initialized amdgpu 3.57.0 20150101 for 0000:c1:00.0 on minor 0
[    2.668496] fbcon: amdgpudrmfb (fb0) is primary device
[    2.668499] fbcon: Deferring console take-over
[    2.668501] amdgpu 0000:c1:00.0: [drm] fb0: amdgpudrmfb frame buffer device
[    2.724824] [drm] DSC precompute is not needed.
[    2.777986] ------------[ cut here ]------------
[    2.777993] WARNING: CPU: 6 PID: 290 at drivers/gpu/drm/amd/amdgpu/../display/dc/dsc/dcn20/dcn20_dsc.c:272 dsc2_disable+0x114/0x190 [amdgpu]
[    2.778327] Modules linked in: hid_generic usbhid dm_mod amdgpu crct10dif_pclmul crc32_pclmul crc32c_intel polyval_clmulni drm_buddy drm_suballoc_helper polyval_generic drm_ttm_helper ghash_clmulni_intel sha512_ssse3 ttm serio_raw sha256_ssse3 atkbd drm_exec sha1_ssse3 i2c_algo_bit libps2 vivaldi_fmap aesni_intel gpu_sched nvme gf128mul amdxcp crypto_simd drm_display_helper nvme_core cryptd xhci_pci i8042 ccp cec video xhci_pci_renesas nvme_auth serio wmi
[    2.778377] CPU: 6 PID: 290 Comm: plymouthd Not tainted 6.10.5-2-cachyos-lto #1 9e43d025b31658ff3e63d737c764412a97636536
[    2.778383] Hardware name: Framework Laptop 13 (AMD Ryzen 7040Series)/FRANMDCP07, BIOS 03.05 03/29/2024
[    2.778385] RIP: 0010:dsc2_disable+0x114/0x190 [amdgpu]
[    2.778642] Code: 00 48 85 c0 74 06 48 8b 70 08 eb 02 31 f6 44 8b 43 10 44 8b 4c 24 04 ba 08 00 00 00 48 c7 c1 3f a3 04 c1 31 ff e8 7c db cc ec <0f> 0b 48 8b 43 18 4c 8b 53 20 48 8b 7b 08 ba 01 00 00 00 45 31 c9
[    2.778645] RSP: 0018:ffffb7aec0ac74b8 EFLAGS: 00010246
[    2.778649] RAX: 04ff6612fbe6c300 RBX: ffff9bec11993a00 RCX: ffffffffc104a33f
[    2.778651] RDX: 0000000000000008 RSI: ffff9bec01d920c8 RDI: 0000000000000000
[    2.778653] RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
[    2.778655] R10: ffffb7aec0ac74bc R11: ffffffffc07edfe0 R12: ffff9bec18830000
[    2.778656] R13: ffff9bec18830000 R14: ffff9bec1e0402d8 R15: ffff9bec132a6660
[    2.778658] FS:  00007f434c90f440(0000) GS:ffff9bfa61d00000(0000) knlGS:0000000000000000
[    2.778661] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[    2.778663] CR2: 00007f4348e68000 CR3: 0000000103b46000 CR4: 0000000000f50ef0
[    2.778666] PKRU: 55555554
[    2.778667] Call Trace:
[    2.778672]  
[    2.778677]  ? __warn+0xd0/0x1c0
[    2.778683]  ? dsc2_disable+0x114/0x190 [amdgpu b7e0d82352bcd306f596b77ca9fd98742f970f7a]
[    2.778898]  ? report_bug+0x141/0x1e0
[    2.778905]  ? handle_bug+0x42/0x70
[    2.778908]  ? exc_invalid_op+0x1a/0x50
[    2.778911]  ? asm_exc_invalid_op+0x1a/0x20
[    2.778916]  ? __pfx_amdgpu_cgs_read_register+0x10/0x10 [amdgpu b7e0d82352bcd306f596b77ca9fd98742f970f7a]
[    2.779123]  ? dsc2_disable+0x114/0x190 [amdgpu b7e0d82352bcd306f596b77ca9fd98742f970f7a]
[    2.779330]  ? dsc2_disable+0x114/0x190 [amdgpu b7e0d82352bcd306f596b77ca9fd98742f970f7a]
[    2.779565]  link_set_dsc_on_stream+0x3f4/0x660 [amdgpu b7e0d82352bcd306f596b77ca9fd98742f970f7a]
[    2.779715]  ? srso_alias_return_thunk+0x5/0xfbef5
[    2.779717]  ? drm_dp_dpcd_write+0xc3/0xe0 [drm_display_helper f81fd68a4706c0111b81b5036914a16504dfac30]
[    2.779728]  ? srso_alias_return_thunk+0x5/0xfbef5
[    2.779729]  ? dm_helpers_dp_write_dsc_enable+0x373/0x3f0 [amdgpu b7e0d82352bcd306f596b77ca9fd98742f970f7a]
[    2.779838]  link_set_dpms_off+0x83b/0x910 [amdgpu b7e0d82352bcd306f596b77ca9fd98742f970f7a]
[    2.779949]  ? srso_alias_return_thunk+0x5/0xfbef5
[    2.779950]  ? dmub_srv_get_fw_boot_status+0x2f/0x50 [amdgpu b7e0d82352bcd306f596b77ca9fd98742f970f7a]
[    2.780070]  ? srso_alias_return_thunk+0x5/0xfbef5
[    2.780071]  ? srso_alias_return_thunk+0x5/0xfbef5
[    2.780073]  ? dm_read_reg_func+0x61/0xd0 [amdgpu b7e0d82352bcd306f596b77ca9fd98742f970f7a]
[    2.780183]  ? srso_alias_return_thunk+0x5/0xfbef5
[    2.780185]  dc_commit_state_no_check+0x34a/0x1c80 [amdgpu b7e0d82352bcd306f596b77ca9fd98742f970f7a]
[    2.780301]  dc_commit_streams+0x4dc/0x6d0 [amdgpu b7e0d82352bcd306f596b77ca9fd98742f970f7a]
[    2.780415]  amdgpu_dm_atomic_commit_tail+0x6ad/0x3b20 [amdgpu b7e0d82352bcd306f596b77ca9fd98742f970f7a]
[    2.780531]  ? __kmalloc_noprof+0x17e/0x3a0
[    2.780535]  ? srso_alias_return_thunk+0x5/0xfbef5
[    2.780536]  ? dcn314_validate_bandwidth+0x341/0x3c0 [amdgpu b7e0d82352bcd306f596b77ca9fd98742f970f7a]
[    2.780649]  ? srso_alias_return_thunk+0x5/0xfbef5
[    2.780651]  ? dma_resv_get_fences+0xce/0x4e0
[    2.780654]  ? srso_alias_return_thunk+0x5/0xfbef5
[    2.780656]  ? ttm_resource_compatible+0xc5/0xf0 [ttm 05b608daed87c74ff35ac56005172bf872a16247]
[    2.780664]  ? srso_alias_return_thunk+0x5/0xfbef5
[    2.780665]  ? wait_for_common+0x188/0x1c0
[    2.780669]  ? srso_alias_return_thunk+0x5/0xfbef5
[    2.780671]  ? srso_alias_return_thunk+0x5/0xfbef5
[    2.780672]  ? drm_crtc_commit_wait+0x36/0x90
[    2.780676]  commit_tail+0x22f/0x2c0
[    2.780679]  drm_atomic_helper_commit+0x262/0x270
[    2.780681]  drm_atomic_commit+0xaf/0xe0
[    2.780683]  ? __pfx___drm_printfn_info+0x10/0x10
[    2.780686]  drm_atomic_helper_set_config+0x54/0xa0
[    2.780688]  drm_mode_setcrtc+0x352/0x8a0
[    2.780695]  ? __pfx_drm_mode_setcrtc+0x10/0x10
[    2.780696]  drm_ioctl_kernel+0xbf/0x100
[    2.780700]  drm_ioctl+0x34d/0x4d0
[    2.780701]  ? __pfx_drm_mode_setcrtc+0x10/0x10
[    2.780705]  amdgpu_drm_ioctl+0x45/0x80 [amdgpu b7e0d82352bcd306f596b77ca9fd98742f970f7a]
[    2.780811]  __x64_sys_ioctl+0x73/0xc0
[    2.780814]  do_syscall_64+0x8e/0x170
[    2.780817]  ? srso_alias_return_thunk+0x5/0xfbef5
[    2.780818]  ? do_user_addr_fault+0x41f/0x730
[    2.780822]  ? srso_alias_return_thunk+0x5/0xfbef5
[    2.780823]  ? srso_alias_return_thunk+0x5/0xfbef5
[    2.780825]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[    2.780827] RIP: 0033:0x7f434cbed30f
[    2.780844] Code: 00 48 89 44 24 18 31 c0 c7 04 24 10 00 00 00 48 8d 44 24 60 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 18 48 8b 44 24 18 64 48 2b 04 25 28 00 00
[    2.780845] RSP: 002b:00007fffdf2a8760 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
[    2.780847] RAX: ffffffffffffffda RBX: 00007f434c90f3c8 RCX: 00007f434cbed30f
[    2.780848] RDX: 00007fffdf2a87f0 RSI: 00000000c06864a2 RDI: 000000000000000f
[    2.780849] RBP: 00007fffdf2a87f0 R08: 0000000000000000 R09: 00005fd5453aaa70
[    2.780850] R10: 0000000000000000 R11: 0000000000000246 R12: 00000000c06864a2
[    2.780851] R13: 000000000000000f R14: 00005fd5453632e0 R15: 00005fd5453632a0
[    2.780854]  
[    2.780854] ---[ end trace 0000000000000000 ]---

Distro: CachyOS (Arch + special sauce, I can try with a vanilla Arch kernel if that would help).
Kernel: 6.10.5-2-cachyos-lto

Kernel Commandline:

tsc=nowatchdog
transparent_hugepage=always
zswap.enabled=0
preempt=full
rcu_nocbs=all
rcutree.enable_rcu_lazy=1
psi=0
nowatchdog
lockdown=integrity
amd_iommu=on
module.sig_enforce=1
debugfs=on
iommu=pt
quiet
splash
video=efifb:nobgrt
loglevel=3
rd.systemd.show_status=0
systemd.show_status=0
rd.udev.log-priority=3
vt.global_cursor_default=0

Interestingly, ABM gets disabled whenever I restart/reconfigure picom (although I don’t see any log messages from the kernel when that happens). Running xset dpms force off seems to fix it this time as well.

Ok, I can’t seem to reproduce this one.

I’ve solved part of it: The screen glitches were caused by sending DDC commands before the screen was ready (GitHub - Stebalien/backlight-sync: Sync laptop and monitor backlights).

I’m still seeing the dsc2_disable warning, but that appears to be unrelated to the screen glitches.

1 Like

The kernel warning was fixed by Linux 6.11.