]> www.infradead.org Git - users/hch/dma-mapping.git/commitdiff
drm/amdgpu: support psp v13_0_0 microcode init
authorLikun Gao <Likun.Gao@amd.com>
Wed, 30 Jun 2021 09:54:30 +0000 (17:54 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 4 May 2022 13:55:27 +0000 (09:55 -0400)
Support psp v13_0_0 microcode init.

Signed-off-by: Likun Gao <Likun.Gao@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
drivers/gpu/drm/amd/amdgpu/psp_v13_0.c

index ccb7106b2f27fee7d51622f8d5765f2e4f71127a..5aba4cb9338a8aa9246e6a085fe2a35abd97565a 100644 (file)
@@ -82,6 +82,7 @@ static void psp_check_pmfw_centralized_cstate_management(struct psp_context *psp
        case IP_VERSION(11, 0, 11):
        case IP_VERSION(11, 0, 12):
        case IP_VERSION(11, 0, 13):
+       case IP_VERSION(13, 0, 0):
        case IP_VERSION(13, 0, 2):
                psp->pmfw_centralized_cstate_management = true;
                break;
@@ -142,6 +143,10 @@ static int psp_early_init(void *handle)
                        psp->autoload_supported = false;
                }
                break;
+       case IP_VERSION(13, 0, 0):
+               psp_v13_0_set_psp_funcs(psp);
+               psp->autoload_supported = true;
+               break;
        default:
                return -EINVAL;
        }
index f951dbf21af6b4a8d6507a7621773025e0131e28..024853eb1cd72dec79c278db9d720c032d0d4d77 100644 (file)
@@ -41,6 +41,7 @@ MODULE_FIRMWARE("amdgpu/psp_13_0_5_ta.bin");
 MODULE_FIRMWARE("amdgpu/psp_13_0_8_asd.bin");
 MODULE_FIRMWARE("amdgpu/psp_13_0_8_toc.bin");
 MODULE_FIRMWARE("amdgpu/psp_13_0_8_ta.bin");
+MODULE_FIRMWARE("amdgpu/psp_13_0_0_sos.bin");
 
 /* For large FW files the time to complete can be very long */
 #define USBC_PD_POLLING_LIMIT_S 240
@@ -68,6 +69,9 @@ static int psp_v13_0_init_microcode(struct psp_context *psp)
        case IP_VERSION(13, 0, 8):
                chip_name = "psp_13_0_8";
                break;
+       case IP_VERSION(13, 0, 0):
+               chip_name = "psp_13_0_0";
+               break;
        default:
                BUG();
        }
@@ -94,6 +98,11 @@ static int psp_v13_0_init_microcode(struct psp_context *psp)
                if (err)
                        return err;
                break;
+       case IP_VERSION(13, 0, 0):
+               err = psp_init_sos_microcode(psp, chip_name);
+               if (err)
+                       return err;
+               break;
        default:
                BUG();
        }