Skip to contentSkip to conversation

drm/amdgpu: add support for request SI/CI firmware in CGS

PATCH In review Rex Zhu 2 participants 2 messages Sep 8, 2017 – Sep 11, 2017 1 message not in the archive

Subsystems (2)
lore
Share & tools
lore

Rex Zhu

author
#0 lore raw

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

Change-Id If3ab520f8c65bec070e97cd8787041919d687ad3
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 79 +++++++++++++++++++++++++++++++++
 1 file changed, 79 insertions(+)
drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c +79 -0
index d450a96..5e83f9a 100644
@@ -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)) ||
Signature · 6 lines
1.9.1

_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

A message that is not in the archive (sent off-list or not yet received): 1504852826-28249-1-git-send-email-Rex.Zhu-5C7GfCeVMHo@public.gmane.org

Reviewed-by
#2 lore raw
Quoted 2 lines · Rex Zhu
Change-Id If3ab520f8c65bec070e97cd8787041919d687ad3

Series is:

Quoted 97 lines
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 79 +++++++++++++++++++++++++++++++++
 1 file changed, 79 insertions(+)
drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c +79 -1
index d450a96..5e83f9a 100644
@@ -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

Quoted 4 lines

_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx