OSDN Git Service

drm/amd/pp: Get and save Rv smu version
authorRex Zhu <Rex.Zhu@amd.com>
Tue, 19 Dec 2017 06:08:54 +0000 (14:08 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 20 Dec 2017 16:59:21 +0000 (11:59 -0500)
The smu firmware is loaded by the sbios on APUs, so query it
from the smu and save the smu fw version info that is reported
to userspace.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Rex Zhu <Rex.Zhu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
drivers/gpu/drm/amd/powerplay/smumgr/rv_smumgr.c

index 85d2149..13607e2 100644 (file)
@@ -801,6 +801,9 @@ static int amdgpu_cgs_get_firmware_info(struct cgs_device *cgs_device,
                                else
                                        strcpy(fw_name, "amdgpu/vega10_smc.bin");
                                break;
+                       case CHIP_RAVEN:
+                               adev->pm.fw_version = info->version;
+                               return 0;
                        default:
                                DRM_ERROR("SMC firmware not supported\n");
                                return -EINVAL;
index b98ade6..2d662b4 100644 (file)
@@ -305,6 +305,14 @@ static int rv_smu_fini(struct pp_hwmgr *hwmgr)
 
 static int rv_start_smu(struct pp_hwmgr *hwmgr)
 {
+       struct cgs_firmware_info info = {0};
+
+       smum_send_msg_to_smc(hwmgr, PPSMC_MSG_GetSmuVersion);
+       rv_read_arg_from_smc(hwmgr, &hwmgr->smu_version);
+       info.version = hwmgr->smu_version >> 8;
+
+       cgs_get_firmware_info(hwmgr->device, CGS_UCODE_ID_SMU, &info);
+
        if (rv_verify_smc_interface(hwmgr))
                return -EINVAL;
        if (rv_smc_enable_sdma(hwmgr))