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: Le Ma <le.ma@amd.com> Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
		
							parent
							
								
									fcb1fe9c9e
								
							
						
					
					
						commit
						feffbaac36
					
				| @ -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)) | ||||
| 				baco_reset = false; | ||||
| 		} | ||||
| 		/*
 | ||||
| 		 * 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; | ||||
| 	} | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user