mirror of
https://github.com/torvalds/linux.git
synced 2026-06-03 12:03:54 +02:00
drm/amd/pm: Fill static metrics data
Fill static metrics data for smu_v13_0_6 v2: Proceed with driver load just with warning even if board voltage reads invalid value Signed-off-by: Asad Kamal <asad.kamal@amd.com> Reviewed-by: Lijo Lazar <lijo.lazar@amd.com> Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
0ee5847849
commit
ad3d93230d
|
|
@ -112,6 +112,7 @@ struct smu_13_0_dpm_context {
|
|||
uint32_t workload_policy_mask;
|
||||
uint32_t dcef_min_ds_clk;
|
||||
uint64_t caps;
|
||||
uint32_t board_volt;
|
||||
};
|
||||
|
||||
enum smu_13_0_power_state {
|
||||
|
|
|
|||
|
|
@ -739,6 +739,19 @@ static ssize_t smu_v13_0_6_get_pm_metrics(struct smu_context *smu,
|
|||
return pm_metrics->common_header.structure_size;
|
||||
}
|
||||
|
||||
static void smu_v13_0_6_fill_static_metrics_table(struct smu_context *smu,
|
||||
StaticMetricsTable_t *static_metrics)
|
||||
{
|
||||
struct smu_13_0_dpm_context *dpm_context = smu->smu_dpm.dpm_context;
|
||||
|
||||
if (!static_metrics->InputTelemetryVoltageInmV) {
|
||||
dev_warn(smu->adev->dev, "Invalid board voltage %d\n",
|
||||
static_metrics->InputTelemetryVoltageInmV);
|
||||
}
|
||||
|
||||
dpm_context->board_volt = static_metrics->InputTelemetryVoltageInmV;
|
||||
}
|
||||
|
||||
int smu_v13_0_6_get_static_metrics_table(struct smu_context *smu)
|
||||
{
|
||||
struct smu_table_context *smu_table = &smu->smu_table;
|
||||
|
|
@ -762,6 +775,7 @@ int smu_v13_0_6_get_static_metrics_table(struct smu_context *smu)
|
|||
static int smu_v13_0_6_setup_driver_pptable(struct smu_context *smu)
|
||||
{
|
||||
struct smu_table_context *smu_table = &smu->smu_table;
|
||||
StaticMetricsTable_t *static_metrics = (StaticMetricsTable_t *)smu_table->metrics_table;
|
||||
MetricsTableV0_t *metrics_v0 = (MetricsTableV0_t *)smu_table->metrics_table;
|
||||
MetricsTableV1_t *metrics_v1 = (MetricsTableV1_t *)smu_table->metrics_table;
|
||||
MetricsTableV2_t *metrics_v2 = (MetricsTableV2_t *)smu_table->metrics_table;
|
||||
|
|
@ -830,6 +844,7 @@ static int smu_v13_0_6_setup_driver_pptable(struct smu_context *smu)
|
|||
ret = smu_v13_0_6_get_static_metrics_table(smu);
|
||||
if (ret)
|
||||
return ret;
|
||||
smu_v13_0_6_fill_static_metrics_table(smu, static_metrics);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user