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: Modify the count method of defer error

The number of newly added de counts and the number of
newly added error addresses remain consistent

Signed-off-by: Ce Sun <cesun102@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Ce Sun and committed by
Alex Deucher
533aa8bd 085c997d

+9 -2
+1
drivers/gpu/drm/amd/amdgpu/amdgpu_umc.c
··· 529 529 pfns[i] = err_data.err_addr[i].retired_page; 530 530 } 531 531 ret = i; 532 + adev->umc.err_addr_cnt = err_data.err_addr_cnt; 532 533 533 534 out: 534 535 kfree(err_data.err_addr);
+2
drivers/gpu/drm/amd/amdgpu/amdgpu_umc.h
··· 145 145 unsigned long active_mask; 146 146 147 147 struct amdgpu_umc_flip_bits flip_bits; 148 + 149 + unsigned long err_addr_cnt; 148 150 }; 149 151 150 152 int amdgpu_umc_ras_sw_init(struct amdgpu_device *adev);
+6 -2
drivers/gpu/drm/amd/amdgpu/umc_v12_0.c
··· 482 482 bank->regs[ACA_REG_IDX_ADDR]); 483 483 484 484 ext_error_code = ACA_REG__STATUS__ERRORCODEEXT(status); 485 - count = ext_error_code == 0 ? 486 - ACA_REG__MISC0__ERRCNT(bank->regs[ACA_REG_IDX_MISC0]) : 1ULL; 485 + if (umc_v12_0_is_deferred_error(adev, status)) 486 + count = ext_error_code == 0 ? 487 + adev->umc.err_addr_cnt / adev->umc.retire_unit : 1ULL; 488 + else 489 + count = ext_error_code == 0 ? 490 + ACA_REG__MISC0__ERRCNT(bank->regs[ACA_REG_IDX_MISC0]) : 1ULL; 487 491 488 492 return aca_error_cache_log_bank_error(handle, &info, err_type, count); 489 493 }