[PATCH 1/2] drm/amdgpu: add support for request SI/CI firmware in CGS

Alex Deucher alexdeucher at gmail.com
Mon Sep 11 14:21:04 UTC 2017


On Fri, Sep 8, 2017 at 2:40 AM, Rex Zhu <Rex.Zhu at amd.com> wrote:
> Change-Id: If3ab520f8c65bec070e97cd8787041919d687ad3
> Signed-off-by: Rex Zhu <Rex.Zhu at amd.com>

Series is:
Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 79 +++++++++++++++++++++++++++++++++
>  1 file changed, 79 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
> index d450a96..5e83f9a 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
> @@ -675,6 +675,85 @@ static int amdgpu_cgs_get_firmware_info(struct cgs_device *cgs_device,
>
>                 if (!adev->pm.fw) {
>                         switch (adev->asic_type) {
> +                       case CHIP_TAHITI:
> +                               strcpy(fw_name, "radeon/tahiti_smc.bin");
> +                               break;
> +                       case CHIP_PITCAIRN:
> +                               if ((adev->pdev->revision == 0x81) &&
> +                                   ((adev->pdev->device == 0x6810) ||
> +                                   (adev->pdev->device == 0x6811))) {
> +                                       info->is_kicker = true;
> +                                       strcpy(fw_name, "radeon/pitcairn_k_smc.bin");
> +                               } else {
> +                                       strcpy(fw_name, "radeon/pitcairn_smc.bin");
> +                               }
> +                               break;
> +                       case CHIP_VERDE:
> +                               if (((adev->pdev->device == 0x6820) &&
> +                                       ((adev->pdev->revision == 0x81) ||
> +                                       (adev->pdev->revision == 0x83))) ||
> +                                   ((adev->pdev->device == 0x6821) &&
> +                                       ((adev->pdev->revision == 0x83) ||
> +                                       (adev->pdev->revision == 0x87))) ||
> +                                   ((adev->pdev->revision == 0x87) &&
> +                                       ((adev->pdev->device == 0x6823) ||
> +                                       (adev->pdev->device == 0x682b)))) {
> +                                       info->is_kicker = true;
> +                                       strcpy(fw_name, "radeon/verde_k_smc.bin");
> +                               } else {
> +                                       strcpy(fw_name, "radeon/verde_smc.bin");
> +                               }
> +                               break;
> +                       case CHIP_OLAND:
> +                               if (((adev->pdev->revision == 0x81) &&
> +                                       ((adev->pdev->device == 0x6600) ||
> +                                       (adev->pdev->device == 0x6604) ||
> +                                       (adev->pdev->device == 0x6605) ||
> +                                       (adev->pdev->device == 0x6610))) ||
> +                                   ((adev->pdev->revision == 0x83) &&
> +                                       (adev->pdev->device == 0x6610))) {
> +                                       info->is_kicker = true;
> +                                       strcpy(fw_name, "radeon/oland_k_smc.bin");
> +                               } else {
> +                                       strcpy(fw_name, "radeon/oland_smc.bin");
> +                               }
> +                               break;
> +                       case CHIP_HAINAN:
> +                               if (((adev->pdev->revision == 0x81) &&
> +                                       (adev->pdev->device == 0x6660)) ||
> +                                   ((adev->pdev->revision == 0x83) &&
> +                                       ((adev->pdev->device == 0x6660) ||
> +                                       (adev->pdev->device == 0x6663) ||
> +                                       (adev->pdev->device == 0x6665) ||
> +                                        (adev->pdev->device == 0x6667)))) {
> +                                       info->is_kicker = true;
> +                                       strcpy(fw_name, "radeon/hainan_k_smc.bin");
> +                               } else if ((adev->pdev->revision == 0xc3) &&
> +                                        (adev->pdev->device == 0x6665)) {
> +                                       info->is_kicker = true;
> +                                       strcpy(fw_name, "radeon/banks_k_2_smc.bin");
> +                               } else {
> +                                       strcpy(fw_name, "radeon/hainan_smc.bin");
> +                               }
> +                               break;
> +                       case CHIP_BONAIRE:
> +                               if ((adev->pdev->revision == 0x80) ||
> +                                       (adev->pdev->revision == 0x81) ||
> +                                       (adev->pdev->device == 0x665f)) {
> +                                       info->is_kicker = true;
> +                                       strcpy(fw_name, "radeon/bonaire_k_smc.bin");
> +                               } else {
> +                                       strcpy(fw_name, "radeon/bonaire_smc.bin");
> +                               }
> +                               break;
> +                       case CHIP_HAWAII:
> +                               if (adev->pdev->revision == 0x80) {
> +                                       info->is_kicker = true;
> +                                       strcpy(fw_name, "radeon/hawaii_k_smc.bin");
> +                               } else {
> +                                       strcpy(fw_name, "radeon/hawaii_smc.bin");
> +                               }
> +                               break;
>                         case CHIP_TOPAZ:
>                                 if (((adev->pdev->device == 0x6900) && (adev->pdev->revision == 0x81)) ||
>                                     ((adev->pdev->device == 0x6900) && (adev->pdev->revision == 0x83)) ||
> --
> 1.9.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