Kent
KENT RUSSELL
Sr. Software Engineer | Linux Compute Kernel
1 Commerce Valley Drive East
Markham, ON L3T 7X6
O +(1) 289-695-2122 | Ext 72122
From: Quan, Evan
Sent: Monday, April 1, 2019 10:19:33 PM
To: Russell, Kent; amd-gfx@xxxxxxxxxxxxxxxxxxxxx
Cc: Russell, Kent
Subject: RE: [PATCH 1/2] drm/amdgpu: Allow switching to CUSTOM profile on Vega10 v2
Sent: Monday, April 1, 2019 10:19:33 PM
To: Russell, Kent; amd-gfx@xxxxxxxxxxxxxxxxxxxxx
Cc: Russell, Kent
Subject: RE: [PATCH 1/2] drm/amdgpu: Allow switching to CUSTOM profile on Vega10 v2
Can you confirm that the save custom profile settings are not lost after resume?
With that confirmed, the patch is Reviewed-by: Evan Quan <evan.quan@xxxxxxx>
> -----Original Message-----
> From: amd-gfx <amd-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx> On Behalf Of
> Russell, Kent
> Sent: 2019年4月1日 19:27
> To: amd-gfx@xxxxxxxxxxxxxxxxxxxxx
> Cc: Russell, Kent <Kent.Russell@xxxxxxx>
> Subject: [PATCH 1/2] drm/amdgpu: Allow switching to CUSTOM profile on
> Vega10 v2
>
> Don't return an error if the CUSTOM profile is selected, just apply it with the
> values saved to the GPU. But ensure that we zero out the copy stored in
> adev to ensure that a valid profile has been submitted at some point first
>
> v2: Fix comment that wasn't updated from previous patch
>
> Change-Id: Iafa5994e89ce00d3a124285b3435b581ec0e5d3b
> Signed-off-by: Kent Russell <kent.russell@xxxxxxx>
> ---
> .../drm/amd/powerplay/hwmgr/vega10_hwmgr.c | 23
> ++++++++++++++++++-
> 1 file changed, 22 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> index 85a536924571..476a072027a6 100644
> --- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> @@ -1427,6 +1427,15 @@ static int
> vega10_setup_default_dpm_tables(struct pp_hwmgr *hwmgr)
>
> vega10_setup_default_pcie_table(hwmgr);
>
> + /* Zero out the saved copy of the CUSTOM profile
> + * This will be checked when trying to set the profile
> + * and will require that new values be passed in
> + */
> + data->custom_profile_mode[0] = 0;
> + data->custom_profile_mode[1] = 0;
> + data->custom_profile_mode[2] = 0;
> + data->custom_profile_mode[3] = 0;
> +
> /* save a copy of the default DPM table */
> memcpy(&(data->golden_dpm_table), &(data->dpm_table),
> sizeof(struct vega10_dpm_table));
> @@ -4910,9 +4919,20 @@ static int vega10_set_power_profile_mode(struct
> pp_hwmgr *hwmgr, long *input, ui
> 1 << power_profile_mode);
>
> if (power_profile_mode == PP_SMC_POWER_PROFILE_CUSTOM) {
> - if (size == 0 || size > 4)
> + if (size != 0 && size != 4)
> return -EINVAL;
>
> + /* If size = 0 and the CUSTOM profile has been set already
> + * then just apply the profile. The copy stored in the hwmgr
> + * is zeroed out on init
> + */
> + if (size == 0) {
> + if (data->custom_profile_mode[0] != 0)
> + goto out;
> + else
> + return -EINVAL;
> + }
> +
> data->custom_profile_mode[0] = busy_set_point = input[0];
> data->custom_profile_mode[1] = FPS = input[1];
> data->custom_profile_mode[2] = use_rlc_busy = input[2];
> @@ -4923,6 +4943,7 @@ static int vega10_set_power_profile_mode(struct
> pp_hwmgr *hwmgr, long *input, ui
> use_rlc_busy << 16 |
> min_active_level<<24);
> }
>
> +out:
> hwmgr->power_profile_mode = power_profile_mode;
>
> return 0;
> --
> 2.17.1
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx@xxxxxxxxxxxxxxxxxxxxx
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
With that confirmed, the patch is Reviewed-by: Evan Quan <evan.quan@xxxxxxx>
> -----Original Message-----
> From: amd-gfx <amd-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx> On Behalf Of
> Russell, Kent
> Sent: 2019年4月1日 19:27
> To: amd-gfx@xxxxxxxxxxxxxxxxxxxxx
> Cc: Russell, Kent <Kent.Russell@xxxxxxx>
> Subject: [PATCH 1/2] drm/amdgpu: Allow switching to CUSTOM profile on
> Vega10 v2
>
> Don't return an error if the CUSTOM profile is selected, just apply it with the
> values saved to the GPU. But ensure that we zero out the copy stored in
> adev to ensure that a valid profile has been submitted at some point first
>
> v2: Fix comment that wasn't updated from previous patch
>
> Change-Id: Iafa5994e89ce00d3a124285b3435b581ec0e5d3b
> Signed-off-by: Kent Russell <kent.russell@xxxxxxx>
> ---
> .../drm/amd/powerplay/hwmgr/vega10_hwmgr.c | 23
> ++++++++++++++++++-
> 1 file changed, 22 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> index 85a536924571..476a072027a6 100644
> --- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> @@ -1427,6 +1427,15 @@ static int
> vega10_setup_default_dpm_tables(struct pp_hwmgr *hwmgr)
>
> vega10_setup_default_pcie_table(hwmgr);
>
> + /* Zero out the saved copy of the CUSTOM profile
> + * This will be checked when trying to set the profile
> + * and will require that new values be passed in
> + */
> + data->custom_profile_mode[0] = 0;
> + data->custom_profile_mode[1] = 0;
> + data->custom_profile_mode[2] = 0;
> + data->custom_profile_mode[3] = 0;
> +
> /* save a copy of the default DPM table */
> memcpy(&(data->golden_dpm_table), &(data->dpm_table),
> sizeof(struct vega10_dpm_table));
> @@ -4910,9 +4919,20 @@ static int vega10_set_power_profile_mode(struct
> pp_hwmgr *hwmgr, long *input, ui
> 1 << power_profile_mode);
>
> if (power_profile_mode == PP_SMC_POWER_PROFILE_CUSTOM) {
> - if (size == 0 || size > 4)
> + if (size != 0 && size != 4)
> return -EINVAL;
>
> + /* If size = 0 and the CUSTOM profile has been set already
> + * then just apply the profile. The copy stored in the hwmgr
> + * is zeroed out on init
> + */
> + if (size == 0) {
> + if (data->custom_profile_mode[0] != 0)
> + goto out;
> + else
> + return -EINVAL;
> + }
> +
> data->custom_profile_mode[0] = busy_set_point = input[0];
> data->custom_profile_mode[1] = FPS = input[1];
> data->custom_profile_mode[2] = use_rlc_busy = input[2];
> @@ -4923,6 +4943,7 @@ static int vega10_set_power_profile_mode(struct
> pp_hwmgr *hwmgr, long *input, ui
> use_rlc_busy << 16 |
> min_active_level<<24);
> }
>
> +out:
> hwmgr->power_profile_mode = power_profile_mode;
>
> return 0;
> --
> 2.17.1
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx@xxxxxxxxxxxxxxxxxxxxx
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
_______________________________________________ amd-gfx mailing list amd-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/amd-gfx