diff options
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/pci/drm/amd/amdgpu/amdgpu_umc.h | 5 | ||||
-rw-r--r-- | sys/dev/pci/drm/amd/amdgpu/umc_v8_7.c | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/sys/dev/pci/drm/amd/amdgpu/amdgpu_umc.h b/sys/dev/pci/drm/amd/amdgpu/amdgpu_umc.h index 18381449365..bda4438c392 100644 --- a/sys/dev/pci/drm/amd/amdgpu/amdgpu_umc.h +++ b/sys/dev/pci/drm/amd/amdgpu/amdgpu_umc.h @@ -22,6 +22,11 @@ #define __AMDGPU_UMC_H__ /* + * (addr / 256) * 4096, the higher 26 bits in ErrorAddr + * is the index of 4KB block + */ +#define ADDR_OF_4KB_BLOCK(addr) (((addr) & ~0xffULL) << 4) +/* * (addr / 256) * 8192, the higher 26 bits in ErrorAddr * is the index of 8KB block */ diff --git a/sys/dev/pci/drm/amd/amdgpu/umc_v8_7.c b/sys/dev/pci/drm/amd/amdgpu/umc_v8_7.c index 5665c77a9d5..afbbe9f05d5 100644 --- a/sys/dev/pci/drm/amd/amdgpu/umc_v8_7.c +++ b/sys/dev/pci/drm/amd/amdgpu/umc_v8_7.c @@ -233,7 +233,7 @@ static void umc_v8_7_query_error_address(struct amdgpu_device *adev, err_addr &= ~((0x1ULL << lsb) - 1); /* translate umc channel address to soc pa, 3 parts are included */ - retired_page = ADDR_OF_8KB_BLOCK(err_addr) | + retired_page = ADDR_OF_4KB_BLOCK(err_addr) | ADDR_OF_256B_BLOCK(channel_index) | OFFSET_IN_256B_BLOCK(err_addr); |