drm/amdgpu: query vram type from atomfirmware vram_info
authorHawking Zhang <Hawking.Zhang@amd.com>
Mon, 10 Dec 2018 21:20:12 +0000 (05:20 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 21 Jun 2019 02:16:38 +0000 (21:16 -0500)
vram_type is saved in member vram_module[0].memory_type

Signed-off-by: Hawking Zhang <Hawking.Zhang@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Jack Xiao <Jack.Xiao@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c

index f96d75c6e0996b2ff102d6ee0bd93bcd9517fb5b..410118df16ed520dd43e0abf02ec6f40c2976a1f 100644 (file)
@@ -118,6 +118,7 @@ union umc_info {
 
 union vram_info {
        struct atom_vram_info_header_v2_3 v23;
+       struct atom_vram_info_header_v2_4 v24;
 };
 /*
  * Return vram width from integrated system info table, if available,
@@ -179,6 +180,9 @@ static int convert_atom_mem_type_to_vram_type (struct amdgpu_device *adev,
                case ATOM_DGPU_VRAM_TYPE_HBM2:
                        vram_type = AMDGPU_VRAM_TYPE_HBM;
                        break;
+               case ATOM_DGPU_VRAM_TYPE_GDDR6:
+                       vram_type = AMDGPU_VRAM_TYPE_GDDR6;
+                       break;
                default:
                        vram_type = AMDGPU_VRAM_TYPE_UNKNOWN;
                        break;
@@ -227,6 +231,9 @@ int amdgpu_atomfirmware_get_vram_type(struct amdgpu_device *adev)
                        case 3:
                                mem_type = vram_info->v23.vram_module[0].memory_type;
                                return convert_atom_mem_type_to_vram_type(adev, mem_type);
+                       case 4:
+                               mem_type = vram_info->v24.vram_module[0].memory_type;
+                               return convert_atom_mem_type_to_vram_type(adev, mem_type);
                        default:
                                return 0;
                        }