Problem with display after standby on early AMD Radeon HD GPUs
I want to report here an issue with the standby mode of older AMD Radeon GPUs under Kubuntu 18.04 LTS. The affected systems are all older Apple Aluminum iMac computers equipped with a Radeon HD 2400 XT or Radeon HD 2600 GPU.
After wake-up from standby mode, the (internal) screen output looks massively corrupted. However, in contrast to similar NVIDIA GPU related problems, the system is still accessible. So it is possible to restart and reboot. After that, the display output looks again normal. Please check the attached pictures for more information. My workaround is to disable the standby mode.
Tested Mesa builds were 19.0.8, 19.2.1 and some devel versions of Mesa 20.
I can confirm this behavior for five different computers. The underlying hardware is always very similar. The affected iMac systems are all native "Apple" (64bit) EFI based. Kubuntu 18.04 LTS is running like Mac OS X 10.11 in native EFI mode. This prevents the OS from certain limitations like non-AHCI, limited RAM, and other drawbacks.
Most other aspects like 3D acceleration and the system stability are near perfect. Well, VDPAU seem to be somewhat buggy in newer Mesa releases but that's a different story...
Finally here follows some dmesg radeon related information. The "Invalid PCI ROM header signature" message seems "normal" for that type of Apple iMac system.
[ 2.733840] [drm] radeon kernel modesetting enabled. [ 2.733931] radeon 0000:01:00.0: remove_conflicting_pci_framebuffers: bar 0: 0xc0000000 -> 0xcfffffff [ 2.733933] radeon 0000:01:00.0: remove_conflicting_pci_framebuffers: bar 2: 0xd0720000 -> 0xd072ffff [ 2.733935] checking generic (c0010000 6f0000) vs hw (c0000000 10000000) [ 2.733936] fb0: switching to radeondrmfb from EFI VGA [ 2.668162] radeon 0000:01:00.0: vgaarb: deactivate vga console [ 2.668477] [drm] initializing kernel modesetting (RV630 0x1002:0x9583 0x106B:0x0083 0x00). [ 2.668534] radeon 0000:01:00.0: Invalid PCI ROM header signature: expecting 0xaa55, got 0xd52a [ 2.736511] firewire_ohci 0000:03:00.0: added OHCI v1.10 device as card 0, 8 IR + 8 IT contexts, quirks 0x10, physUB [ 2.747894] sky2 0000:05:00.0 ens5: renamed from eth0 [ 2.796422] random: fast init done [ 2.809227] ATOM BIOS: M76XT [ 2.809262] radeon 0000:01:00.0: VRAM: 256M 0x0000000000000000 - 0x000000000FFFFFFF (256M used) [ 2.809264] radeon 0000:01:00.0: GTT: 512M 0x0000000010000000 - 0x000000002FFFFFFF [ 2.809272] [drm] Detected VRAM RAM=256M, BAR=256M [ 2.809273] [drm] RAM width 128bits DDR [ 2.809362] [TTM] Zone kernel: Available graphics memory: 2013554 KiB [ 2.809363] [TTM] Initializing pool allocator [ 2.809369] [TTM] Initializing DMA pool allocator [ 2.809391] [drm] radeon: 256M of VRAM memory ready [ 2.809392] [drm] radeon: 512M of GTT memory ready. [ 2.809408] [drm] Loading RV630 Microcode [ 2.809487] [drm] Internal thermal controller without fan control [ 2.809529] [drm] radeon: power management initialized [ 2.809566] random: systemd-udevd: uninitialized urandom read (16 bytes read) [ 2.809584] random: systemd-udevd: uninitialized urandom read (16 bytes read) [ 2.809589] random: systemd-udevd: uninitialized urandom read (16 bytes read) [ 2.809621] [drm] GART: num cpu pages 131072, num gpu pages 131072 [ 2.827553] [drm] PCIE GART of 512M enabled (table at 0x0000000000142000). [ 2.827742] radeon 0000:01:00.0: WB enabled [ 2.827746] radeon 0000:01:00.0: fence driver on ring 0 use gpu addr 0x0000000010000c00 and cpu addr 0x(____ptrval____) [ 2.828187] radeon 0000:01:00.0: fence driver on ring 5 use gpu addr 0x00000000000521d0 and cpu addr 0x(____ptrval____) [ 2.828189] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013). [ 2.828190] [drm] Driver supports precise vblank timestamp query. [ 2.828192] radeon 0000:01:00.0: radeon: MSI limited to 32-bit [ 2.828241] radeon 0000:01:00.0: radeon: using MSI. [ 2.828266] [drm] radeon: irq initialized.