* [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.