drm/amdgpu: add psp_v13 support for yellow carp
authorAaron Liu <aaron.liu@amd.com>
Thu, 25 Mar 2021 06:21:51 +0000 (14:21 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 4 Jun 2021 20:03:12 +0000 (16:03 -0400)
This patch adds psp_v13 support for yellow carp.

Signed-off-by: Aaron Liu <aaron.liu@amd.com>
Reviewed-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/psp_v13_0.c

index fcdce46..2b4916a 100644 (file)
@@ -31,6 +31,8 @@
 
 MODULE_FIRMWARE("amdgpu/aldebaran_sos.bin");
 MODULE_FIRMWARE("amdgpu/aldebaran_ta.bin");
+MODULE_FIRMWARE("amdgpu/yellow_carp_asd.bin");
+MODULE_FIRMWARE("amdgpu/yellow_carp_toc.bin");
 
 static int psp_v13_0_init_microcode(struct psp_context *psp)
 {
@@ -42,17 +44,34 @@ static int psp_v13_0_init_microcode(struct psp_context *psp)
        case CHIP_ALDEBARAN:
                chip_name = "aldebaran";
                break;
+       case CHIP_YELLOW_CARP:
+               chip_name = "yellow_carp";
+               break;
+       default:
+               BUG();
+       }
+       switch (adev->asic_type) {
+       case CHIP_ALDEBARAN:
+               err = psp_init_sos_microcode(psp, chip_name);
+               if (err)
+                       return err;
+               err = psp_init_ta_microcode(&adev->psp, chip_name);
+               if (err)
+                       return err;
+               break;
+       case CHIP_YELLOW_CARP:
+               err = psp_init_asd_microcode(psp, chip_name);
+               if (err)
+                       return err;
+               err = psp_init_toc_microcode(psp, chip_name);
+               if (err)
+                       return err;
+               break;
        default:
                BUG();
        }
 
-       err = psp_init_sos_microcode(psp, chip_name);
-       if (err)
-               return err;
-
-       err = psp_init_ta_microcode(&adev->psp, chip_name);
-
-       return err;
+       return 0;
 }
 
 static bool psp_v13_0_is_sos_alive(struct psp_context *psp)