All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/3] drm/amdgpu: add mmhub powergating set by smu
@ 2018-02-06 20:41 Eric Huang
       [not found] ` <1517949689-9339-1-git-send-email-JinHuiEric.Huang-5C7GfCeVMHo@public.gmane.org>
  0 siblings, 1 reply; 7+ messages in thread
From: Eric Huang @ 2018-02-06 20:41 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW; +Cc: Eric Huang

PSP will disable legacy mmhub PG setting that is programming
registers, and drive will use SMC message to
set it up.

Signed-off-by: Eric Huang <JinHuiEric.Huang@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h        | 4 ++++
 drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c        | 3 +++
 drivers/gpu/drm/amd/include/kgd_pp_interface.h | 1 +
 3 files changed, 8 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h
index c489c69..bd745a4 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h
@@ -375,6 +375,10 @@ enum amdgpu_pcie_gen {
 		((adev)->powerplay.pp_funcs->odn_edit_dpm_table(\
 			(adev)->powerplay.pp_handle, type, parameter, size))
 
+#define amdgpu_dpm_set_mmhub_powergating_by_smu(adev) \
+		((adev)->powerplay.pp_funcs->set_mmhub_powergating_by_smu( \
+		(adev)->powerplay.pp_handle))
+
 struct amdgpu_dpm {
 	struct amdgpu_ps        *ps;
 	/* number of valid power states */
diff --git a/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c b/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c
index 82f8bc8..d0ade9f 100644
--- a/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c
@@ -471,6 +471,9 @@ void mmhub_v1_0_update_power_gating(struct amdgpu_device *adev,
 						RENG_EXECUTE_ON_REG_UPDATE, 1);
 		WREG32_SOC15(MMHUB, 0, mmPCTL1_RENG_EXECUTE, pctl1_reng_execute);
 
+		if (adev->powerplay.pp_funcs->set_mmhub_powergating_by_smu)
+			amdgpu_dpm_set_mmhub_powergating_by_smu(adev);
+
 	} else {
 		pctl0_reng_execute = REG_SET_FIELD(pctl0_reng_execute,
 						PCTL0_RENG_EXECUTE,
diff --git a/drivers/gpu/drm/amd/include/kgd_pp_interface.h b/drivers/gpu/drm/amd/include/kgd_pp_interface.h
index 1fc995b..4f69fe8 100644
--- a/drivers/gpu/drm/amd/include/kgd_pp_interface.h
+++ b/drivers/gpu/drm/amd/include/kgd_pp_interface.h
@@ -310,6 +310,7 @@ struct amd_pm_funcs {
 	int (*get_power_profile_mode)(void *handle, char *buf);
 	int (*set_power_profile_mode)(void *handle, long *input, uint32_t size);
 	int (*odn_edit_dpm_table)(void *handle, uint32_t type, long *input, uint32_t size);
+	int (*set_mmhub_powergating_by_smu)(void *handle);
 };
 
 #endif
-- 
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] 7+ messages in thread

* [PATCH 2/3] drm/amd/powerplay: add mmhub powergating by smu in powerplay
       [not found] ` <1517949689-9339-1-git-send-email-JinHuiEric.Huang-5C7GfCeVMHo@public.gmane.org>
@ 2018-02-06 20:41   ` Eric Huang
       [not found]     ` <1517949689-9339-2-git-send-email-JinHuiEric.Huang-5C7GfCeVMHo@public.gmane.org>
  2018-02-06 20:41   ` [PATCH 3/3] drm/amd/powerplay: implement set_mmhub_powergating_by_smu for Raven Eric Huang
  2018-02-06 20:50   ` [PATCH 1/3] drm/amdgpu: add mmhub powergating set by smu Deucher, Alexander
  2 siblings, 1 reply; 7+ messages in thread
From: Eric Huang @ 2018-02-06 20:41 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW; +Cc: Eric Huang

Signed-off-by: Eric Huang <JinHuiEric.Huang@amd.com>
---
 drivers/gpu/drm/amd/powerplay/amd_powerplay.c | 22 ++++++++++++++++++++++
 drivers/gpu/drm/amd/powerplay/inc/hwmgr.h     |  1 +
 2 files changed, 23 insertions(+)

diff --git a/drivers/gpu/drm/amd/powerplay/amd_powerplay.c b/drivers/gpu/drm/amd/powerplay/amd_powerplay.c
index c571f8e..7c4b88a 100644
--- a/drivers/gpu/drm/amd/powerplay/amd_powerplay.c
+++ b/drivers/gpu/drm/amd/powerplay/amd_powerplay.c
@@ -1475,6 +1475,27 @@ static int pp_get_display_mode_validation_clocks(void *handle,
 	return ret;
 }
 
+static int pp_set_mmhub_powergating_by_smu(void *handle)
+{
+	struct pp_hwmgr *hwmgr;
+	struct pp_instance *pp_handle = (struct pp_instance *)handle;
+	int ret = 0;
+
+	ret = pp_check(pp_handle);
+
+	if (ret)
+		return ret;
+
+	hwmgr = pp_handle->hwmgr;
+
+	if (hwmgr->hwmgr_func->set_mmhub_powergating_by_smu == NULL) {
+		pr_info("%s was not implemented.\n", __func__);
+		return 0;
+	}
+
+	return hwmgr->hwmgr_func->set_mmhub_powergating_by_smu(hwmgr);
+}
+
 const struct amd_pm_funcs pp_dpm_funcs = {
 	.load_firmware = pp_dpm_load_fw,
 	.wait_for_fw_loading_complete = pp_dpm_fw_loading_complete,
@@ -1521,4 +1542,5 @@ const struct amd_pm_funcs pp_dpm_funcs = {
 	.set_watermarks_for_clocks_ranges = pp_set_watermarks_for_clocks_ranges,
 	.display_clock_voltage_request = pp_display_clock_voltage_request,
 	.get_display_mode_validation_clocks = pp_get_display_mode_validation_clocks,
+	.set_mmhub_powergating_by_smu = pp_set_mmhub_powergating_by_smu,
 };
diff --git a/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h b/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h
index 5512dc2..47a1083 100644
--- a/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h
+++ b/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h
@@ -347,6 +347,7 @@ struct pp_hwmgr_func {
 	int (*odn_edit_dpm_table)(struct pp_hwmgr *hwmgr,
 					enum PP_OD_DPM_TABLE_COMMAND type,
 					long *input, uint32_t size);
+	int (*set_mmhub_powergating_by_smu)(struct pp_hwmgr *hwmgr);
 };
 
 struct pp_table_func {
-- 
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] 7+ messages in thread

* [PATCH 3/3] drm/amd/powerplay: implement set_mmhub_powergating_by_smu for Raven
       [not found] ` <1517949689-9339-1-git-send-email-JinHuiEric.Huang-5C7GfCeVMHo@public.gmane.org>
  2018-02-06 20:41   ` [PATCH 2/3] drm/amd/powerplay: add mmhub powergating by smu in powerplay Eric Huang
@ 2018-02-06 20:41   ` Eric Huang
       [not found]     ` <1517949689-9339-3-git-send-email-JinHuiEric.Huang-5C7GfCeVMHo@public.gmane.org>
  2018-02-06 20:50   ` [PATCH 1/3] drm/amdgpu: add mmhub powergating set by smu Deucher, Alexander
  2 siblings, 1 reply; 7+ messages in thread
From: Eric Huang @ 2018-02-06 20:41 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW; +Cc: Eric Huang

Signed-off-by: Eric Huang <JinHuiEric.Huang@amd.com>
---
 drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c | 6 ++++++
 drivers/gpu/drm/amd/powerplay/inc/rv_ppsmc.h   | 3 ++-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c
index 409a56b..8ddfb78 100644
--- a/drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c
+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c
@@ -1026,6 +1026,11 @@ static int rv_read_sensor(struct pp_hwmgr *hwmgr, int idx,
 	return ret;
 }
 
+static int rv_set_mmhub_powergating_by_smu(struct pp_hwmgr *hwmgr)
+{
+	return smum_send_msg_to_smc(hwmgr, PPSMC_MSG_PowerGateMmHub);
+}
+
 static const struct pp_hwmgr_func rv_hwmgr_funcs = {
 	.backend_init = rv_hwmgr_backend_init,
 	.backend_fini = rv_hwmgr_backend_fini,
@@ -1059,6 +1064,7 @@ static const struct pp_hwmgr_func rv_hwmgr_funcs = {
 	.asic_setup = rv_setup_asic_task,
 	.power_state_set = rv_set_power_state_tasks,
 	.dynamic_state_management_disable = rv_disable_dpm_tasks,
+	.set_mmhub_powergating_by_smu = rv_set_mmhub_powergating_by_smu,
 };
 
 int rv_init_function_pointers(struct pp_hwmgr *hwmgr)
diff --git a/drivers/gpu/drm/amd/powerplay/inc/rv_ppsmc.h b/drivers/gpu/drm/amd/powerplay/inc/rv_ppsmc.h
index f15f4df..426bff2 100644
--- a/drivers/gpu/drm/amd/powerplay/inc/rv_ppsmc.h
+++ b/drivers/gpu/drm/amd/powerplay/inc/rv_ppsmc.h
@@ -80,7 +80,8 @@
 #define PPSMC_MSG_SetSoftMaxSocclkByFreq        0x32
 #define PPSMC_MSG_SetSoftMaxFclkByFreq          0x33
 #define PPSMC_MSG_SetSoftMaxVcn                 0x34
-#define PPSMC_Message_Count                     0x35
+#define PPSMC_MSG_PowerGateMmHub                0x35
+#define PPSMC_Message_Count                     0x36
 
 
 typedef uint16_t PPSMC_Result;
-- 
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] 7+ messages in thread

* RE: [PATCH 1/3] drm/amdgpu: add mmhub powergating set by smu
       [not found] ` <1517949689-9339-1-git-send-email-JinHuiEric.Huang-5C7GfCeVMHo@public.gmane.org>
  2018-02-06 20:41   ` [PATCH 2/3] drm/amd/powerplay: add mmhub powergating by smu in powerplay Eric Huang
  2018-02-06 20:41   ` [PATCH 3/3] drm/amd/powerplay: implement set_mmhub_powergating_by_smu for Raven Eric Huang
@ 2018-02-06 20:50   ` Deucher, Alexander
       [not found]     ` <BN6PR12MB165221B257BD806DEF70C236F7FD0-/b2+HYfkarQqUD6E6FAiowdYzm3356FpvxpqHgZTriW3zl9H0oFU5g@public.gmane.org>
  2 siblings, 1 reply; 7+ messages in thread
From: Deucher, Alexander @ 2018-02-06 20:50 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW; +Cc: Huang, JinHuiEric

> -----Original Message-----
> From: amd-gfx [mailto:amd-gfx-bounces@lists.freedesktop.org] On Behalf
> Of Eric Huang
> Sent: Tuesday, February 6, 2018 3:41 PM
> To: amd-gfx@lists.freedesktop.org
> Cc: Huang, JinHuiEric <JinHuiEric.Huang@amd.com>
> Subject: [PATCH 1/3] drm/amdgpu: add mmhub powergating set by smu
> 
> PSP will disable legacy mmhub PG setting that is programming registers, and
> drive will use SMC message to set it up.

Split this into two patches, one to add the new dpm interface, and one to add the change to mmhub_v1_0.c.  I guess presumably there's no way to disable it once it's been enabled?

With the above addressed:
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>

> 
> Signed-off-by: Eric Huang <JinHuiEric.Huang@amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h        | 4 ++++
>  drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c        | 3 +++
>  drivers/gpu/drm/amd/include/kgd_pp_interface.h | 1 +
>  3 files changed, 8 insertions(+)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h
> index c489c69..bd745a4 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h
> @@ -375,6 +375,10 @@ enum amdgpu_pcie_gen {
>  		((adev)->powerplay.pp_funcs->odn_edit_dpm_table(\
>  			(adev)->powerplay.pp_handle, type, parameter,
> size))
> 
> +#define amdgpu_dpm_set_mmhub_powergating_by_smu(adev) \
> +		((adev)->powerplay.pp_funcs-
> >set_mmhub_powergating_by_smu( \
> +		(adev)->powerplay.pp_handle))
> +
>  struct amdgpu_dpm {
>  	struct amdgpu_ps        *ps;
>  	/* number of valid power states */
> diff --git a/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c
> b/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c
> index 82f8bc8..d0ade9f 100644
> --- a/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c
> @@ -471,6 +471,9 @@ void mmhub_v1_0_update_power_gating(struct
> amdgpu_device *adev,
> 
> 	RENG_EXECUTE_ON_REG_UPDATE, 1);
>  		WREG32_SOC15(MMHUB, 0, mmPCTL1_RENG_EXECUTE,
> pctl1_reng_execute);
> 
> +		if (adev->powerplay.pp_funcs-
> >set_mmhub_powergating_by_smu)
> +
> 	amdgpu_dpm_set_mmhub_powergating_by_smu(adev);
> +
>  	} else {
>  		pctl0_reng_execute = REG_SET_FIELD(pctl0_reng_execute,
>  						PCTL0_RENG_EXECUTE,
> diff --git a/drivers/gpu/drm/amd/include/kgd_pp_interface.h
> b/drivers/gpu/drm/amd/include/kgd_pp_interface.h
> index 1fc995b..4f69fe8 100644
> --- a/drivers/gpu/drm/amd/include/kgd_pp_interface.h
> +++ b/drivers/gpu/drm/amd/include/kgd_pp_interface.h
> @@ -310,6 +310,7 @@ struct amd_pm_funcs {
>  	int (*get_power_profile_mode)(void *handle, char *buf);
>  	int (*set_power_profile_mode)(void *handle, long *input, uint32_t
> size);
>  	int (*odn_edit_dpm_table)(void *handle, uint32_t type, long *input,
> uint32_t size);
> +	int (*set_mmhub_powergating_by_smu)(void *handle);
>  };
> 
>  #endif
> --
> 2.7.4
> 
> _______________________________________________
> 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] 7+ messages in thread

* RE: [PATCH 2/3] drm/amd/powerplay: add mmhub powergating by smu in powerplay
       [not found]     ` <1517949689-9339-2-git-send-email-JinHuiEric.Huang-5C7GfCeVMHo@public.gmane.org>
@ 2018-02-06 20:54       ` Deucher, Alexander
  0 siblings, 0 replies; 7+ messages in thread
From: Deucher, Alexander @ 2018-02-06 20:54 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW; +Cc: Huang, JinHuiEric

> -----Original Message-----
> From: amd-gfx [mailto:amd-gfx-bounces@lists.freedesktop.org] On Behalf
> Of Eric Huang
> Sent: Tuesday, February 6, 2018 3:41 PM
> To: amd-gfx@lists.freedesktop.org
> Cc: Huang, JinHuiEric <JinHuiEric.Huang@amd.com>
> Subject: [PATCH 2/3] drm/amd/powerplay: add mmhub powergating by smu
> in powerplay
> 
> Signed-off-by: Eric Huang <JinHuiEric.Huang@amd.com>

Please add a basic patch description.  With that fixed:
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>


> ---
>  drivers/gpu/drm/amd/powerplay/amd_powerplay.c | 22
> ++++++++++++++++++++++
>  drivers/gpu/drm/amd/powerplay/inc/hwmgr.h     |  1 +
>  2 files changed, 23 insertions(+)
> 
> diff --git a/drivers/gpu/drm/amd/powerplay/amd_powerplay.c
> b/drivers/gpu/drm/amd/powerplay/amd_powerplay.c
> index c571f8e..7c4b88a 100644
> --- a/drivers/gpu/drm/amd/powerplay/amd_powerplay.c
> +++ b/drivers/gpu/drm/amd/powerplay/amd_powerplay.c
> @@ -1475,6 +1475,27 @@ static int
> pp_get_display_mode_validation_clocks(void *handle,
>  	return ret;
>  }
> 
> +static int pp_set_mmhub_powergating_by_smu(void *handle) {
> +	struct pp_hwmgr *hwmgr;
> +	struct pp_instance *pp_handle = (struct pp_instance *)handle;
> +	int ret = 0;
> +
> +	ret = pp_check(pp_handle);
> +
> +	if (ret)
> +		return ret;
> +
> +	hwmgr = pp_handle->hwmgr;
> +
> +	if (hwmgr->hwmgr_func->set_mmhub_powergating_by_smu ==
> NULL) {
> +		pr_info("%s was not implemented.\n", __func__);
> +		return 0;
> +	}
> +
> +	return hwmgr->hwmgr_func-
> >set_mmhub_powergating_by_smu(hwmgr);
> +}
> +
>  const struct amd_pm_funcs pp_dpm_funcs = {
>  	.load_firmware = pp_dpm_load_fw,
>  	.wait_for_fw_loading_complete = pp_dpm_fw_loading_complete,
> @@ -1521,4 +1542,5 @@ const struct amd_pm_funcs pp_dpm_funcs = {
>  	.set_watermarks_for_clocks_ranges =
> pp_set_watermarks_for_clocks_ranges,
>  	.display_clock_voltage_request =
> pp_display_clock_voltage_request,
>  	.get_display_mode_validation_clocks =
> pp_get_display_mode_validation_clocks,
> +	.set_mmhub_powergating_by_smu =
> pp_set_mmhub_powergating_by_smu,
>  };
> diff --git a/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h
> b/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h
> index 5512dc2..47a1083 100644
> --- a/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h
> +++ b/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h
> @@ -347,6 +347,7 @@ struct pp_hwmgr_func {
>  	int (*odn_edit_dpm_table)(struct pp_hwmgr *hwmgr,
>  					enum
> PP_OD_DPM_TABLE_COMMAND type,
>  					long *input, uint32_t size);
> +	int (*set_mmhub_powergating_by_smu)(struct pp_hwmgr
> *hwmgr);
>  };
> 
>  struct pp_table_func {
> --
> 2.7.4
> 
> _______________________________________________
> 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] 7+ messages in thread

* RE: [PATCH 3/3] drm/amd/powerplay: implement set_mmhub_powergating_by_smu for Raven
       [not found]     ` <1517949689-9339-3-git-send-email-JinHuiEric.Huang-5C7GfCeVMHo@public.gmane.org>
@ 2018-02-06 20:55       ` Deucher, Alexander
  0 siblings, 0 replies; 7+ messages in thread
From: Deucher, Alexander @ 2018-02-06 20:55 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW; +Cc: Huang, JinHuiEric

> -----Original Message-----
> From: amd-gfx [mailto:amd-gfx-bounces@lists.freedesktop.org] On Behalf
> Of Eric Huang
> Sent: Tuesday, February 6, 2018 3:41 PM
> To: amd-gfx@lists.freedesktop.org
> Cc: Huang, JinHuiEric <JinHuiEric.Huang@amd.com>
> Subject: [PATCH 3/3] drm/amd/powerplay: implement
> set_mmhub_powergating_by_smu for Raven
> 

Please add a basic patch description.  With that fixed:
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>


> Signed-off-by: Eric Huang <JinHuiEric.Huang@amd.com>
> ---
>  drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c | 6 ++++++
>  drivers/gpu/drm/amd/powerplay/inc/rv_ppsmc.h   | 3 ++-
>  2 files changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c
> b/drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c
> index 409a56b..8ddfb78 100644
> --- a/drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c
> +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c
> @@ -1026,6 +1026,11 @@ static int rv_read_sensor(struct pp_hwmgr
> *hwmgr, int idx,
>  	return ret;
>  }
> 
> +static int rv_set_mmhub_powergating_by_smu(struct pp_hwmgr *hwmgr)
> {
> +	return smum_send_msg_to_smc(hwmgr,
> PPSMC_MSG_PowerGateMmHub); }
> +
>  static const struct pp_hwmgr_func rv_hwmgr_funcs = {
>  	.backend_init = rv_hwmgr_backend_init,
>  	.backend_fini = rv_hwmgr_backend_fini, @@ -1059,6 +1064,7 @@
> static const struct pp_hwmgr_func rv_hwmgr_funcs = {
>  	.asic_setup = rv_setup_asic_task,
>  	.power_state_set = rv_set_power_state_tasks,
>  	.dynamic_state_management_disable = rv_disable_dpm_tasks,
> +	.set_mmhub_powergating_by_smu =
> rv_set_mmhub_powergating_by_smu,
>  };
> 
>  int rv_init_function_pointers(struct pp_hwmgr *hwmgr) diff --git
> a/drivers/gpu/drm/amd/powerplay/inc/rv_ppsmc.h
> b/drivers/gpu/drm/amd/powerplay/inc/rv_ppsmc.h
> index f15f4df..426bff2 100644
> --- a/drivers/gpu/drm/amd/powerplay/inc/rv_ppsmc.h
> +++ b/drivers/gpu/drm/amd/powerplay/inc/rv_ppsmc.h
> @@ -80,7 +80,8 @@
>  #define PPSMC_MSG_SetSoftMaxSocclkByFreq        0x32
>  #define PPSMC_MSG_SetSoftMaxFclkByFreq          0x33
>  #define PPSMC_MSG_SetSoftMaxVcn                 0x34
> -#define PPSMC_Message_Count                     0x35
> +#define PPSMC_MSG_PowerGateMmHub                0x35
> +#define PPSMC_Message_Count                     0x36
> 
> 
>  typedef uint16_t PPSMC_Result;
> --
> 2.7.4
> 
> _______________________________________________
> 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] 7+ messages in thread

* Re: [PATCH 1/3] drm/amdgpu: add mmhub powergating set by smu
       [not found]     ` <BN6PR12MB165221B257BD806DEF70C236F7FD0-/b2+HYfkarQqUD6E6FAiowdYzm3356FpvxpqHgZTriW3zl9H0oFU5g@public.gmane.org>
@ 2018-02-06 21:31       ` Eric Huang
  0 siblings, 0 replies; 7+ messages in thread
From: Eric Huang @ 2018-02-06 21:31 UTC (permalink / raw)
  To: Deucher, Alexander, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW

Yes. SMU only provides enabling message.

Thanks,
Eric

On 2018-02-06 03:50 PM, Deucher, Alexander wrote:
>> -----Original Message-----
>> From: amd-gfx [mailto:amd-gfx-bounces@lists.freedesktop.org] On Behalf
>> Of Eric Huang
>> Sent: Tuesday, February 6, 2018 3:41 PM
>> To: amd-gfx@lists.freedesktop.org
>> Cc: Huang, JinHuiEric <JinHuiEric.Huang@amd.com>
>> Subject: [PATCH 1/3] drm/amdgpu: add mmhub powergating set by smu
>>
>> PSP will disable legacy mmhub PG setting that is programming registers, and
>> drive will use SMC message to set it up.
> Split this into two patches, one to add the new dpm interface, and one to add the change to mmhub_v1_0.c.  I guess presumably there's no way to disable it once it's been enabled?
>
> With the above addressed:
> Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
>
>> Signed-off-by: Eric Huang <JinHuiEric.Huang@amd.com>
>> ---
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h        | 4 ++++
>>   drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c        | 3 +++
>>   drivers/gpu/drm/amd/include/kgd_pp_interface.h | 1 +
>>   3 files changed, 8 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h
>> index c489c69..bd745a4 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h
>> @@ -375,6 +375,10 @@ enum amdgpu_pcie_gen {
>>   		((adev)->powerplay.pp_funcs->odn_edit_dpm_table(\
>>   			(adev)->powerplay.pp_handle, type, parameter,
>> size))
>>
>> +#define amdgpu_dpm_set_mmhub_powergating_by_smu(adev) \
>> +		((adev)->powerplay.pp_funcs-
>>> set_mmhub_powergating_by_smu( \
>> +		(adev)->powerplay.pp_handle))
>> +
>>   struct amdgpu_dpm {
>>   	struct amdgpu_ps        *ps;
>>   	/* number of valid power states */
>> diff --git a/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c
>> b/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c
>> index 82f8bc8..d0ade9f 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c
>> @@ -471,6 +471,9 @@ void mmhub_v1_0_update_power_gating(struct
>> amdgpu_device *adev,
>>
>> 	RENG_EXECUTE_ON_REG_UPDATE, 1);
>>   		WREG32_SOC15(MMHUB, 0, mmPCTL1_RENG_EXECUTE,
>> pctl1_reng_execute);
>>
>> +		if (adev->powerplay.pp_funcs-
>>> set_mmhub_powergating_by_smu)
>> +
>> 	amdgpu_dpm_set_mmhub_powergating_by_smu(adev);
>> +
>>   	} else {
>>   		pctl0_reng_execute = REG_SET_FIELD(pctl0_reng_execute,
>>   						PCTL0_RENG_EXECUTE,
>> diff --git a/drivers/gpu/drm/amd/include/kgd_pp_interface.h
>> b/drivers/gpu/drm/amd/include/kgd_pp_interface.h
>> index 1fc995b..4f69fe8 100644
>> --- a/drivers/gpu/drm/amd/include/kgd_pp_interface.h
>> +++ b/drivers/gpu/drm/amd/include/kgd_pp_interface.h
>> @@ -310,6 +310,7 @@ struct amd_pm_funcs {
>>   	int (*get_power_profile_mode)(void *handle, char *buf);
>>   	int (*set_power_profile_mode)(void *handle, long *input, uint32_t
>> size);
>>   	int (*odn_edit_dpm_table)(void *handle, uint32_t type, long *input,
>> uint32_t size);
>> +	int (*set_mmhub_powergating_by_smu)(void *handle);
>>   };
>>
>>   #endif
>> --
>> 2.7.4
>>
>> _______________________________________________
>> 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] 7+ messages in thread

end of thread, other threads:[~2018-02-06 21:31 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-06 20:41 [PATCH 1/3] drm/amdgpu: add mmhub powergating set by smu Eric Huang
     [not found] ` <1517949689-9339-1-git-send-email-JinHuiEric.Huang-5C7GfCeVMHo@public.gmane.org>
2018-02-06 20:41   ` [PATCH 2/3] drm/amd/powerplay: add mmhub powergating by smu in powerplay Eric Huang
     [not found]     ` <1517949689-9339-2-git-send-email-JinHuiEric.Huang-5C7GfCeVMHo@public.gmane.org>
2018-02-06 20:54       ` Deucher, Alexander
2018-02-06 20:41   ` [PATCH 3/3] drm/amd/powerplay: implement set_mmhub_powergating_by_smu for Raven Eric Huang
     [not found]     ` <1517949689-9339-3-git-send-email-JinHuiEric.Huang-5C7GfCeVMHo@public.gmane.org>
2018-02-06 20:55       ` Deucher, Alexander
2018-02-06 20:50   ` [PATCH 1/3] drm/amdgpu: add mmhub powergating set by smu Deucher, Alexander
     [not found]     ` <BN6PR12MB165221B257BD806DEF70C236F7FD0-/b2+HYfkarQqUD6E6FAiowdYzm3356FpvxpqHgZTriW3zl9H0oFU5g@public.gmane.org>
2018-02-06 21:31       ` Eric Huang

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.