By defining new Macros.

Change-Id: I4f7233ea27e59b61c29c52798a179abbf224fe12
Signed-off-by: Evan Quan <[email protected]>
Acked-by: Alex Deucher <[email protected]>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu.h     | 39 +++++++++++++++++++++++++
 drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 34 ++++-----------------
 drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c   | 24 +++------------
 3 files changed, 48 insertions(+), 49 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h 
b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
index f8f3e375c93e..ba65d4f2ab67 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
@@ -728,6 +728,45 @@ struct amd_powerplay {
        const struct amd_pm_funcs *pp_funcs;
 };
 
+/* polaris10 kickers */
+#define ASICID_IS_P20(did, rid)                (((did == 0x67DF) && \
+                                        ((rid == 0xE3) || \
+                                         (rid == 0xE4) || \
+                                         (rid == 0xE5) || \
+                                         (rid == 0xE7) || \
+                                         (rid == 0xEF))) || \
+                                        ((did == 0x6FDF) && \
+                                        ((rid == 0xE7) || \
+                                         (rid == 0xEF) || \
+                                         (rid == 0xFF))))
+
+#define ASICID_IS_P30(did, rid)                ((did == 0x67DF) && \
+                                       ((rid == 0xE1) || \
+                                        (rid == 0xF7)))
+
+/* polaris11 kickers */
+#define ASICID_IS_P21(did, rid)                (((did == 0x67EF) && \
+                                        ((rid == 0xE0) || \
+                                         (rid == 0xE5))) || \
+                                        ((did == 0x67FF) && \
+                                        ((rid == 0xCF) || \
+                                         (rid == 0xEF) || \
+                                         (rid == 0xFF))))
+
+#define ASICID_IS_P31(did, rid)                ((did == 0x67EF) && \
+                                       ((rid == 0xE2)))
+
+/* polaris12 kickers */
+#define ASICID_IS_P23(did, rid)                (((did == 0x6987) && \
+                                        ((rid == 0xC0) || \
+                                         (rid == 0xC1) || \
+                                         (rid == 0xC3) || \
+                                         (rid == 0xC7))) || \
+                                        ((did == 0x6981) && \
+                                        ((rid == 0x00) || \
+                                         (rid == 0x01) || \
+                                         (rid == 0x10))))
+
 #define AMDGPU_RESET_MAGIC_NUM 64
 #define AMDGPU_MAX_DF_PERFMONS 4
 struct amdgpu_device {
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
index 78ac6dbe70d8..f1a050379190 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
@@ -352,17 +352,10 @@ static int amdgpu_cgs_get_firmware_info(struct cgs_device 
*cgs_device,
                                break;
                        case CHIP_POLARIS11:
                                if (type == CGS_UCODE_ID_SMU) {
-                                       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)))) 
{
+                                       if (ASICID_IS_P21(adev->pdev->device, 
adev->pdev->revision)) {
                                                info->is_kicker = true;
                                                strcpy(fw_name, 
"amdgpu/polaris11_k_smc.bin");
-                                       } else if ((adev->pdev->device == 
0x67ef) &&
-                                                  (adev->pdev->revision == 
0xe2)) {
+                                       } else if 
(ASICID_IS_P31(adev->pdev->device, adev->pdev->revision)) {
                                                info->is_kicker = true;
                                                strcpy(fw_name, 
"amdgpu/polaris11_k2_smc.bin");
                                        } else {
@@ -374,21 +367,10 @@ static int amdgpu_cgs_get_firmware_info(struct cgs_device 
*cgs_device,
                                break;
                        case CHIP_POLARIS10:
                                if (type == CGS_UCODE_ID_SMU) {
-                                       if (((adev->pdev->device == 0x67df) &&
-                                            ((adev->pdev->revision == 0xe0) ||
-                                             (adev->pdev->revision == 0xe3) ||
-                                             (adev->pdev->revision == 0xe4) ||
-                                             (adev->pdev->revision == 0xe5) ||
-                                             (adev->pdev->revision == 0xe7) ||
-                                             (adev->pdev->revision == 0xef))) 
||
-                                           ((adev->pdev->device == 0x6fdf) &&
-                                            ((adev->pdev->revision == 0xef) ||
-                                             (adev->pdev->revision == 0xff)))) 
{
+                                       if (ASICID_IS_P20(adev->pdev->device, 
adev->pdev->revision)) {
                                                info->is_kicker = true;
                                                strcpy(fw_name, 
"amdgpu/polaris10_k_smc.bin");
-                                       } else if ((adev->pdev->device == 
0x67df) &&
-                                                  ((adev->pdev->revision == 
0xe1) ||
-                                                   (adev->pdev->revision == 
0xf7))) {
+                                       } else if 
(ASICID_IS_P30(adev->pdev->device, adev->pdev->revision)) {
                                                info->is_kicker = true;
                                                strcpy(fw_name, 
"amdgpu/polaris10_k2_smc.bin");
                                        } else {
@@ -399,13 +381,7 @@ static int amdgpu_cgs_get_firmware_info(struct cgs_device 
*cgs_device,
                                }
                                break;
                        case CHIP_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)))) {
+                               if (ASICID_IS_P23(adev->pdev->device, 
adev->pdev->revision)) {
                                        info->is_kicker = true;
                                        strcpy(fw_name, 
"amdgpu/polaris12_k_smc.bin");
                                } else {
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c 
b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
index 9ab65ca7df77..0f32a8002c3d 100644
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
@@ -230,36 +230,20 @@ static int gmc_v8_0_init_microcode(struct amdgpu_device 
*adev)
                chip_name = "tonga";
                break;
        case CHIP_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))
+               if (ASICID_IS_P21(adev->pdev->device, adev->pdev->revision) ||
+                   ASICID_IS_P31(adev->pdev->device, adev->pdev->revision))
                        chip_name = "polaris11_k";
                else
                        chip_name = "polaris11";
                break;
        case CHIP_POLARIS10:
-               if ((adev->pdev->device == 0x67df) &&
-                   ((adev->pdev->revision == 0xe1) ||
-                    (adev->pdev->revision == 0xf7)))
+               if (ASICID_IS_P30(adev->pdev->device, adev->pdev->revision))
                        chip_name = "polaris10_k";
                else
                        chip_name = "polaris10";
                break;
        case CHIP_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))))
+               if (ASICID_IS_P23(adev->pdev->device, adev->pdev->revision))
                        chip_name = "polaris12_k";
                else
                        chip_name = "polaris12";
-- 
2.28.0

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

Reply via email to