Commit feffbaac authored by Le Ma's avatar Le Ma Committed by Alex Deucher
Browse files

drm/amdgpu: add condition to enable baco for ras recovery



Switch to baco reset method for ras recovery if the PMFW supported.
If not, keep the original reset method.

v2: revise the condition

Signed-off-by: default avatarLe Ma <le.ma@amd.com>
Reviewed-by: default avatarHawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent fcb1fe9c
Loading
Loading
Loading
Loading
+8 −10
Original line number Diff line number Diff line
@@ -557,7 +557,8 @@ static int soc15_mode2_reset(struct amdgpu_device *adev)
static enum amd_reset_method
soc15_asic_reset_method(struct amdgpu_device *adev)
{
	bool baco_reset;
	bool baco_reset = false;
	struct amdgpu_ras *ras = amdgpu_ras_get_context(adev);

	switch (adev->asic_type) {
	case CHIP_RAVEN:
@@ -571,18 +572,15 @@ soc15_asic_reset_method(struct amdgpu_device *adev)
	case CHIP_VEGA20:
		if (adev->psp.sos_fw_version >= 0x80067)
			soc15_asic_get_baco_capability(adev, &baco_reset);
		else
			baco_reset = false;
		if (baco_reset) {
			struct amdgpu_hive_info *hive = amdgpu_get_xgmi_hive(adev, 0);
			struct amdgpu_ras *ras = amdgpu_ras_get_context(adev);

			if (hive || (ras && ras->supported))
		/*
		 * 1. PMFW version > 0x284300: all cases use baco
		 * 2. PMFW version <= 0x284300: only sGPU w/o RAS use baco
		 */
		if ((ras && ras->supported) && adev->pm.fw_version <= 0x283400)
			baco_reset = false;
		}
		break;
	default:
		baco_reset = false;
		break;
	}