* [PATCH 1/4] drm/amd/powerplay: fix Vega10 mclk/socclk voltage link setup
@ 2019-05-07 6:08 Evan Quan
[not found] ` <20190507060859.27650-1-evan.quan-5C7GfCeVMHo@public.gmane.org>
0 siblings, 1 reply; 6+ messages in thread
From: Evan Quan @ 2019-05-07 6:08 UTC (permalink / raw)
To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
Cc: yanik-4pJZyYNR0dgOIzVOb1FTxg, Alexander.Deucher-5C7GfCeVMHo,
Evan Quan
This may affects the Vega10 MCLK OD functionality.
Change-Id: Icd685187501b4ec8867fb3c5077ea2664edbd114
Signed-off-by: Evan Quan <evan.quan@amd.com>
---
.../drm/amd/powerplay/hwmgr/vega10_hwmgr.c | 35 +++++++++++++------
1 file changed, 24 insertions(+), 11 deletions(-)
diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
index d5d0db456021..138f9f9ea765 100644
--- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
@@ -5016,7 +5016,7 @@ static void vega10_odn_update_soc_table(struct pp_hwmgr *hwmgr,
struct vega10_hwmgr *data = hwmgr->backend;
struct phm_ppt_v2_information *table_info = hwmgr->pptable;
struct phm_ppt_v1_clock_voltage_dependency_table *dep_table = table_info->vdd_dep_on_socclk;
- struct vega10_single_dpm_table *dpm_table = &data->golden_dpm_table.soc_table;
+ struct vega10_single_dpm_table *dpm_table = &data->golden_dpm_table.mem_table;
struct vega10_odn_clock_voltage_dependency_table *podn_vdd_dep_on_socclk =
&data->odn_dpm_table.vdd_dep_on_socclk;
@@ -5040,7 +5040,8 @@ static void vega10_odn_update_soc_table(struct pp_hwmgr *hwmgr,
break;
}
if (j == od_vddc_lookup_table->count) {
- od_vddc_lookup_table->entries[j-1].us_vdd =
+ j = od_vddc_lookup_table->count - 1;
+ od_vddc_lookup_table->entries[j].us_vdd =
podn_vdd_dep->entries[i].vddc;
data->need_update_dpm_table |= DPMTABLE_OD_UPDATE_VDDC;
}
@@ -5048,23 +5049,35 @@ static void vega10_odn_update_soc_table(struct pp_hwmgr *hwmgr,
}
dpm_table = &data->dpm_table.soc_table;
for (i = 0; i < dep_table->count; i++) {
- if (dep_table->entries[i].vddInd == podn_vdd_dep->entries[dep_table->count-1].vddInd &&
- dep_table->entries[i].clk < podn_vdd_dep->entries[dep_table->count-1].clk) {
+ if (dep_table->entries[i].vddInd == podn_vdd_dep->entries[podn_vdd_dep->count-1].vddInd &&
+ dep_table->entries[i].clk < podn_vdd_dep->entries[podn_vdd_dep->count-1].clk) {
data->need_update_dpm_table |= DPMTABLE_UPDATE_SOCCLK;
- podn_vdd_dep_on_socclk->entries[i].clk = podn_vdd_dep->entries[dep_table->count-1].clk;
- dpm_table->dpm_levels[i].value = podn_vdd_dep_on_socclk->entries[i].clk;
+ for (; (i < dep_table->count) &&
+ (dep_table->entries[i].clk < podn_vdd_dep->entries[podn_vdd_dep->count - 1].clk); i++) {
+ podn_vdd_dep_on_socclk->entries[i].clk = podn_vdd_dep->entries[podn_vdd_dep->count-1].clk;
+ dpm_table->dpm_levels[i].value = podn_vdd_dep_on_socclk->entries[i].clk;
+ }
+ break;
+ } else {
+ dpm_table->dpm_levels[i].value = dep_table->entries[i].clk;
+ podn_vdd_dep_on_socclk->entries[i].vddc = dep_table->entries[i].vddc;
+ podn_vdd_dep_on_socclk->entries[i].vddInd = dep_table->entries[i].vddInd;
+ podn_vdd_dep_on_socclk->entries[i].clk = dep_table->entries[i].clk;
}
}
if (podn_vdd_dep_on_socclk->entries[podn_vdd_dep_on_socclk->count - 1].clk <
- podn_vdd_dep->entries[dep_table->count-1].clk) {
+ podn_vdd_dep->entries[podn_vdd_dep->count - 1].clk) {
data->need_update_dpm_table |= DPMTABLE_UPDATE_SOCCLK;
- podn_vdd_dep_on_socclk->entries[podn_vdd_dep_on_socclk->count - 1].clk = podn_vdd_dep->entries[dep_table->count-1].clk;
- dpm_table->dpm_levels[podn_vdd_dep_on_socclk->count - 1].value = podn_vdd_dep->entries[dep_table->count-1].clk;
+ podn_vdd_dep_on_socclk->entries[podn_vdd_dep_on_socclk->count - 1].clk =
+ podn_vdd_dep->entries[podn_vdd_dep->count - 1].clk;
+ dpm_table->dpm_levels[podn_vdd_dep_on_socclk->count - 1].value =
+ podn_vdd_dep->entries[podn_vdd_dep->count - 1].clk;
}
if (podn_vdd_dep_on_socclk->entries[podn_vdd_dep_on_socclk->count - 1].vddInd <
- podn_vdd_dep->entries[dep_table->count-1].vddInd) {
+ podn_vdd_dep->entries[podn_vdd_dep->count - 1].vddInd) {
data->need_update_dpm_table |= DPMTABLE_UPDATE_SOCCLK;
- podn_vdd_dep_on_socclk->entries[podn_vdd_dep_on_socclk->count - 1].vddInd = podn_vdd_dep->entries[dep_table->count-1].vddInd;
+ podn_vdd_dep_on_socclk->entries[podn_vdd_dep_on_socclk->count - 1].vddInd =
+ podn_vdd_dep->entries[podn_vdd_dep->count - 1].vddInd;
}
}
}
--
2.21.0
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/4] drm/amd/powerplay: valid Vega10 DPMTABLE_OD_UPDATE_VDDC settings
[not found] ` <20190507060859.27650-1-evan.quan-5C7GfCeVMHo@public.gmane.org>
@ 2019-05-07 6:08 ` Evan Quan
[not found] ` <20190507060859.27650-2-evan.quan-5C7GfCeVMHo@public.gmane.org>
2019-05-07 6:08 ` [PATCH 3/4] drm/amd/powerplay: avoid repeat AVFS enablement/disablement Evan Quan
2019-05-07 6:08 ` [PATCH 4/4] drm/amd/powerplay: update Vega10 power state on OD Evan Quan
2 siblings, 1 reply; 6+ messages in thread
From: Evan Quan @ 2019-05-07 6:08 UTC (permalink / raw)
To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
Cc: yanik-4pJZyYNR0dgOIzVOb1FTxg, Alexander.Deucher-5C7GfCeVMHo,
Evan Quan
With user specified voltage(DPMTABLE_OD_UPDATE_VDDC), the AVFS
will be disabled. However, the buggy code makes this actually not
working as expected.
Change-Id: Ifa83a6255bb3f6fa4bdb4de616521cb7bab6830a
Signed-off-by: Evan Quan <evan.quan@amd.com>
---
drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
index 138f9f9ea765..103f7e3f0783 100644
--- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
@@ -2466,11 +2466,6 @@ static void vega10_check_dpm_table_updated(struct pp_hwmgr *hwmgr)
return;
}
}
-
- if (data->need_update_dpm_table & DPMTABLE_OD_UPDATE_VDDC) {
- data->need_update_dpm_table &= ~DPMTABLE_OD_UPDATE_VDDC;
- data->need_update_dpm_table |= DPMTABLE_OD_UPDATE_SCLK | DPMTABLE_OD_UPDATE_MCLK;
- }
}
/**
@@ -3683,7 +3678,7 @@ static int vega10_set_power_state_tasks(struct pp_hwmgr *hwmgr,
vega10_update_avfs(hwmgr);
- data->need_update_dpm_table &= DPMTABLE_OD_UPDATE_VDDC;
+ data->need_update_dpm_table = 0;
return 0;
}
--
2.21.0
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 3/4] drm/amd/powerplay: avoid repeat AVFS enablement/disablement
[not found] ` <20190507060859.27650-1-evan.quan-5C7GfCeVMHo@public.gmane.org>
2019-05-07 6:08 ` [PATCH 2/4] drm/amd/powerplay: valid Vega10 DPMTABLE_OD_UPDATE_VDDC settings Evan Quan
@ 2019-05-07 6:08 ` Evan Quan
2019-05-07 6:08 ` [PATCH 4/4] drm/amd/powerplay: update Vega10 power state on OD Evan Quan
2 siblings, 0 replies; 6+ messages in thread
From: Evan Quan @ 2019-05-07 6:08 UTC (permalink / raw)
To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
Cc: yanik-4pJZyYNR0dgOIzVOb1FTxg, Alexander.Deucher-5C7GfCeVMHo,
Evan Quan
No need to enable or disable AVFS if it's already in wanted
state.
Change-Id: I862c0c3d642e6a0dc7bb34e04c5a59f17b6b8deb
Signed-off-by: Evan Quan <evan.quan@amd.com>
---
drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
index 103f7e3f0783..f4b81f50b185 100644
--- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
@@ -2364,6 +2364,10 @@ static int vega10_avfs_enable(struct pp_hwmgr *hwmgr, bool enable)
struct vega10_hwmgr *data = hwmgr->backend;
if (data->smu_features[GNLD_AVFS].supported) {
+ /* Already enabled or disabled */
+ if (!(enable ^ data->smu_features[GNLD_AVFS].enabled))
+ return 0;
+
if (enable) {
PP_ASSERT_WITH_CODE(!vega10_enable_smc_features(hwmgr,
true,
--
2.21.0
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 4/4] drm/amd/powerplay: update Vega10 power state on OD
[not found] ` <20190507060859.27650-1-evan.quan-5C7GfCeVMHo@public.gmane.org>
2019-05-07 6:08 ` [PATCH 2/4] drm/amd/powerplay: valid Vega10 DPMTABLE_OD_UPDATE_VDDC settings Evan Quan
2019-05-07 6:08 ` [PATCH 3/4] drm/amd/powerplay: avoid repeat AVFS enablement/disablement Evan Quan
@ 2019-05-07 6:08 ` Evan Quan
[not found] ` <20190507060859.27650-4-evan.quan-5C7GfCeVMHo@public.gmane.org>
2 siblings, 1 reply; 6+ messages in thread
From: Evan Quan @ 2019-05-07 6:08 UTC (permalink / raw)
To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
Cc: yanik-4pJZyYNR0dgOIzVOb1FTxg, Alexander.Deucher-5C7GfCeVMHo,
Evan Quan
Update Vega10 top performance level power state accordingly
on OD.
Change-Id: Iaadeefb2904222bf5f4d54b39d7179ce53f92ac0
Signed-off-by: Evan Quan <evan.quan@amd.com>
---
.../drm/amd/powerplay/hwmgr/vega10_hwmgr.c | 59 +++++++++++++++++++
1 file changed, 59 insertions(+)
diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
index f4b81f50b185..4878938ecf33 100644
--- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
@@ -5009,6 +5009,63 @@ static bool vega10_check_clk_voltage_valid(struct pp_hwmgr *hwmgr,
return true;
}
+static void vega10_odn_update_power_state(struct pp_hwmgr *hwmgr)
+{
+ struct vega10_hwmgr *data = hwmgr->backend;
+ struct pp_power_state *ps = hwmgr->request_ps;
+ struct vega10_power_state *vega10_ps;
+ struct vega10_single_dpm_table *gfx_dpm_table =
+ &data->dpm_table.gfx_table;
+ struct vega10_single_dpm_table *soc_dpm_table =
+ &data->dpm_table.soc_table;
+ struct vega10_single_dpm_table *mem_dpm_table =
+ &data->dpm_table.mem_table;
+ int max_level;
+
+ if (!ps)
+ return;
+
+ vega10_ps = cast_phw_vega10_power_state(&ps->hardware);
+ max_level = vega10_ps->performance_level_count - 1;
+
+ if (vega10_ps->performance_levels[max_level].gfx_clock !=
+ gfx_dpm_table->dpm_levels[gfx_dpm_table->count - 1].value)
+ vega10_ps->performance_levels[max_level].gfx_clock =
+ gfx_dpm_table->dpm_levels[gfx_dpm_table->count - 1].value;
+
+ if (vega10_ps->performance_levels[max_level].soc_clock !=
+ soc_dpm_table->dpm_levels[soc_dpm_table->count - 1].value)
+ vega10_ps->performance_levels[max_level].soc_clock =
+ soc_dpm_table->dpm_levels[soc_dpm_table->count - 1].value;
+
+ if (vega10_ps->performance_levels[max_level].mem_clock !=
+ mem_dpm_table->dpm_levels[mem_dpm_table->count - 1].value)
+ vega10_ps->performance_levels[max_level].mem_clock =
+ mem_dpm_table->dpm_levels[mem_dpm_table->count - 1].value;
+
+ if (!hwmgr->ps)
+ return;
+
+ ps = (struct pp_power_state *)((unsigned long)(hwmgr->ps) + hwmgr->ps_size * (hwmgr->num_ps - 1));
+ vega10_ps = cast_phw_vega10_power_state(&ps->hardware);
+ max_level = vega10_ps->performance_level_count - 1;
+
+ if (vega10_ps->performance_levels[max_level].gfx_clock !=
+ gfx_dpm_table->dpm_levels[gfx_dpm_table->count - 1].value)
+ vega10_ps->performance_levels[max_level].gfx_clock =
+ gfx_dpm_table->dpm_levels[gfx_dpm_table->count - 1].value;
+
+ if (vega10_ps->performance_levels[max_level].soc_clock !=
+ soc_dpm_table->dpm_levels[soc_dpm_table->count - 1].value)
+ vega10_ps->performance_levels[max_level].soc_clock =
+ soc_dpm_table->dpm_levels[soc_dpm_table->count - 1].value;
+
+ if (vega10_ps->performance_levels[max_level].mem_clock !=
+ mem_dpm_table->dpm_levels[mem_dpm_table->count - 1].value)
+ vega10_ps->performance_levels[max_level].mem_clock =
+ mem_dpm_table->dpm_levels[mem_dpm_table->count - 1].value;
+}
+
static void vega10_odn_update_soc_table(struct pp_hwmgr *hwmgr,
enum PP_OD_DPM_TABLE_COMMAND type)
{
@@ -5079,6 +5136,7 @@ static void vega10_odn_update_soc_table(struct pp_hwmgr *hwmgr,
podn_vdd_dep->entries[podn_vdd_dep->count - 1].vddInd;
}
}
+ vega10_odn_update_power_state(hwmgr);
}
static int vega10_odn_edit_dpm_table(struct pp_hwmgr *hwmgr,
@@ -5113,6 +5171,7 @@ static int vega10_odn_edit_dpm_table(struct pp_hwmgr *hwmgr,
} else if (PP_OD_RESTORE_DEFAULT_TABLE == type) {
memcpy(&(data->dpm_table), &(data->golden_dpm_table), sizeof(struct vega10_dpm_table));
vega10_odn_initial_default_setting(hwmgr);
+ vega10_odn_update_power_state(hwmgr);
return 0;
} else if (PP_OD_COMMIT_DPM_TABLE == type) {
vega10_check_dpm_table_updated(hwmgr);
--
2.21.0
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 4/4] drm/amd/powerplay: update Vega10 power state on OD
[not found] ` <20190507060859.27650-4-evan.quan-5C7GfCeVMHo@public.gmane.org>
@ 2019-05-07 15:15 ` Alex Deucher
0 siblings, 0 replies; 6+ messages in thread
From: Alex Deucher @ 2019-05-07 15:15 UTC (permalink / raw)
To: Evan Quan; +Cc: yanik-4pJZyYNR0dgOIzVOb1FTxg, Deucher, Alexander, amd-gfx list
On Tue, May 7, 2019 at 2:09 AM Evan Quan <evan.quan@amd.com> wrote:
>
> Update Vega10 top performance level power state accordingly
> on OD.
>
> Change-Id: Iaadeefb2904222bf5f4d54b39d7179ce53f92ac0
> Signed-off-by: Evan Quan <evan.quan@amd.com>
Series is:
Acked-by: Alex Deucher <alexander.deucher@amd.com>
> ---
> .../drm/amd/powerplay/hwmgr/vega10_hwmgr.c | 59 +++++++++++++++++++
> 1 file changed, 59 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> index f4b81f50b185..4878938ecf33 100644
> --- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> @@ -5009,6 +5009,63 @@ static bool vega10_check_clk_voltage_valid(struct pp_hwmgr *hwmgr,
> return true;
> }
>
> +static void vega10_odn_update_power_state(struct pp_hwmgr *hwmgr)
> +{
> + struct vega10_hwmgr *data = hwmgr->backend;
> + struct pp_power_state *ps = hwmgr->request_ps;
> + struct vega10_power_state *vega10_ps;
> + struct vega10_single_dpm_table *gfx_dpm_table =
> + &data->dpm_table.gfx_table;
> + struct vega10_single_dpm_table *soc_dpm_table =
> + &data->dpm_table.soc_table;
> + struct vega10_single_dpm_table *mem_dpm_table =
> + &data->dpm_table.mem_table;
> + int max_level;
> +
> + if (!ps)
> + return;
> +
> + vega10_ps = cast_phw_vega10_power_state(&ps->hardware);
> + max_level = vega10_ps->performance_level_count - 1;
> +
> + if (vega10_ps->performance_levels[max_level].gfx_clock !=
> + gfx_dpm_table->dpm_levels[gfx_dpm_table->count - 1].value)
> + vega10_ps->performance_levels[max_level].gfx_clock =
> + gfx_dpm_table->dpm_levels[gfx_dpm_table->count - 1].value;
> +
> + if (vega10_ps->performance_levels[max_level].soc_clock !=
> + soc_dpm_table->dpm_levels[soc_dpm_table->count - 1].value)
> + vega10_ps->performance_levels[max_level].soc_clock =
> + soc_dpm_table->dpm_levels[soc_dpm_table->count - 1].value;
> +
> + if (vega10_ps->performance_levels[max_level].mem_clock !=
> + mem_dpm_table->dpm_levels[mem_dpm_table->count - 1].value)
> + vega10_ps->performance_levels[max_level].mem_clock =
> + mem_dpm_table->dpm_levels[mem_dpm_table->count - 1].value;
> +
> + if (!hwmgr->ps)
> + return;
> +
> + ps = (struct pp_power_state *)((unsigned long)(hwmgr->ps) + hwmgr->ps_size * (hwmgr->num_ps - 1));
> + vega10_ps = cast_phw_vega10_power_state(&ps->hardware);
> + max_level = vega10_ps->performance_level_count - 1;
> +
> + if (vega10_ps->performance_levels[max_level].gfx_clock !=
> + gfx_dpm_table->dpm_levels[gfx_dpm_table->count - 1].value)
> + vega10_ps->performance_levels[max_level].gfx_clock =
> + gfx_dpm_table->dpm_levels[gfx_dpm_table->count - 1].value;
> +
> + if (vega10_ps->performance_levels[max_level].soc_clock !=
> + soc_dpm_table->dpm_levels[soc_dpm_table->count - 1].value)
> + vega10_ps->performance_levels[max_level].soc_clock =
> + soc_dpm_table->dpm_levels[soc_dpm_table->count - 1].value;
> +
> + if (vega10_ps->performance_levels[max_level].mem_clock !=
> + mem_dpm_table->dpm_levels[mem_dpm_table->count - 1].value)
> + vega10_ps->performance_levels[max_level].mem_clock =
> + mem_dpm_table->dpm_levels[mem_dpm_table->count - 1].value;
> +}
> +
> static void vega10_odn_update_soc_table(struct pp_hwmgr *hwmgr,
> enum PP_OD_DPM_TABLE_COMMAND type)
> {
> @@ -5079,6 +5136,7 @@ static void vega10_odn_update_soc_table(struct pp_hwmgr *hwmgr,
> podn_vdd_dep->entries[podn_vdd_dep->count - 1].vddInd;
> }
> }
> + vega10_odn_update_power_state(hwmgr);
> }
>
> static int vega10_odn_edit_dpm_table(struct pp_hwmgr *hwmgr,
> @@ -5113,6 +5171,7 @@ static int vega10_odn_edit_dpm_table(struct pp_hwmgr *hwmgr,
> } else if (PP_OD_RESTORE_DEFAULT_TABLE == type) {
> memcpy(&(data->dpm_table), &(data->golden_dpm_table), sizeof(struct vega10_dpm_table));
> vega10_odn_initial_default_setting(hwmgr);
> + vega10_odn_update_power_state(hwmgr);
> return 0;
> } else if (PP_OD_COMMIT_DPM_TABLE == type) {
> vega10_check_dpm_table_updated(hwmgr);
> --
> 2.21.0
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
* RE: [PATCH 2/4] drm/amd/powerplay: valid Vega10 DPMTABLE_OD_UPDATE_VDDC settings
[not found] ` <20190507060859.27650-2-evan.quan-5C7GfCeVMHo@public.gmane.org>
@ 2019-05-08 6:46 ` Quan, Evan
0 siblings, 0 replies; 6+ messages in thread
From: Quan, Evan @ 2019-05-08 6:46 UTC (permalink / raw)
To: Quan, Evan,
amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
Cc: yanik-4pJZyYNR0dgOIzVOb1FTxg@public.gmane.org, Deucher, Alexander
Just sent out a V2 version and drop this one.
> -----Original Message-----
> From: Evan Quan <evan.quan@amd.com>
> Sent: 2019年5月7日 14:09
> To: amd-gfx@lists.freedesktop.org
> Cc: yanik@yiannakis.de; Deucher, Alexander
> <Alexander.Deucher@amd.com>; Quan, Evan <Evan.Quan@amd.com>
> Subject: [PATCH 2/4] drm/amd/powerplay: valid Vega10
> DPMTABLE_OD_UPDATE_VDDC settings
>
> With user specified voltage(DPMTABLE_OD_UPDATE_VDDC), the AVFS will
> be disabled. However, the buggy code makes this actually not working as
> expected.
>
> Change-Id: Ifa83a6255bb3f6fa4bdb4de616521cb7bab6830a
> Signed-off-by: Evan Quan <evan.quan@amd.com>
> ---
> drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c | 7 +------
> 1 file changed, 1 insertion(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> index 138f9f9ea765..103f7e3f0783 100644
> --- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> @@ -2466,11 +2466,6 @@ static void
> vega10_check_dpm_table_updated(struct pp_hwmgr *hwmgr)
> return;
> }
> }
> -
> - if (data->need_update_dpm_table &
> DPMTABLE_OD_UPDATE_VDDC) {
> - data->need_update_dpm_table &=
> ~DPMTABLE_OD_UPDATE_VDDC;
> - data->need_update_dpm_table |=
> DPMTABLE_OD_UPDATE_SCLK | DPMTABLE_OD_UPDATE_MCLK;
> - }
> }
>
> /**
> @@ -3683,7 +3678,7 @@ static int vega10_set_power_state_tasks(struct
> pp_hwmgr *hwmgr,
>
> vega10_update_avfs(hwmgr);
>
> - data->need_update_dpm_table &= DPMTABLE_OD_UPDATE_VDDC;
> + data->need_update_dpm_table = 0;
>
> return 0;
> }
> --
> 2.21.0
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2019-05-08 6:46 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-05-07 6:08 [PATCH 1/4] drm/amd/powerplay: fix Vega10 mclk/socclk voltage link setup Evan Quan
[not found] ` <20190507060859.27650-1-evan.quan-5C7GfCeVMHo@public.gmane.org>
2019-05-07 6:08 ` [PATCH 2/4] drm/amd/powerplay: valid Vega10 DPMTABLE_OD_UPDATE_VDDC settings Evan Quan
[not found] ` <20190507060859.27650-2-evan.quan-5C7GfCeVMHo@public.gmane.org>
2019-05-08 6:46 ` Quan, Evan
2019-05-07 6:08 ` [PATCH 3/4] drm/amd/powerplay: avoid repeat AVFS enablement/disablement Evan Quan
2019-05-07 6:08 ` [PATCH 4/4] drm/amd/powerplay: update Vega10 power state on OD Evan Quan
[not found] ` <20190507060859.27650-4-evan.quan-5C7GfCeVMHo@public.gmane.org>
2019-05-07 15:15 ` Alex Deucher
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox