]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amdgpu: fix bad address translation for sienna_cichlid
authorStanley.Yang <Stanley.Yang@amd.com>
Wed, 16 Jun 2021 13:14:01 +0000 (21:14 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 18 Jun 2021 21:11:40 +0000 (17:11 -0400)
Signed-off-by: Stanley.Yang <Stanley.Yang@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_umc.h
drivers/gpu/drm/amd/amdgpu/umc_v8_7.c

index bbcccf53080dd83c20ac8db513642403671e834b..e5a75fb788ddb5105e485dc2fbfb88fd7050042b 100644 (file)
 #ifndef __AMDGPU_UMC_H__
 #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
index 89d20adfa001a1ad3007ca3f6e3932c0cbbfe33b..af59a35788e3eefe68d6b98137fe541f0cbf4b2d 100644 (file)
@@ -234,7 +234,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);