diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c index 3b469eab31a9..9df1bcb35bf0 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c | |||
@@ -684,6 +684,36 @@ int amdgpu_atombios_get_clock_info(struct amdgpu_device *adev) | |||
684 | return ret; | 684 | return ret; |
685 | } | 685 | } |
686 | 686 | ||
687 | union gfx_info { | ||
688 | ATOM_GFX_INFO_V2_1 info; | ||
689 | }; | ||
690 | |||
691 | int amdgpu_atombios_get_gfx_info(struct amdgpu_device *adev) | ||
692 | { | ||
693 | struct amdgpu_mode_info *mode_info = &adev->mode_info; | ||
694 | int index = GetIndexIntoMasterTable(DATA, GFX_Info); | ||
695 | uint8_t frev, crev; | ||
696 | uint16_t data_offset; | ||
697 | int ret = -EINVAL; | ||
698 | |||
699 | if (amdgpu_atom_parse_data_header(mode_info->atom_context, index, NULL, | ||
700 | &frev, &crev, &data_offset)) { | ||
701 | union gfx_info *gfx_info = (union gfx_info *) | ||
702 | (mode_info->atom_context->bios + data_offset); | ||
703 | |||
704 | adev->gfx.config.max_shader_engines = gfx_info->info.max_shader_engines; | ||
705 | adev->gfx.config.max_tile_pipes = gfx_info->info.max_tile_pipes; | ||
706 | adev->gfx.config.max_cu_per_sh = gfx_info->info.max_cu_per_sh; | ||
707 | adev->gfx.config.max_sh_per_se = gfx_info->info.max_sh_per_se; | ||
708 | adev->gfx.config.max_backends_per_se = gfx_info->info.max_backends_per_se; | ||
709 | adev->gfx.config.max_texture_channel_caches = | ||
710 | gfx_info->info.max_texture_channel_caches; | ||
711 | |||
712 | ret = 0; | ||
713 | } | ||
714 | return ret; | ||
715 | } | ||
716 | |||
687 | union igp_info { | 717 | union igp_info { |
688 | struct _ATOM_INTEGRATED_SYSTEM_INFO info; | 718 | struct _ATOM_INTEGRATED_SYSTEM_INFO info; |
689 | struct _ATOM_INTEGRATED_SYSTEM_INFO_V2 info_2; | 719 | struct _ATOM_INTEGRATED_SYSTEM_INFO_V2 info_2; |