[PATCH 1/2] drm/amdgpu/gmc8: update MC firmware for polaris

Christian König ckoenig.leichtzumerken at gmail.com
Mon Dec 3 16:22:16 UTC 2018


Am 03.12.18 um 15:47 schrieb Alex Deucher:
> Some variants require different MC firmware images.
>
> Reviewed-by: Junwei Zhang <Jerry.Zhang at amd.com>
> Signed-off-by: Alex Deucher <alexander.deucher at amd.com>

Acked-by: Christian König <christian.koenig at amd.com> for the series.

> ---
>   drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 29 ++++++++++++++++++++++++-----
>   1 file changed, 24 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
> index 6d4e4c5f0481..71ace5000c51 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
> @@ -56,6 +56,8 @@ MODULE_FIRMWARE("amdgpu/tonga_mc.bin");
>   MODULE_FIRMWARE("amdgpu/polaris11_mc.bin");
>   MODULE_FIRMWARE("amdgpu/polaris10_mc.bin");
>   MODULE_FIRMWARE("amdgpu/polaris12_mc.bin");
> +MODULE_FIRMWARE("amdgpu/polaris11_k_mc.bin");
> +MODULE_FIRMWARE("amdgpu/polaris10_k_mc.bin");
>   MODULE_FIRMWARE("amdgpu/polaris12_k_mc.bin");
>   
>   static const u32 golden_settings_tonga_a11[] =
> @@ -225,22 +227,39 @@ static int gmc_v8_0_init_microcode(struct amdgpu_device *adev)
>   		chip_name = "tonga";
>   		break;
>   	case CHIP_POLARIS11:
> -		chip_name = "polaris11";
> +		if (((adev->pdev->device == 0x67ef) &&
> +		     ((adev->pdev->revision == 0xe0) ||
> +		      (adev->pdev->revision == 0xe5))) ||
> +		    ((adev->pdev->device == 0x67ff) &&
> +		     ((adev->pdev->revision == 0xcf) ||
> +		      (adev->pdev->revision == 0xef) ||
> +		      (adev->pdev->revision == 0xff))))
> +			chip_name = "polaris11_k";
> +		else if ((adev->pdev->device == 0x67ef) &&
> +			 (adev->pdev->revision == 0xe2))
> +			chip_name = "polaris11_k";
> +		else
> +			chip_name = "polaris11";
>   		break;
>   	case CHIP_POLARIS10:
> -		chip_name = "polaris10";
> +		if ((adev->pdev->device == 0x67df) &&
> +		    ((adev->pdev->revision == 0xe1) ||
> +		     (adev->pdev->revision == 0xf7)))
> +			chip_name = "polaris10_k";
> +		else
> +			chip_name = "polaris10";
>   		break;
>   	case CHIP_POLARIS12:
> -		chip_name = "polaris12";
>   		if (((adev->pdev->device == 0x6987) &&
>   		     ((adev->pdev->revision == 0xc0) ||
>   		      (adev->pdev->revision == 0xc3))) ||
>   		    ((adev->pdev->device == 0x6981) &&
>   		     ((adev->pdev->revision == 0x00) ||
>   		      (adev->pdev->revision == 0x01) ||
> -		      (adev->pdev->revision == 0x10)))) {
> +		      (adev->pdev->revision == 0x10))))
>   			chip_name = "polaris12_k";
> -		}
> +		else
> +			chip_name = "polaris12";
>   		break;
>   	case CHIP_FIJI:
>   	case CHIP_CARRIZO:



More information about the amd-gfx mailing list