drm/amd/powerplay: Allow duplicate enteries in pptable.
authorRex Zhu <Rex.Zhu@amd.com>
Tue, 2 May 2017 06:30:39 +0000 (14:30 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 5 May 2017 22:12:00 +0000 (18:12 -0400)
This is a valid configuration.

Signed-off-by: Rex Zhu <Rex.Zhu@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c

index dbc1c03cb40ac05a76b393c43e3f6456330191f6..8baa890579d8518c50189ce206b0900723fd765c 100644 (file)
@@ -1137,7 +1137,7 @@ static void vega10_setup_default_single_dpm_table(struct pp_hwmgr *hwmgr,
        int i;
 
        for (i = 0; i < dep_table->count; i++) {
-               if (i == 0 || dpm_table->dpm_levels[dpm_table->count - 1].value !=
+               if (i == 0 || dpm_table->dpm_levels[dpm_table->count - 1].value <=
                                dep_table->entries[i].clk) {
                        dpm_table->dpm_levels[dpm_table->count].value =
                                        dep_table->entries[i].clk;
@@ -1274,7 +1274,7 @@ static int vega10_setup_default_dpm_tables(struct pp_hwmgr *hwmgr)
        dpm_table = &(data->dpm_table.eclk_table);
        for (i = 0; i < dep_mm_table->count; i++) {
                if (i == 0 || dpm_table->dpm_levels
-                               [dpm_table->count - 1].value !=
+                               [dpm_table->count - 1].value <=
                                                dep_mm_table->entries[i].eclk) {
                        dpm_table->dpm_levels[dpm_table->count].value =
                                        dep_mm_table->entries[i].eclk;
@@ -1290,7 +1290,7 @@ static int vega10_setup_default_dpm_tables(struct pp_hwmgr *hwmgr)
        dpm_table = &(data->dpm_table.vclk_table);
        for (i = 0; i < dep_mm_table->count; i++) {
                if (i == 0 || dpm_table->dpm_levels
-                               [dpm_table->count - 1].value !=
+                               [dpm_table->count - 1].value <=
                                                dep_mm_table->entries[i].vclk) {
                        dpm_table->dpm_levels[dpm_table->count].value =
                                        dep_mm_table->entries[i].vclk;
@@ -1304,7 +1304,7 @@ static int vega10_setup_default_dpm_tables(struct pp_hwmgr *hwmgr)
        dpm_table = &(data->dpm_table.dclk_table);
        for (i = 0; i < dep_mm_table->count; i++) {
                if (i == 0 || dpm_table->dpm_levels
-                               [dpm_table->count - 1].value !=
+                               [dpm_table->count - 1].value <=
                                                dep_mm_table->entries[i].dclk) {
                        dpm_table->dpm_levels[dpm_table->count].value =
                                        dep_mm_table->entries[i].dclk;