[PATCH] drm/amdgpu: get gpu info from ip discovery table
Alex Deucher
alexdeucher at gmail.com
Fri Sep 13 18:41:23 UTC 2019
On Wed, Sep 11, 2019 at 5:56 AM Yuan, Xiaojie <Xiaojie.Yuan at amd.com> wrote:
>
> except soc_bounding_box which is not integrated in discovery table yet
>
> Signed-off-by: Xiaojie Yuan <xiaojie.yuan at amd.com>
Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index 13bd6a6bd8aa..70e0f24d37a8 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -1474,6 +1474,9 @@ static int amdgpu_device_parse_gpu_info_fw(struct amdgpu_device *adev)
> (const struct gpu_info_firmware_v1_0 *)(adev->firmware.gpu_info_fw->data +
> le32_to_cpu(hdr->header.ucode_array_offset_bytes));
>
> + if (amdgpu_discovery && adev->asic_type >= CHIP_NAVI10)
> + goto parse_soc_bounding_box;
> +
> adev->gfx.config.max_shader_engines = le32_to_cpu(gpu_info_fw->gc_num_se);
> adev->gfx.config.max_cu_per_sh = le32_to_cpu(gpu_info_fw->gc_num_cu_per_sh);
> adev->gfx.config.max_sh_per_se = le32_to_cpu(gpu_info_fw->gc_num_sh_per_se);
> @@ -1501,7 +1504,13 @@ static int amdgpu_device_parse_gpu_info_fw(struct amdgpu_device *adev)
> adev->gfx.config.num_packer_per_sc =
> le32_to_cpu(gpu_info_fw->num_packer_per_sc);
> }
> +
> +parse_soc_bounding_box:
> #ifdef CONFIG_DRM_AMD_DC_DCN2_0
> + /*
> + * soc bounding box info is not integrated in disocovery table,
> + * we always need to parse it from gpu info firmware.
> + */
> if (hdr->version_minor == 2) {
> const struct gpu_info_firmware_v1_2 *gpu_info_fw =
> (const struct gpu_info_firmware_v1_2 *)(adev->firmware.gpu_info_fw->data +
> @@ -1618,6 +1627,9 @@ static int amdgpu_device_ip_early_init(struct amdgpu_device *adev)
> if (r)
> return r;
>
> + if (amdgpu_discovery && adev->asic_type >= CHIP_NAVI10)
> + amdgpu_discovery_get_gfx_info(adev);
> +
> amdgpu_amdkfd_device_probe(adev);
>
> if (amdgpu_sriov_vf(adev)) {
> --
> 2.20.1
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
More information about the amd-gfx
mailing list