Commit e01eeffc authored by Yang Wang's avatar Yang Wang Committed by Alex Deucher

drm/amd/pm: avoid driver getting empty metrics table for the first time

add metrics.AccumulationCouter check to avoid driver getting an empty
metrics data since metrics table not updated completely in pmfw side.
Signed-off-by: default avatarYang Wang <KevinYang.Wang@amd.com>
Reviewed-by: default avatarLijo Lazar <lijo.lazar@amd.com>
Reviewed-by: default avatarAsad Kamal <asad.kamal@amd.com>
Tested-by: default avatarAsad Kamal <asad.kamal@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent bd6040b0
......@@ -325,14 +325,24 @@ static int smu_v13_0_6_setup_driver_pptable(struct smu_context *smu)
MetricsTable_t *metrics = (MetricsTable_t *)smu_table->metrics_table;
struct PPTable_t *pptable =
(struct PPTable_t *)smu_table->driver_pptable;
int ret;
int i;
int ret, i, retry = 100;
/* Store one-time values in driver PPTable */
if (!pptable->Init) {
ret = smu_v13_0_6_get_metrics_table(smu, NULL, false);
if (ret)
return ret;
while (retry--) {
ret = smu_v13_0_6_get_metrics_table(smu, NULL, true);
if (ret)
return ret;
/* Ensure that metrics have been updated */
if (metrics->AccumulationCounter)
break;
usleep_range(1000, 1100);
}
if (!retry)
return -ETIME;
pptable->MaxSocketPowerLimit =
SMUQ10_TO_UINT(metrics->MaxSocketPowerLimit);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment