Re: [PATCH] drm/amdgpu: update smu firmware images for VI variants (v2)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am 30.10.18 um 03:22 schrieb Alex Deucher:
Some new variants require updated firmware.

V2: add MODULE_FIRMWARE for new firmwares

Reviewed-by: Huang Rui <ray.huang@xxxxxxx> (v1)
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>

Does the new firmware also works on the older boards? Could we somehow prevent adding even more firmware files?

I suspected both questions to be answered with no, if that is really the case then the patch is Reviewed-by: Christian König <christian.koenig@xxxxxxx>.

Regards,
Christian.

---
  drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c       | 33 +++++++++++++++++++++++----
  drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c |  3 +++
  2 files changed, 31 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,
  			case CHIP_TOPAZ:
  				if (((adev->pdev->device == 0x6900) && (adev->pdev->revision == 0x81)) ||
  				    ((adev->pdev->device == 0x6900) && (adev->pdev->revision == 0x83)) ||
-				    ((adev->pdev->device == 0x6907) && (adev->pdev->revision == 0x87))) {
+				    ((adev->pdev->device == 0x6907) && (adev->pdev->revision == 0x87)) ||
+				    ((adev->pdev->device == 0x6900) && (adev->pdev->revision == 0xD1)) ||
+				    ((adev->pdev->device == 0x6900) && (adev->pdev->revision == 0xD3))) {
  					info->is_kicker = true;
  					strcpy(fw_name, "amdgpu/topaz_k_smc.bin");
  				} else
@@ -351,7 +353,6 @@ static int amdgpu_cgs_get_firmware_info(struct cgs_device *cgs_device,
  				if (type == CGS_UCODE_ID_SMU) {
  					if (((adev->pdev->device == 0x67ef) &&
  					     ((adev->pdev->revision == 0xe0) ||
-					      (adev->pdev->revision == 0xe2) ||
  					      (adev->pdev->revision == 0xe5))) ||
  					    ((adev->pdev->device == 0x67ff) &&
  					     ((adev->pdev->revision == 0xcf) ||
@@ -359,8 +360,13 @@ static int amdgpu_cgs_get_firmware_info(struct cgs_device *cgs_device,
  					      (adev->pdev->revision == 0xff)))) {
  						info->is_kicker = true;
  						strcpy(fw_name, "amdgpu/polaris11_k_smc.bin");
-					} else
+					} else if ((adev->pdev->device == 0x67ef) &&
+						   (adev->pdev->revision == 0xe2)) {
+						info->is_kicker = true;
+						strcpy(fw_name, "amdgpu/polaris11_k2_smc.bin");
+					} else {
  						strcpy(fw_name, "amdgpu/polaris11_smc.bin");
+					}
  				} else if (type == CGS_UCODE_ID_SMU_SK) {
  					strcpy(fw_name, "amdgpu/polaris11_smc_sk.bin");
  				}
@@ -378,14 +384,31 @@ static int amdgpu_cgs_get_firmware_info(struct cgs_device *cgs_device,
  					     (adev->pdev->revision == 0xef))) {
  						info->is_kicker = true;
  						strcpy(fw_name, "amdgpu/polaris10_k_smc.bin");
-					} else
+					} else if ((adev->pdev->device == 0x67df) &&
+						   ((adev->pdev->revision == 0xe1) ||
+						    (adev->pdev->revision == 0xf7))) {
+						info->is_kicker = true;
+						strcpy(fw_name, "amdgpu/polaris10_k2_smc.bin");
+					} else {
  						strcpy(fw_name, "amdgpu/polaris10_smc.bin");
+					}
  				} else if (type == CGS_UCODE_ID_SMU_SK) {
  					strcpy(fw_name, "amdgpu/polaris10_smc_sk.bin");
  				}
  				break;
  			case CHIP_POLARIS12:
-				strcpy(fw_name, "amdgpu/polaris12_smc.bin");
+				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)))) {
+					info->is_kicker = true;
+					strcpy(fw_name, "amdgpu/polaris12_k_smc.bin");
+				} else {
+					strcpy(fw_name, "amdgpu/polaris12_smc.bin");
+				}
  				break;
  			case CHIP_VEGAM:
  				strcpy(fw_name, "amdgpu/vegam_smc.bin");
diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c b/drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c
index 99d5e4f98f49..a6edd5df33b0 100644
--- a/drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c
+++ b/drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c
@@ -37,10 +37,13 @@ MODULE_FIRMWARE("amdgpu/fiji_smc.bin");
  MODULE_FIRMWARE("amdgpu/polaris10_smc.bin");
  MODULE_FIRMWARE("amdgpu/polaris10_smc_sk.bin");
  MODULE_FIRMWARE("amdgpu/polaris10_k_smc.bin");
+MODULE_FIRMWARE("amdgpu/polaris10_k2_smc.bin");
  MODULE_FIRMWARE("amdgpu/polaris11_smc.bin");
  MODULE_FIRMWARE("amdgpu/polaris11_smc_sk.bin");
  MODULE_FIRMWARE("amdgpu/polaris11_k_smc.bin");
+MODULE_FIRMWARE("amdgpu/polaris11_k2_smc.bin");
  MODULE_FIRMWARE("amdgpu/polaris12_smc.bin");
+MODULE_FIRMWARE("amdgpu/polaris12_k_smc.bin");
  MODULE_FIRMWARE("amdgpu/vegam_smc.bin");
  MODULE_FIRMWARE("amdgpu/vega10_smc.bin");
  MODULE_FIRMWARE("amdgpu/vega10_acg_smc.bin");

_______________________________________________
amd-gfx mailing list
amd-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/amd-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux