Commit b0230535 authored by Evan Quan's avatar Evan Quan Committed by Alex Deucher
Browse files

drm/amd/pm: use vbios carried pptable for all SMU13.0.7 SKUs



For those SMU13.0.7 unsecure SKUs, the vbios carried pptable is ready to go.
Use that one instead of hardcoded softpptable.

Signed-off-by: default avatarEvan Quan <evan.quan@amd.com>
Reviewed-by: default avatarKenneth Feng <kenneth.feng@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent d7e75468
Loading
Loading
Loading
Loading
+22 −13
Original line number Diff line number Diff line
@@ -400,11 +400,27 @@ static int smu_v13_0_7_append_powerplay_table(struct smu_context *smu)
	return 0;
}

static int smu_v13_0_7_get_pptable_from_pmfw(struct smu_context *smu,
					     void **table,
					     uint32_t *size)
{
	struct smu_table_context *smu_table = &smu->smu_table;
	void *combo_pptable = smu_table->combo_pptable;
	int ret = 0;

	ret = smu_cmn_get_combo_pptable(smu);
	if (ret)
		return ret;

	*table = combo_pptable;
	*size = sizeof(struct smu_13_0_7_powerplay_table);

	return 0;
}

static int smu_v13_0_7_setup_pptable(struct smu_context *smu)
{
	struct smu_table_context *smu_table = &smu->smu_table;
	void *combo_pptable = smu_table->combo_pptable;
	struct amdgpu_device *adev = smu->adev;
	int ret = 0;

@@ -413,19 +429,12 @@ static int smu_v13_0_7_setup_pptable(struct smu_context *smu)
	 * be used directly by driver. To get the raw pptable, we need to
	 * rely on the combo pptable(and its revelant SMU message).
	 */
	if (adev->scpm_enabled) {
		ret = smu_cmn_get_combo_pptable(smu);
	ret = smu_v13_0_7_get_pptable_from_pmfw(smu,
						&smu_table->power_play_table,
						&smu_table->power_play_table_size);
	if (ret)
		return ret;

		smu->smu_table.power_play_table = combo_pptable;
		smu->smu_table.power_play_table_size = sizeof(struct smu_13_0_7_powerplay_table);
	} else {
		ret = smu_v13_0_setup_pptable(smu);
		if (ret)
			return ret;
	}

	ret = smu_v13_0_7_store_powerplay_table(smu);
	if (ret)
		return ret;