[PATCH] drm/amd/amdgpu: introduce gc_*_mes_2.bin

Alex Deucher alexdeucher at gmail.com
Wed Mar 29 13:15:13 UTC 2023


On Wed, Mar 29, 2023 at 6:11 AM Jack Xiao <Jack.Xiao at amd.com> wrote:
>
> To avoid new mes fw running with old driver, rename
> mes schq fw to gc_*_mes_2.bin.
>
> Signed-off-by: Jack Xiao <Jack.Xiao at amd.com>

Please add the necessary MODULE_FIRMWARE() declaration as well.  With
that, the patch is:
Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c | 26 +++++++++++++++++++++----
>  1 file changed, 22 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c
> index 0e55823ef6ca..f0f00466b59f 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c
> @@ -1434,13 +1434,31 @@ int amdgpu_mes_init_microcode(struct amdgpu_device *adev, int pipe)
>         struct amdgpu_firmware_info *info;
>         char ucode_prefix[30];
>         char fw_name[40];
> +       bool need_retry = false;
>         int r;
>
> -       amdgpu_ucode_ip_version_decode(adev, GC_HWIP, ucode_prefix, sizeof(ucode_prefix));
> -       snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_mes%s.bin",
> -               ucode_prefix,
> -               pipe == AMDGPU_MES_SCHED_PIPE ? "" : "1");
> +       amdgpu_ucode_ip_version_decode(adev, GC_HWIP, ucode_prefix,
> +                                      sizeof(ucode_prefix));
> +       if (adev->ip_versions[GC_HWIP][0] >= IP_VERSION(11, 0, 0)) {
> +               snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_mes%s.bin",
> +                        ucode_prefix,
> +                        pipe == AMDGPU_MES_SCHED_PIPE ? "_2" : "1");
> +               need_retry = true;
> +       } else {
> +               snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_mes%s.bin",
> +                        ucode_prefix,
> +                        pipe == AMDGPU_MES_SCHED_PIPE ? "" : "1");
> +       }
> +
>         r = amdgpu_ucode_request(adev, &adev->mes.fw[pipe], fw_name);
> +       if (r && need_retry && pipe == AMDGPU_MES_SCHED_PIPE) {
> +               snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_mes.bin",
> +                        ucode_prefix);
> +               DRM_INFO("try to fall back to %s\n", fw_name);
> +               r = amdgpu_ucode_request(adev, &adev->mes.fw[pipe],
> +                                        fw_name);
> +       }
> +
>         if (r)
>                 goto out;
>
> --
> 2.37.3
>


More information about the amd-gfx mailing list