]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/amdgpu: Avoid reset in AMDGPU unload path for APUs with GFX V11 and higher.
authorShubhankar Milind Sardeshpande <Shubhankar.MilindSardeshpande@amd.com>
Tue, 21 Apr 2026 11:31:21 +0000 (17:01 +0530)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 24 Apr 2026 14:55:49 +0000 (10:55 -0400)
GFX V11 has GC block as default off IP.
Every time AMDGPU driver sends a request to PMFW
to unload MP1, PMFW will put GC in reset and
power down the voltage.Hence, skipping reset
for APUs with GFX V11 or later to avoid reset
related failures.

Fixes: 34355e61835e ("drm/amdgpu: Fix GFX hang on SteamDeck when amdgpu is reloaded")
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Shubhankar Milind Sardeshpande <Shubhankar.MilindSardeshpande@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c

index 66ccf6f03a386879d3547a122a9f37a3e394b24e..7aa604fd94902bc420196076d8a7a825f6fb51c5 100644 (file)
@@ -2839,8 +2839,12 @@ static int amdgpu_device_ip_fini_early(struct amdgpu_device *adev)
         * that checks whether the PSP is running. A solution for those issues
         * in the APU is to trigger a GPU reset, but this should be done during
         * the unload phase to avoid adding boot latency and screen flicker.
+        * GFX V11 has GC block as default off IP. Every time AMDGPU driver sends
+        * a request to PMFW to unload MP1, PMFW will put GC in reset and power down
+        * the voltage. Hence, skipping reset for APUs with GFX V11 or later.
         */
-       if ((adev->flags & AMD_IS_APU) && !adev->gmc.is_app_apu) {
+       if ((adev->flags & AMD_IS_APU) && !adev->gmc.is_app_apu &&
+               amdgpu_ip_version(adev, GC_HWIP, 0) < IP_VERSION(11, 0, 0)) {
                r = amdgpu_asic_reset(adev);
                if (r)
                        dev_err(adev->dev, "asic reset on %s failed\n", __func__);