Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/amdgpu: Avoid reset in AMDGPU unload path for APUs with GFX V11 and higher.

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>
(cherry picked from commit d0a8cadffc818f51d05bc234d8da1af228bc59a3)
Cc: stable@vger.kernel.org

authored by

Shubhankar Milind Sardeshpande and committed by
Alex Deucher
47776ac1 b56922fc

+5 -1
+5 -1
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
··· 2839 2839 * that checks whether the PSP is running. A solution for those issues 2840 2840 * in the APU is to trigger a GPU reset, but this should be done during 2841 2841 * the unload phase to avoid adding boot latency and screen flicker. 2842 + * GFX V11 has GC block as default off IP. Every time AMDGPU driver sends 2843 + * a request to PMFW to unload MP1, PMFW will put GC in reset and power down 2844 + * the voltage. Hence, skipping reset for APUs with GFX V11 or later. 2842 2845 */ 2843 - if ((adev->flags & AMD_IS_APU) && !adev->gmc.is_app_apu) { 2846 + if ((adev->flags & AMD_IS_APU) && !adev->gmc.is_app_apu && 2847 + amdgpu_ip_version(adev, GC_HWIP, 0) < IP_VERSION(11, 0, 0)) { 2844 2848 r = amdgpu_asic_reset(adev); 2845 2849 if (r) 2846 2850 dev_err(adev->dev, "asic reset on %s failed\n", __func__);