AMD-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/amd/powerplay: initialize uvd/vce powergate status v2
@ 2018-06-20  6:08 Evan Quan
       [not found] ` <1529474919-8491-1-git-send-email-evan.quan-5C7GfCeVMHo@public.gmane.org>
  0 siblings, 1 reply; 4+ messages in thread
From: Evan Quan @ 2018-06-20  6:08 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW; +Cc: Evan Quan

On UVD/VCE dpm disabled, the powergate status should be
set as true. So that we will not try to gate them(enable dpm
for now).

v2: added check for uvd/vce powergate status before gating

Change-Id: I569a5aa216b5e7d64a2b504f2ff98cc83ca802d5
Signed-off-by: Evan Quan <evan.quan@amd.com>
---
 drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.c | 23 ++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.c
index 45c8f2d..28b172e 100644
--- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.c
+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.c
@@ -777,6 +777,21 @@ static int vega12_set_allowed_featuresmask(struct pp_hwmgr *hwmgr)
 	return 0;
 }
 
+static void vega12_init_powergate_state(struct pp_hwmgr *hwmgr)
+{
+	struct vega12_hwmgr *data =
+			(struct vega12_hwmgr *)(hwmgr->backend);
+
+	data->uvd_power_gated = true;
+	data->vce_power_gated = true;
+
+	if (data->smu_features[GNLD_DPM_UVD].enabled)
+		data->uvd_power_gated = false;
+
+	if (data->smu_features[GNLD_DPM_VCE].enabled)
+		data->vce_power_gated = false;
+}
+
 static int vega12_enable_all_smu_features(struct pp_hwmgr *hwmgr)
 {
 	struct vega12_hwmgr *data =
@@ -801,6 +816,8 @@ static int vega12_enable_all_smu_features(struct pp_hwmgr *hwmgr)
 		}
 	}
 
+	vega12_init_powergate_state(hwmgr);
+
 	return 0;
 }
 
@@ -1985,6 +2002,9 @@ static void vega12_power_gate_vce(struct pp_hwmgr *hwmgr, bool bgate)
 {
 	struct vega12_hwmgr *data = (struct vega12_hwmgr *)(hwmgr->backend);
 
+	if (data->vce_power_gated == bgate)
+		return 0;
+
 	data->vce_power_gated = bgate;
 	vega12_enable_disable_vce_dpm(hwmgr, !bgate);
 }
@@ -1993,6 +2013,9 @@ static void vega12_power_gate_uvd(struct pp_hwmgr *hwmgr, bool bgate)
 {
 	struct vega12_hwmgr *data = (struct vega12_hwmgr *)(hwmgr->backend);
 
+	if (data->uvd_power_gated == bgate)
+		return 0;
+
 	data->uvd_power_gated = bgate;
 	vega12_enable_disable_uvd_dpm(hwmgr, !bgate);
 }
-- 
2.7.4

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 1/2] drm/amd/powerplay: correct smc display config for multi monitor
       [not found] ` <1529474919-8491-1-git-send-email-evan.quan-5C7GfCeVMHo@public.gmane.org>
@ 2018-06-20  6:08   ` Evan Quan
  2018-06-20  6:08   ` [PATCH 2/2] drm/amd/powerplay: drop unnecessary uclk hard min setting Evan Quan
  2018-06-20  6:39   ` [PATCH] drm/amd/powerplay: initialize uvd/vce powergate status v2 Quan, Evan
  2 siblings, 0 replies; 4+ messages in thread
From: Evan Quan @ 2018-06-20  6:08 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW; +Cc: Evan Quan

Need to take into account multi-head with synced displays.

Change-Id: I2ad53f47ce1dff0fa8f6ae944986567443cca04e
Signed-off-by: Evan Quan <evan.quan@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
---
 drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.c
index 28b172e..df91dde 100644
--- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.c
+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.c
@@ -1401,7 +1401,8 @@ static int vega12_notify_smc_display_config_after_ps_adjustment(
 	struct pp_display_clock_request clock_req;
 	uint32_t clk_request;
 
-	if (hwmgr->display_config->num_display > 1)
+	if ((hwmgr->display_config->num_display > 1) &&
+		!hwmgr->display_config->multi_monitor_in_sync)
 		vega12_notify_smc_display_change(hwmgr, false);
 	else
 		vega12_notify_smc_display_change(hwmgr, true);
-- 
2.7.4

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/2] drm/amd/powerplay: drop unnecessary uclk hard min setting
       [not found] ` <1529474919-8491-1-git-send-email-evan.quan-5C7GfCeVMHo@public.gmane.org>
  2018-06-20  6:08   ` [PATCH 1/2] drm/amd/powerplay: correct smc display config for multi monitor Evan Quan
@ 2018-06-20  6:08   ` Evan Quan
  2018-06-20  6:39   ` [PATCH] drm/amd/powerplay: initialize uvd/vce powergate status v2 Quan, Evan
  2 siblings, 0 replies; 4+ messages in thread
From: Evan Quan @ 2018-06-20  6:08 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW; +Cc: Evan Quan

We don't need to set uclk hard min here because this will
be set with other clocks on power state change.

Change-Id: I05d28f881f5cff5108b9dea36e95a917d58c123a
Signed-off-by: Evan Quan <evan.quan@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
---
 drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.c | 10 ----------
 1 file changed, 10 deletions(-)

diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.c
index df91dde..8e2efa6 100644
--- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.c
+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.c
@@ -1399,7 +1399,6 @@ static int vega12_notify_smc_display_config_after_ps_adjustment(
 			(struct vega12_hwmgr *)(hwmgr->backend);
 	struct PP_Clocks min_clocks = {0};
 	struct pp_display_clock_request clock_req;
-	uint32_t clk_request;
 
 	if ((hwmgr->display_config->num_display > 1) &&
 		!hwmgr->display_config->multi_monitor_in_sync)
@@ -1427,15 +1426,6 @@ static int vega12_notify_smc_display_config_after_ps_adjustment(
 		}
 	}
 
-	if (data->smu_features[GNLD_DPM_UCLK].enabled) {
-		clk_request = (PPCLK_UCLK << 16) | (min_clocks.memoryClock) / 100;
-		PP_ASSERT_WITH_CODE(
-			smum_send_msg_to_smc_with_parameter(hwmgr, PPSMC_MSG_SetHardMinByFreq, clk_request) == 0,
-			"[PhwVega12_NotifySMCDisplayConfigAfterPowerStateAdjustment] Attempt to set UCLK HardMin Failed!",
-			return -1);
-		data->dpm_table.mem_table.dpm_state.hard_min_level = min_clocks.memoryClock;
-	}
-
 	return 0;
 }
 
-- 
2.7.4

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* RE: [PATCH] drm/amd/powerplay: initialize uvd/vce powergate status v2
       [not found] ` <1529474919-8491-1-git-send-email-evan.quan-5C7GfCeVMHo@public.gmane.org>
  2018-06-20  6:08   ` [PATCH 1/2] drm/amd/powerplay: correct smc display config for multi monitor Evan Quan
  2018-06-20  6:08   ` [PATCH 2/2] drm/amd/powerplay: drop unnecessary uclk hard min setting Evan Quan
@ 2018-06-20  6:39   ` Quan, Evan
  2 siblings, 0 replies; 4+ messages in thread
From: Quan, Evan @ 2018-06-20  6:39 UTC (permalink / raw)
  To: Quan, Evan,
	amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org

> that we will not try to gate them(enable dpm for now).
Sorry, there seems a typo in the description(enable -> disable).
I will send out another patch with this typo addressed.

Regards,
Evan
> -----Original Message-----
> From: Evan Quan [mailto:evan.quan@amd.com]
> Sent: Wednesday, June 20, 2018 2:09 PM
> To: amd-gfx@lists.freedesktop.org
> Cc: Quan, Evan <Evan.Quan@amd.com>
> Subject: [PATCH] drm/amd/powerplay: initialize uvd/vce powergate status
> v2
> 
> On UVD/VCE dpm disabled, the powergate status should be set as true. So
> that we will not try to gate them(enable dpm for now).
> 
> v2: added check for uvd/vce powergate status before gating
> 
> Change-Id: I569a5aa216b5e7d64a2b504f2ff98cc83ca802d5
> Signed-off-by: Evan Quan <evan.quan@amd.com>
> ---
>  drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.c | 23
> ++++++++++++++++++++++
>  1 file changed, 23 insertions(+)
> 
> diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.c
> b/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.c
> index 45c8f2d..28b172e 100644
> --- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.c
> +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.c
> @@ -777,6 +777,21 @@ static int vega12_set_allowed_featuresmask(struct
> pp_hwmgr *hwmgr)
>  	return 0;
>  }
> 
> +static void vega12_init_powergate_state(struct pp_hwmgr *hwmgr) {
> +	struct vega12_hwmgr *data =
> +			(struct vega12_hwmgr *)(hwmgr->backend);
> +
> +	data->uvd_power_gated = true;
> +	data->vce_power_gated = true;
> +
> +	if (data->smu_features[GNLD_DPM_UVD].enabled)
> +		data->uvd_power_gated = false;
> +
> +	if (data->smu_features[GNLD_DPM_VCE].enabled)
> +		data->vce_power_gated = false;
> +}
> +
>  static int vega12_enable_all_smu_features(struct pp_hwmgr *hwmgr)  {
>  	struct vega12_hwmgr *data =
> @@ -801,6 +816,8 @@ static int vega12_enable_all_smu_features(struct
> pp_hwmgr *hwmgr)
>  		}
>  	}
> 
> +	vega12_init_powergate_state(hwmgr);
> +
>  	return 0;
>  }
> 
> @@ -1985,6 +2002,9 @@ static void vega12_power_gate_vce(struct
> pp_hwmgr *hwmgr, bool bgate)  {
>  	struct vega12_hwmgr *data = (struct vega12_hwmgr *)(hwmgr-
> >backend);
> 
> +	if (data->vce_power_gated == bgate)
> +		return 0;
> +
>  	data->vce_power_gated = bgate;
>  	vega12_enable_disable_vce_dpm(hwmgr, !bgate);  } @@ -1993,6
> +2013,9 @@ static void vega12_power_gate_uvd(struct pp_hwmgr *hwmgr,
> bool bgate)  {
>  	struct vega12_hwmgr *data = (struct vega12_hwmgr *)(hwmgr-
> >backend);
> 
> +	if (data->uvd_power_gated == bgate)
> +		return 0;
> +
>  	data->uvd_power_gated = bgate;
>  	vega12_enable_disable_uvd_dpm(hwmgr, !bgate);  }
> --
> 2.7.4

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-06-20  6:39 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-06-20  6:08 [PATCH] drm/amd/powerplay: initialize uvd/vce powergate status v2 Evan Quan
     [not found] ` <1529474919-8491-1-git-send-email-evan.quan-5C7GfCeVMHo@public.gmane.org>
2018-06-20  6:08   ` [PATCH 1/2] drm/amd/powerplay: correct smc display config for multi monitor Evan Quan
2018-06-20  6:08   ` [PATCH 2/2] drm/amd/powerplay: drop unnecessary uclk hard min setting Evan Quan
2018-06-20  6:39   ` [PATCH] drm/amd/powerplay: initialize uvd/vce powergate status v2 Quan, Evan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox