Commit 873a7ea3 authored by Rex Zhu's avatar Rex Zhu Committed by Alex Deucher
Browse files

drm/amd/pp: Get and save CZ/ST smu version



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: default avatarAlex Deucher <alexander.deucher@amd.com>
Signed-off-by: default avatarRex Zhu <Rex.Zhu@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 0e36b9b2
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -801,6 +801,8 @@ static int amdgpu_cgs_get_firmware_info(struct cgs_device *cgs_device,
				else
					strcpy(fw_name, "amdgpu/vega10_smc.bin");
				break;
			case CHIP_CARRIZO:
			case CHIP_STONEY:
			case CHIP_RAVEN:
				adev->pm.fw_version = info->version;
				return 0;
+13 −0
Original line number Diff line number Diff line
@@ -709,6 +709,19 @@ static int cz_start_smu(struct pp_hwmgr *hwmgr)
{
	int ret = 0;
	uint32_t fw_to_check = 0;
	struct cgs_firmware_info info = {0};
	uint32_t index = SMN_MP1_SRAM_START_ADDR +
			 SMU8_FIRMWARE_HEADER_LOCATION +
			 offsetof(struct SMU8_Firmware_Header, Version);


	if (hwmgr == NULL || hwmgr->device == NULL)
		return -EINVAL;

	cgs_write_register(hwmgr->device, mmMP0PUB_IND_INDEX, index);
	hwmgr->smu_version = cgs_read_register(hwmgr->device, mmMP0PUB_IND_DATA);
	info.version = hwmgr->smu_version >> 8;
	cgs_get_firmware_info(hwmgr->device, CGS_UCODE_ID_SMU, &info);

	fw_to_check = UCODE_ID_RLC_G_MASK |
			UCODE_ID_SDMA0_MASK |