Commit 0ee58478 authored by Asad Kamal's avatar Asad Kamal Committed by Alex Deucher
Browse files

drm/amd/pm: Use common function to fetch static metrics table



Use common function to fetch static metrics table for smu_v13_0_12

Signed-off-by: default avatarAsad Kamal <asad.kamal@amd.com>
Reviewed-by: default avatarLijo Lazar <lijo.lazar@amd.com>
Reviewed-by: default avatarHawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 9eddfcbe
Loading
Loading
Loading
Loading
+1 −21
Original line number Diff line number Diff line
@@ -187,26 +187,6 @@ int smu_v13_0_12_get_max_metrics_size(void)
	return max(sizeof(StaticMetricsTable_t), sizeof(MetricsTable_t));
}

static int smu_v13_0_12_get_static_metrics_table(struct smu_context *smu)
{
	struct smu_table_context *smu_table = &smu->smu_table;
	uint32_t table_size = smu_table->tables[SMU_TABLE_SMU_METRICS].size;
	struct smu_table *table = &smu_table->driver_table;
	int ret;

	ret = smu_cmn_send_smc_msg(smu, SMU_MSG_GetStaticMetricsTable, NULL);
	if (ret) {
		dev_info(smu->adev->dev,
			 "Failed to export static metrics table!\n");
		return ret;
	}

	amdgpu_asic_invalidate_hdp(smu->adev, NULL);
	memcpy(smu_table->metrics_table, table->cpu_addr, table_size);

	return 0;
}

int smu_v13_0_12_setup_driver_pptable(struct smu_context *smu)
{
	struct smu_table_context *smu_table = &smu->smu_table;
@@ -217,7 +197,7 @@ int smu_v13_0_12_setup_driver_pptable(struct smu_context *smu)
	int ret, i;

	if (!pptable->Init) {
		ret = smu_v13_0_12_get_static_metrics_table(smu);
		ret = smu_v13_0_6_get_static_metrics_table(smu);
		if (ret)
			return ret;

+1 −1
Original line number Diff line number Diff line
@@ -739,7 +739,7 @@ static ssize_t smu_v13_0_6_get_pm_metrics(struct smu_context *smu,
	return pm_metrics->common_header.structure_size;
}

static int smu_v13_0_6_get_static_metrics_table(struct smu_context *smu)
int smu_v13_0_6_get_static_metrics_table(struct smu_context *smu)
{
	struct smu_table_context *smu_table = &smu->smu_table;
	uint32_t table_size = smu_table->tables[SMU_TABLE_SMU_METRICS].size;
+1 −0
Original line number Diff line number Diff line
@@ -71,5 +71,6 @@ enum smu_v13_0_6_caps {

extern void smu_v13_0_6_set_ppt_funcs(struct smu_context *smu);
bool smu_v13_0_6_cap_supported(struct smu_context *smu, enum smu_v13_0_6_caps cap);
int smu_v13_0_6_get_static_metrics_table(struct smu_context *smu);

#endif