<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-2022-jp">
</head>
<body>
I set CUSTOM to a weird value like "1 2 3 4 5 6" , then switched to VR profile, then switched back to CUSTOM (just with "echo 6 > profile), and it kept my custom values. Before this patch, it throws EINVAL but still switches it to CUSTOM with the saved values,
 on both vega10 and vega20.<br>
<br>
Kent<br>
<br>
KENT RUSSELL<br>
Sr. Software Engineer | Linux Compute Kernel<br>
1 Commerce Valley Drive East<br>
Markham, ON L3T 7X6<br>
O +(1) 289-695-2122 | Ext 72122<br>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Quan, Evan<br>
<b>Sent:</b> Monday, March 25, 2019 10:14:03 AM<br>
<b>To:</b> Russell, Kent; amd-gfx@lists.freedesktop.org<br>
<b>Cc:</b> Russell, Kent<br>
<b>Subject:</b> RE: [PATCH 1/3] drm/amdgpu: Stop returning EINVAL during profile switch</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">How can you tell whether it was already applied before or 1st time to switch to compute mode?<br>
For the latter case, other settings/parameters do need.<br>
<br>
Regards,<br>
Evan<br>
> -----Original Message-----<br>
> From: amd-gfx <amd-gfx-bounces@lists.freedesktop.org> On Behalf Of<br>
> Russell, Kent<br>
> Sent: 2019年3月25日 20:42<br>
> To: amd-gfx@lists.freedesktop.org<br>
> Cc: Russell, Kent <Kent.Russell@amd.com><br>
> Subject: [PATCH 1/3] drm/amdgpu: Stop returning EINVAL during profile<br>
> switch<br>
> <br>
> Don't return an error after switching to the CUSTOM profile, if there aren't<br>
> any CUSTOM values passed in. The CUSTOM profile is already applied, so if<br>
> no other arguments are passed, just return instead of throwing -EINVAL<br>
> when successful<br>
> <br>
> Change-Id: I114cc9783226ee9ebb146863897e951527a85e20<br>
> Signed-off-by: Kent Russell <kent.russell@amd.com><br>
> ---<br>
>  drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c | 6 +++++-<br>
> drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c | 5 ++++-<br>
>  2 files changed, 9 insertions(+), 2 deletions(-)<br>
> <br>
> diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c<br>
> b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c<br>
> index ed6c638700f5..a98b927282ac 100644<br>
> --- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c<br>
> +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c<br>
> @@ -4911,7 +4911,11 @@ static int vega10_set_power_profile_mode(struct<br>
> pp_hwmgr *hwmgr, long *input, ui<br>
>                                                1<<hwmgr-<br>
> >power_profile_mode);<br>
> <br>
>        if (hwmgr->power_profile_mode ==<br>
> PP_SMC_POWER_PROFILE_CUSTOM) {<br>
> -             if (size == 0 || size > 4)<br>
> +             /* If size = 0, then just return, it was applied above */<br>
> +             if (size == 0)<br>
> +                     return 0;<br>
> +<br>
> +             if (size != 4)<br>
>                        return -EINVAL;<br>
> <br>
>                data->custom_profile_mode[0] = busy_set_point = input[0];<br>
> diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c<br>
> b/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c<br>
> index 664544e7fcdc..225b2102c82c 100644<br>
> --- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c<br>
> +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c<br>
> @@ -3828,8 +3828,11 @@ static int vega20_set_power_profile_mode(struct<br>
> pp_hwmgr *hwmgr, long *input, ui<br>
>        }<br>
> <br>
>        if (hwmgr->power_profile_mode ==<br>
> PP_SMC_POWER_PROFILE_CUSTOM) {<br>
> -             if (size < 10)<br>
> +             if (size < 10 && size != 0)<br>
>                        return -EINVAL;<br>
> +             /* If size = 0, then just return, it was applied above */<br>
> +             if (size == 0)<br>
> +                     return 0;<br>
> <br>
>                result = vega20_get_activity_monitor_coeff(hwmgr,<br>
>                                (uint8_t *)(&activity_monitor),<br>
> --<br>
> 2.17.1<br>
> <br>
> _______________________________________________<br>
> amd-gfx mailing list<br>
> amd-gfx@lists.freedesktop.org<br>
> <a href="https://lists.freedesktop.org/mailman/listinfo/amd-gfx">https://lists.freedesktop.org/mailman/listinfo/amd-gfx</a><br>
</div>
</span></font></div>
</body>
</html>