[PATCH] drm/amdgpu: Each PSP need to get latest topology info on XGMI configuration

Zhang, Hawking Hawking.Zhang at amd.com
Thu Nov 8 23:09:33 UTC 2018


Reviewed-by: Hawking Zhang <Hawking.Zhang at amd.com>

Regards,
Hawking

Sent from my iPhone

> On Nov 9, 2018, at 00:17, Liu, Shaoyun <Shaoyun.Liu at amd.com> wrote:
> 
> From: shaoyunl <Shaoyun.Liu at amd.com>
> 
> Driver need to call each psp instance to get topology info before set topology
> 
> Change-Id: I20d914a0c678686db3f1f99edf250f3656ec9fc1
> Signed-off-by: shaoyunl <Shaoyun.Liu at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c | 19 ++++++++++++-------
> 1 file changed, 12 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
> index 56acdea..909216a 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
> @@ -88,14 +88,19 @@ int amdgpu_xgmi_add_device(struct amdgpu_device *adev)
>    list_for_each_entry(entry, &hive->device_list, head)
>        tmp_topology->nodes[count++].node_id = entry->node_id;
> 
> -    ret = psp_xgmi_get_topology_info(&adev->psp, count, tmp_topology);
> -    if (ret) {
> -        dev_err(adev->dev,
> -            "XGMI: Get topology failure on device %llx, hive %llx, ret %d",
> -            adev->gmc.xgmi.node_id,
> -            adev->gmc.xgmi.hive_id, ret);
> -        goto exit;
> +    /* Each psp need to get the latest topology */
> +    list_for_each_entry(tmp_adev, &hive->device_list, gmc.xgmi.head) {
> +        ret = psp_xgmi_get_topology_info(&tmp_adev->psp, count, tmp_topology);
> +        if (ret) {
> +            dev_err(tmp_adev->dev,
> +                "XGMI: Get topology failure on device %llx, hive %llx, ret %d",
> +                tmp_adev->gmc.xgmi.node_id,
> +                tmp_adev->gmc.xgmi.hive_id, ret);
> +            /* To do : continue with some node failed or disable the whole hive */
> +            break;
> +        }
>    }
> +
>    /* Each psp need to set the latest topology */
>    list_for_each_entry(tmp_adev, &hive->device_list, gmc.xgmi.head) {
>        ret = psp_xgmi_set_topology_info(&tmp_adev->psp, count, tmp_topology);
> -- 
> 2.7.4
> 
> _______________________________________________
> 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