Commit 81d104f4 authored by Lijo Lazar's avatar Lijo Lazar Committed by Alex Deucher
Browse files

drm/amdgpu: Don't halt RLC on GFX suspend



On aldebaran, RLC also controls GFXCLK. Skip halting RLC during GFX IP suspend
and keep it running till PMFW disables all DPMs.

    [  578.019986] amdgpu 0000:23:00.0: amdgpu: GPU reset begin!
    [  583.245566] amdgpu 0000:23:00.0: amdgpu: Failed to disable smu features.
    [  583.245621] amdgpu 0000:23:00.0: amdgpu: Fail to disable dpm features!
    [  583.245639] [drm:amdgpu_device_ip_suspend_phase2 [amdgpu]] *ERROR* suspend of IP block <smu> failed -62
    [  583.248504] [drm] free PSP TMR buffer

Signed-off-by: default avatarLijo Lazar <lijo.lazar@amd.com>
Reviewed-by: default avatarHawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent fe9c5c9a
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -4060,9 +4060,10 @@ static int gfx_v9_0_hw_fini(void *handle)

	gfx_v9_0_cp_enable(adev, false);

	/* Skip suspend with A+A reset */
	if (adev->gmc.xgmi.connected_to_cpu && amdgpu_in_reset(adev)) {
		dev_dbg(adev->dev, "Device in reset. Skipping RLC halt\n");
	/* Skip stopping RLC with A+A reset or when RLC controls GFX clock */
	if ((adev->gmc.xgmi.connected_to_cpu && amdgpu_in_reset(adev)) ||
	    (adev->ip_versions[GC_HWIP][0] >= IP_VERSION(9, 4, 2))) {
		dev_dbg(adev->dev, "Skipping RLC halt\n");
		return 0;
	}

+1 −1
Original line number Diff line number Diff line
@@ -1474,7 +1474,7 @@ static int smu_disable_dpms(struct smu_context *smu)
			dev_err(adev->dev, "Failed to disable smu features.\n");
	}

	if (adev->ip_versions[GC_HWIP][0] >= IP_VERSION(10, 0, 0) &&
	if (adev->ip_versions[GC_HWIP][0] >= IP_VERSION(9, 4, 2) &&
	    adev->gfx.rlc.funcs->stop)
		adev->gfx.rlc.funcs->stop(adev);