drm/amdgpu/atomfirmware: update vram info handling for renoir

Add support for integrated_system_info table v12.  Use the actual
v12 structure.

Acked-by: Evan Quan <evan.quan@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Alex Deucher 2020-06-25 17:51:59 -04:00
parent 2fde24e4dc
commit 836dab8519
1 changed files with 10 additions and 1 deletions

View File

@ -111,6 +111,7 @@ int amdgpu_atomfirmware_allocate_fb_scratch(struct amdgpu_device *adev)
union igp_info { union igp_info {
struct atom_integrated_system_info_v1_11 v11; struct atom_integrated_system_info_v1_11 v11;
struct atom_integrated_system_info_v1_12 v12;
}; };
union umc_info { union umc_info {
@ -206,7 +207,6 @@ amdgpu_atomfirmware_get_vram_info(struct amdgpu_device *adev,
(mode_info->atom_context->bios + data_offset); (mode_info->atom_context->bios + data_offset);
switch (crev) { switch (crev) {
case 11: case 11:
case 12:
mem_channel_number = igp_info->v11.umachannelnumber; mem_channel_number = igp_info->v11.umachannelnumber;
/* channel width is 64 */ /* channel width is 64 */
if (vram_width) if (vram_width)
@ -215,6 +215,15 @@ amdgpu_atomfirmware_get_vram_info(struct amdgpu_device *adev,
if (vram_type) if (vram_type)
*vram_type = convert_atom_mem_type_to_vram_type(adev, mem_type); *vram_type = convert_atom_mem_type_to_vram_type(adev, mem_type);
break; break;
case 12:
mem_channel_number = igp_info->v12.umachannelnumber;
/* channel width is 64 */
if (vram_width)
*vram_width = mem_channel_number * 64;
mem_type = igp_info->v12.memorytype;
if (vram_type)
*vram_type = convert_atom_mem_type_to_vram_type(adev, mem_type);
break;
default: default:
return -EINVAL; return -EINVAL;
} }