drm/amdgpu: fix incorrect MALL size for GFX1151
authorTim Huang <tim.huang@amd.com>
Thu, 8 May 2025 05:37:35 +0000 (13:37 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 13 May 2025 18:16:43 +0000 (14:16 -0400)
On GFX1151, the reported MALL cache size reflects only
half of its actual size; this adjustment corrects the discrepancy.

Signed-off-by: Tim Huang <tim.huang@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Yifan Zhang <yifan1.zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 0a5c060b593ad152318f89e5564bfdfcff8a6ac0)
Cc: stable@vger.kernel.org
drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c

index e74e26b6a4f23c053261374dbc6fdb30f0b62720..fec9a007533acc063665843a9a8322b9d68b14ac 100644 (file)
@@ -752,6 +752,18 @@ static int gmc_v11_0_sw_init(struct amdgpu_ip_block *ip_block)
        adev->gmc.vram_type = vram_type;
        adev->gmc.vram_vendor = vram_vendor;
 
+       /* The mall_size is already calculated as mall_size_per_umc * num_umc.
+        * However, for gfx1151, which features a 2-to-1 UMC mapping,
+        * the result must be multiplied by 2 to determine the actual mall size.
+        */
+       switch (amdgpu_ip_version(adev, GC_HWIP, 0)) {
+       case IP_VERSION(11, 5, 1):
+               adev->gmc.mall_size *= 2;
+               break;
+       default:
+               break;
+       }
+
        switch (amdgpu_ip_version(adev, GC_HWIP, 0)) {
        case IP_VERSION(11, 0, 0):
        case IP_VERSION(11, 0, 1):