Tools: Ultimate Guide: 20-Year Linux Veteran Gets "Kernel Panicked"? Hardcore Fix for Random Desktop Freezes on AMD GPUs
After 20 years of hacking away in the open-source world and the Linux community, I’ve realized I might actually be a Bug Magnet. On my previous laptop, a Dell G16, the power-saving mode of the Intel AX201 Wi-Fi card caused pacman updates to crawl at snail speeds. I finally solved that by surgically disabling the power-saving logic. Last year, I switched to this ThinkPad P14s, specifically choosing the AMD integrated graphics version. I thought, "No NVIDIA proprietary drivers to mess with—surely this will be stable, right?" As it turns out, if you have a mind for "tinkering," bugs will find you with pinpoint accuracy. The Symptom: The Unavoidable "Frozen Frame"Recently, my desktop environment started freezing multiple times a day. That feeling of the entire GUI suddenly solidifying is incredibly frustrating. It even made me wonder if I had broken the system by messing with some underlying plumbing. After work, I decided to cut the Gordian knot and reinstalled EndeavourOS. The freezes persisted. But I noticed a crucial clue: While the GUI was dead, the TTY was still functional. This classic "pseudo-hang" usually means the system hasn't crashed; rather, there’s a communication breakdown between the kernel driver and the hardware. I fired up dmesg for a deep-dive log review and finally caught the culprit. [ 4.392040] amdgpu 0000:c4:00.0: amdgpu: [drm] PSR support 1, DC PSR ver 0, sink PSR ver 3 DPCD caps 0x7b su_y_granularity 4[ 4.392173] amdgpu 0000:c4:00.0: amdgpu: [drm] PSR support 0, DC PSR ver -1, sink PSR ver 0 DPCD caps 0x0 su_y_granularity 0[ 4.392327] amdgpu 0000:c4:00.0: amdgpu: [drm] PSR support 0, DC PSR ver -1, sink PSR ver 0 DPCD caps 0x0 su_y_granularity 0[ 4.392453] amdgpu 0000:c4:00.0: amdgpu: [drm] PSR support 0, DC PSR ver -1, sink PSR ver 0 DPCD caps 0x0 su_y_granularity 0[ 4.392587] amdgpu 0000:c4:00.0: amdgpu: [drm] PSR support 0, DC PSR ver -1, sink PSR ver 0 DPCD caps 0x0 su_y_granularity 0[ 4.392641] amdgpu 0000:c4:00.0: amdgpu: [drm] PSR support 0, DC PSR ver -1, sink PSR ver 0 DPCD caps 0x0 su_y_granularity 0[ 4.392703] amdgpu 0000:c4:00.0: amdgpu: [drm] PSR support 0, DC PSR ver -1, sink PSR ver 0 DPCD caps 0x0 su_y_granularity 0[ 4.392774] amdgpu 0000:c4:00.0: amdgpu: [drm] PSR support 0, DC PSR ver -1, sink PSR ver 0 DPCD caps 0x0 su_y_granularity 0[ 4.392842] amdgpu 0000:c4:00.0: amdgpu: [drm] PSR support 0, DC PSR ver -1, sink PSR ver 0 DPCD caps 0x0 su_y_granularity 0 The Root Cause: AMD Driver's PSR FeatureAfter a technical post-mortem, I discovered the freezes were caused by the Panel Self Refresh (PSR) feature of the AMD Radeon 890M. This is a known driver bug, particularly prone to triggering on the Ryzen AI 9 HX PRO 370 (Strix Point) platform + amdgpu driver + Plasma desktop combo. PSR is intended to save power by allowing the panel to refresh itself when the image is static, but in practice, it becomes a "chokehold" that causes the GPU driver to hang. The Surgical Solution: Manually Disabling PSRFor programmers and veterans, the logic for solving problems isn't "reinstalling everything"—it's precise excision. Since the power-saving logic is buggy, we manually disable the feature. 1.sudo nano /etc/kernel/cmdline , add the parameter amdgpu.dcdebugmask=0x10 to the end of the line. 2.sudo reinstall-kernels , to regenerate the kernel entries and initrd. This will automatically update all .conf files under /efi/loader/entries/, applying the new parameter to current and future kernels. 3.sudo reboot , restart the system. Verifying the Kernel Parameters: Use the command cat /proc/cmdline to check if amdgpu.dcdebugmask=0x10 is present at the end. You can also run cat /sys/module/amdgpu/parameters/dcdebugmask. If the output is 16 (the decimal equivalent of 0x10), PSR is successfully disabled. Finally, run dmesg | grep -i psr. You should no longer see any PSR-related logs in the kernel. After this bit of tinkering, the laptop is now rock-solid. I haven't encountered a single desktop freeze since. Templates let you quickly answer FAQs or store snippets for re-use. But where did you get the magic 0x10 number from? as well , this person and/or - Joined Jan 1, 2020