drm/amdgpu/psp_v3_1: Get psp fw version through reading register
authorEmily Deng <Emily.Deng@amd.com>
Wed, 12 Dec 2018 10:08:24 +0000 (18:08 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 14 Dec 2018 17:04:39 +0000 (12:04 -0500)
If PSP FW is running already, driver will not load PSP FW again and skip
it. So psp fw version is not correct if reading it from FW binary file,
need to get right version from register.

Signed-off-by: Emily Deng <Emily.Deng@amd.com>
Reviewed-by: Xiangliang Yu <Xiangliang.Yu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/psp_v3_1.c

index 7357fd56e61445f18bd16b7a2553e9eaf4d1d960..79694ff1696966ff4ac17d7c1d03e49ff42ecec6 100644 (file)
@@ -240,8 +240,11 @@ static int psp_v3_1_bootloader_load_sos(struct psp_context *psp)
         * are already been loaded.
         */
        sol_reg = RREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_81);
-       if (sol_reg)
+       if (sol_reg) {
+               psp->sos_fw_version = RREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_58);
+               printk("sos fw version = 0x%x.\n", psp->sos_fw_version);
                return 0;
+       }
 
        /* Wait for bootloader to signify that is ready having bit 31 of C2PMSG_35 set to 1 */
        ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_35),