
Timur Kristóf of Valve’s open-source Linux graphics driver team has been doing a fantastic job enhancing the older AMD Radeon GPU support under Linux. Last year he made enough improvements to the AMDGPU open-source driver that older Radeon GCN 1.0/1.1 dGPUs switched over to AMDGPU by default for nice performance gains, RADV Vulkan driver support out of the box, and all around better experience than using the legacy Radeon driver. He’s also been fixing countless bugs affecting older AMD GPUs. There is another improvement on the way for benefiting some with aging AMD GPUs.
Since June 2024 there has been a bug report over AMDGPU issues when trying to use a Radeon R9 M380 graphics processor within an iMac under Linux. Loading the AMDGPU driver with the Radeon GPU in this aging Intel-powered iMac would resort in issues at boot and kernel errors around the AtomBIOS and various errors, for example:
amdgpu 0000:01:00.0: amdgpu: failed to send message 10a ret is 0
[drm:uvd_v4_2_start [amdgpu]] *ERROR* UVD not responding, giving up!!!
[drm:amdgpu_device_init [amdgpu]] *ERROR* hw_init of IP blockfailed -110
This issue was also reported by another user more recently and it was also noted that if using the legacy Radeon kernel driver it would work out fine.
There was an uptick in activity over the past week and then Timur was able to get his hands on such an old iMac with Radeon early GCN graphics. After more than one and a half years of this bug report being open, Timur was able to make progress on it over the past week and reported on tracking down the issue. He discovered that he was able to make the GPU work when disabling the memory clock dynamic power management functionality. He also noticed that with the AMDGPU DC display code this was occurring but not if disabling DC usage. Ultimately the bug was tracked down to the AMDGPU driver not implementing the voltage dependency on the display clock and that the default voltage for this hardware wasn’t high enough to properly drive the display controller.
Timur has this Git branch with his initial fixes for this problem and will be working to get them reviewed on the mailing list and hopefully upstreamed not too long thereafter. The patches disable the memory clock dynamic power management (MCLK DPM) on problematic Sea Islands GPUs and to force using the highest memory clock when DPM is disabled. Plus some other patches too.
So with that it’s looking like decade old Apple iMacs with GCN ~1.1 era GPUs may begin playing nicely on Linux with the AMDGPU driver.
