diff options
author | Alex Deucher <alexander.deucher@amd.com> | 2018-10-17 12:24:26 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2018-12-07 11:15:12 -0500 |
commit | 153573d8870e1c173721bdc1ced72b3ad0d85de4 (patch) | |
tree | da8bfad1c4973160291760dee4fb3c329541e141 /drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | |
parent | e594a5e349ddbfdaca1951bb3f8d72f3f1660d73 (diff) |
drm/amdgpu: update smu firmware images for VI variants (v2)
Some new variants require updated firmware.
V2: add MODULE_FIRMWARE for new firmwares
Reviewed-by: Huang Rui <ray.huang@amd.com> (v1)
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 33 |
1 files changed, 28 insertions, 5 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c index 8816c697b205..ceadeeadfa56 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | |||
@@ -330,7 +330,9 @@ static int amdgpu_cgs_get_firmware_info(struct cgs_device *cgs_device, | |||
330 | case CHIP_TOPAZ: | 330 | case CHIP_TOPAZ: |
331 | if (((adev->pdev->device == 0x6900) && (adev->pdev->revision == 0x81)) || | 331 | if (((adev->pdev->device == 0x6900) && (adev->pdev->revision == 0x81)) || |
332 | ((adev->pdev->device == 0x6900) && (adev->pdev->revision == 0x83)) || | 332 | ((adev->pdev->device == 0x6900) && (adev->pdev->revision == 0x83)) || |
333 | ((adev->pdev->device == 0x6907) && (adev->pdev->revision == 0x87))) { | 333 | ((adev->pdev->device == 0x6907) && (adev->pdev->revision == 0x87)) || |
334 | ((adev->pdev->device == 0x6900) && (adev->pdev->revision == 0xD1)) || | ||
335 | ((adev->pdev->device == 0x6900) && (adev->pdev->revision == 0xD3))) { | ||
334 | info->is_kicker = true; | 336 | info->is_kicker = true; |
335 | strcpy(fw_name, "amdgpu/topaz_k_smc.bin"); | 337 | strcpy(fw_name, "amdgpu/topaz_k_smc.bin"); |
336 | } else | 338 | } else |
@@ -351,7 +353,6 @@ static int amdgpu_cgs_get_firmware_info(struct cgs_device *cgs_device, | |||
351 | if (type == CGS_UCODE_ID_SMU) { | 353 | if (type == CGS_UCODE_ID_SMU) { |
352 | if (((adev->pdev->device == 0x67ef) && | 354 | if (((adev->pdev->device == 0x67ef) && |
353 | ((adev->pdev->revision == 0xe0) || | 355 | ((adev->pdev->revision == 0xe0) || |
354 | (adev->pdev->revision == 0xe2) || | ||
355 | (adev->pdev->revision == 0xe5))) || | 356 | (adev->pdev->revision == 0xe5))) || |
356 | ((adev->pdev->device == 0x67ff) && | 357 | ((adev->pdev->device == 0x67ff) && |
357 | ((adev->pdev->revision == 0xcf) || | 358 | ((adev->pdev->revision == 0xcf) || |
@@ -359,8 +360,13 @@ static int amdgpu_cgs_get_firmware_info(struct cgs_device *cgs_device, | |||
359 | (adev->pdev->revision == 0xff)))) { | 360 | (adev->pdev->revision == 0xff)))) { |
360 | info->is_kicker = true; | 361 | info->is_kicker = true; |
361 | strcpy(fw_name, "amdgpu/polaris11_k_smc.bin"); | 362 | strcpy(fw_name, "amdgpu/polaris11_k_smc.bin"); |
362 | } else | 363 | } else if ((adev->pdev->device == 0x67ef) && |
364 | (adev->pdev->revision == 0xe2)) { | ||
365 | info->is_kicker = true; | ||
366 | strcpy(fw_name, "amdgpu/polaris11_k2_smc.bin"); | ||
367 | } else { | ||
363 | strcpy(fw_name, "amdgpu/polaris11_smc.bin"); | 368 | strcpy(fw_name, "amdgpu/polaris11_smc.bin"); |
369 | } | ||
364 | } else if (type == CGS_UCODE_ID_SMU_SK) { | 370 | } else if (type == CGS_UCODE_ID_SMU_SK) { |
365 | strcpy(fw_name, "amdgpu/polaris11_smc_sk.bin"); | 371 | strcpy(fw_name, "amdgpu/polaris11_smc_sk.bin"); |
366 | } | 372 | } |
@@ -378,14 +384,31 @@ static int amdgpu_cgs_get_firmware_info(struct cgs_device *cgs_device, | |||
378 | (adev->pdev->revision == 0xef))) { | 384 | (adev->pdev->revision == 0xef))) { |
379 | info->is_kicker = true; | 385 | info->is_kicker = true; |
380 | strcpy(fw_name, "amdgpu/polaris10_k_smc.bin"); | 386 | strcpy(fw_name, "amdgpu/polaris10_k_smc.bin"); |
381 | } else | 387 | } else if ((adev->pdev->device == 0x67df) && |
388 | ((adev->pdev->revision == 0xe1) || | ||
389 | (adev->pdev->revision == 0xf7))) { | ||
390 | info->is_kicker = true; | ||
391 | strcpy(fw_name, "amdgpu/polaris10_k2_smc.bin"); | ||
392 | } else { | ||
382 | strcpy(fw_name, "amdgpu/polaris10_smc.bin"); | 393 | strcpy(fw_name, "amdgpu/polaris10_smc.bin"); |
394 | } | ||
383 | } else if (type == CGS_UCODE_ID_SMU_SK) { | 395 | } else if (type == CGS_UCODE_ID_SMU_SK) { |
384 | strcpy(fw_name, "amdgpu/polaris10_smc_sk.bin"); | 396 | strcpy(fw_name, "amdgpu/polaris10_smc_sk.bin"); |
385 | } | 397 | } |
386 | break; | 398 | break; |
387 | case CHIP_POLARIS12: | 399 | case CHIP_POLARIS12: |
388 | strcpy(fw_name, "amdgpu/polaris12_smc.bin"); | 400 | if (((adev->pdev->device == 0x6987) && |
401 | ((adev->pdev->revision == 0xc0) || | ||
402 | (adev->pdev->revision == 0xc3))) || | ||
403 | ((adev->pdev->device == 0x6981) && | ||
404 | ((adev->pdev->revision == 0x00) || | ||
405 | (adev->pdev->revision == 0x01) || | ||
406 | (adev->pdev->revision == 0x10)))) { | ||
407 | info->is_kicker = true; | ||
408 | strcpy(fw_name, "amdgpu/polaris12_k_smc.bin"); | ||
409 | } else { | ||
410 | strcpy(fw_name, "amdgpu/polaris12_smc.bin"); | ||
411 | } | ||
389 | break; | 412 | break; |
390 | case CHIP_VEGAM: | 413 | case CHIP_VEGAM: |
391 | strcpy(fw_name, "amdgpu/vegam_smc.bin"); | 414 | strcpy(fw_name, "amdgpu/vegam_smc.bin"); |