<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-2022-jp">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p style="margin-top:0;margin-bottom:0">Hi Alex,</p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0">It's Ok, I got it.</p>
<div><span style="font-size: 12pt;">Thanks.</span><br>
</div>
<div><span style="font-size: 12pt;"><br>
</span></div>
<div><span style="font-size: 12pt;"><br>
</span></div>
<div>Best Regards</div>
<div>Rex<br>
<br>
<div style="color: rgb(0, 0, 0);">
<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> Alex Deucher <alexdeucher@gmail.com><br>
<b>Sent:</b> Tuesday, January 30, 2018 6:26 AM<br>
<b>To:</b> Zhu, Rex<br>
<b>Cc:</b> Kuehling, Felix; amd-gfx@lists.freedesktop.org<br>
<b>Subject:</b> Re: [PATCH 1/2] drm/amd/pp: Remove manual mode for power_dpm_force_performance_level</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">On Mon, Jan 29, 2018 at 4:51 PM, Zhu, Rex <Rex.Zhu@amd.com> wrote:<br>
>>I'd prefer to keep the requirement to select manual mode to be able to<br>
>>manually mess with the clock levels. This also makes simplifies the<br>
>>profile interface by only allowing you to change the profile if you<br>
>>select manual mode first. That way we don't have to add an AUTO<br>
>>profile to the profile selection to let the driver pick the profile.<br>
>>that can happen automatically if the user sets the force_performance<br>
>>level to auto.<br>
><br>
><br>
> Hi Alex,<br>
><br>
><br>
> so you mean use "auto" state of force_performance_leve as reset mode to all<br>
> the performance related sysfs.<br>
<br>
My thinking was that with force_performance_level set to auto, the<br>
driver will handle everything by itself. The driver would pick the<br>
power profile dynamically, all of the dpm states relevant to the power<br>
profiles would be enabled, etc. If the user selects manual in<br>
force_performance_level, then they can select which sclk/mclk/pcie dpm<br>
states are active as before, and now with the profile stuff, they can<br>
select either a predefined profile (video, vr, 3d, etc.) or a custom<br>
one. If they want to go back to automatic driver control, they just<br>
switch force_performance_level back to auto. That way we have just<br>
one interface to control the behavior and there are fewer corner cases<br>
where features interact. Either select auto and let the driver handle<br>
it all, or select manual and tweak everything manually.<br>
<br>
Alex<br>
<br>
><br>
><br>
> Currently we just unfore the clock range in the auto state.<br>
><br>
><br>
> Anyway, I will drop this patch.<br>
><br>
><br>
> Best Regards<br>
><br>
> Rex<br>
><br>
><br>
><br>
> ________________________________<br>
> From: Alex Deucher <alexdeucher@gmail.com><br>
> Sent: Tuesday, January 30, 2018 2:02 AM<br>
><br>
> To: Zhu, Rex<br>
> Cc: Kuehling, Felix; amd-gfx@lists.freedesktop.org<br>
> Subject: Re: [PATCH 1/2] drm/amd/pp: Remove manual mode for<br>
> power_dpm_force_performance_level<br>
><br>
> On Mon, Jan 29, 2018 at 7:03 AM, Zhu, Rex <Rex.Zhu@amd.com> wrote:<br>
>> Hi Alex,<br>
>><br>
>>>How about we make the profile selection dependent on selecting the manual<br>
>>> force_performance_level<br>
>><br>
>> If so, we need to check pm.dpm.forced_level before "profile heuristics"<br>
>> and "disable power containment" as same as pp_dpm_sclk/mclk/pcie.<br>
>><br>
>> if (adev->pm.dpm.forced_level & (AMD_DPM_FORCED_LEVEL_AUTO |<br>
>> AMD_DPM_FORCED_LEVEL_LOW |<br>
>> AMD_DPM_FORCED_LEVEL_HIGH))<br>
>> return -EINVAL;<br>
>><br>
>> How about delete judging code before force_clock_level and just change<br>
>> force_level to manual after force_clock_level. Please see the attached<br>
>> patch.<br>
>><br>
>> This change have no impact on existing interface and tools.<br>
>> It just refine the logic of power_dpm_force_performance_level and<br>
>> pp_dpm_sclk/mclk/pcie.<br>
>> Also has no impact to power/computer profile mode on smu7.<br>
>><br>
>> The difference is:<br>
>><br>
>> New user can have one less command need to input if they want to use<br>
>> pp_dpm_sclk/mclk/pcie.<br>
><br>
> I'd prefer to keep the requirement to select manual mode to be able to<br>
> manually mess with the clock levels. This also makes simplifies the<br>
> profile interface by only allowing you to change the profile if you<br>
> select manual mode first. That way we don't have to add an AUTO<br>
> profile to the profile selection to let the driver pick the profile.<br>
> that can happen automatically if the user sets the force_performance<br>
> level to auto.<br>
><br>
> Alex<br>
><br>
>><br>
>><br>
>> Best Regards<br>
>> Rex<br>
>> -----Original Message-----<br>
>> From: Alex Deucher [<a href="mailto:alexdeucher@gmail.com">mailto:alexdeucher@gmail.com</a>]<br>
>> Sent: Saturday, January 27, 2018 7:51 AM<br>
>> To: Zhu, Rex<br>
>> Cc: Kuehling, Felix; amd-gfx@lists.freedesktop.org<br>
>> Subject: Re: [PATCH 1/2] drm/amd/pp: Remove manual mode for<br>
>> power_dpm_force_performance_level<br>
>><br>
>> I think we have two use cases for the profiles:<br>
>><br>
>> 1. automatic profile switching for different driver use cases 2. manually<br>
>> tweaking profiles/clocks/power for testing<br>
>><br>
>> How about we make the profile selection dependent on selecting the manual<br>
>> force_performance_level and not add an auto to the profile selector. Then<br>
>> when you select manual you can tweak the clocks and profile heuristics and<br>
>> power containment via their respective knobs.<br>
>><br>
>><br>
>> Alex<br>
>><br>
>> On Fri, Jan 26, 2018 at 3:08 PM, Zhu, Rex <Rex.Zhu@amd.com> wrote:<br>
>>>>Existing tools and users expect that switching back to auto removes<br>
>>>>the manual clock settings. If you allow changing the clock in auto<br>
>>>>mode, that won't happen any more.<br>
>>><br>
>>><br>
>>> I have sent the patch v2 to fix this problem. user can swith back auto<br>
>>> mode and all manual clock setting will be removed.<br>
>>><br>
>>><br>
>>>>One more reason why allowing the user to set pp_dpm_sckl/mclk<br>
>>>>shouldn't be allowed in auto-mode.<br>
>>><br>
>>> this is an old logic, maybe ref radeon driver.<br>
>>> Driver can allow to set pp_dpm_sclk/mclk range in auto/high/low mode.<br>
>>><br>
>>> Best Regards<br>
>>> Rex<br>
>>> ________________________________<br>
>>> From: Kuehling, Felix<br>
>>> Sent: Saturday, January 27, 2018 3:32 AM<br>
>>> To: Zhu, Rex; amd-gfx@lists.freedesktop.org<br>
>>> Subject: Re: [PATCH 1/2] drm/amd/pp: Remove manual mode for<br>
>>> power_dpm_force_performance_level<br>
>>><br>
>>> On 2018-01-26 02:20 PM, Zhu, Rex wrote:<br>
>>>><br>
>>>> >1. You're breaking the semantics of the existing pp_dpm_sclk/mclk/pcie<br>
>>>> > interfaces, which affects existing tools<br>
>>>><br>
>>>><br>
>>>> Rex: I don't think the patch will affects existing tools.<br>
>>>><br>
>>>><br>
>>>> User set "manual" to power_performance_level, and then change the<br>
>>>> clock range through pp_dpm_sclk/mclk/pcie.<br>
>>>><br>
>>>><br>
>>>> with this patch, User dont need to set "manual" command, if still<br>
>>>> receive the manual command, driver just return sucess to user in<br>
>>>> order not break existing<br>
>>>><br>
>>>> tools.<br>
>>>><br>
>>><br>
>>> Existing tools and users expect that switching back to auto removes<br>
>>> the manual clock settings. If you allow changing the clock in auto<br>
>>> mode, that won't happen any more.<br>
>>><br>
>>>><br>
>>>> >2. You're taking the clock limits out of the power profile.<br>
>>>> > Automatically adjusting the minimum sclk/mclk is a requirement for<br>
>>>> > the compute power profile<br>
>>>><br>
>>>><br>
>>>> Rex: In vega10, under default comput mode(with<br>
>>>> busy_set_point/fps/use_rlc_busy/min_active_level set), just two<br>
>>>> performance levels left<br>
>>>> (level0 and level7). and clock just switch between lowest and highest.<br>
>>>><br>
>>>> I am not sure in this case, driver still can set min sclk/mclk.<br>
>>><br>
>>> One more reason why allowing the user to set pp_dpm_sckl/mclk<br>
>>> shouldn't be allowed in auto-mode.<br>
>>><br>
>>> Regards,<br>
>>> Felix<br>
>>><br>
>>>><br>
>>>> Best Regards<br>
>>>> Rex<br>
>>>><br>
>>>><br>
>>>> ---------------------------------------------------------------------<br>
>>>> ---<br>
>>>> *From:* Kuehling, Felix<br>
>>>> *Sent:* Saturday, January 27, 2018 12:49 AM<br>
>>>> *To:* Zhu, Rex; amd-gfx@lists.freedesktop.org<br>
>>>> *Subject:* Re: [PATCH 1/2] drm/amd/pp: Remove manual mode for<br>
>>>> power_dpm_force_performance_level<br>
>>>><br>
>>>> Hi Rex,<br>
>>>><br>
>>>> I think I understand what you're trying to do. To summarize my<br>
>>>> concerns, there are two reasons I'm against your plan:<br>
>>>><br>
>>>> 1. You're breaking the semantics of the existing pp_dpm_sclk/mclk/pcie<br>
>>>> interfaces, which affects existing tools 2. You're taking the<br>
>>>> clock limits out of the power profile.<br>
>>>> Automatically adjusting the minimum sclk/mclk is a requirement for<br>
>>>> the compute power profile<br>
>>>><br>
>>>> Regards,<br>
>>>> Felix<br>
>>>><br>
>>>> On 2018-01-26 07:50 AM, Zhu, Rex wrote:<br>
>>>> ><br>
>>>> > Hi Felix,<br>
>>>> ><br>
>>>> ><br>
>>>> > >That would make sense. But switching to manual mode would disable<br>
>>>> > >profiles and automatic profile selection. That was one reason why<br>
>>>> > >I objected to your plan to control profile clock limits using<br>
>>>> > >these<br>
>>>> files.<br>
>>>> ><br>
>>>> > Rex:<br>
>>>> ><br>
>>>> ><br>
>>>> > I am not very clear the old logic of gfx/compute power profile switch.<br>
>>>> ><br>
>>>> ><br>
>>>> > But with new sysfs,<br>
>>>> ><br>
>>>> ><br>
>>>> ><br>
>>>> > The logic is(those sysfs are independent)<br>
>>>> ><br>
>>>> > 1. configure uphyst/downhyst/min_ativity through<br>
>>>> > power_profile_mode,<br>
>>>> ><br>
>>>> > 2. adjust clock range through pp_dpm_sclk/mclk/pcie.(once<br>
>>>> > this sysffs was called, set the dpm level mode to unknown)<br>
>>>> ><br>
>>>> > 3. adjust power limit through pp_od_power_limit(maybe equal<br>
>>>> > to disable power containment).<br>
>>>> ><br>
>>>> ><br>
>>>> ><br>
>>>> > In those functions, driver do not check the dpm level mode.<br>
>>>> ><br>
>>>> > the dpm level mode just used by power_dpm_force_performance_level<br>
>>>> > functions.<br>
>>>> ><br>
>>>> ><br>
>>>> > Best Regards<br>
>>>> ><br>
>>>> > Rex<br>
>>>> ><br>
>>>> ><br>
>>>> ><br>
>>>> ><br>
>>>> ><br>
>>>> > -------------------------------------------------------------------<br>
>>>> > -----<br>
>>>> > *From:* Kuehling, Felix<br>
>>>> > *Sent:* Friday, January 26, 2018 8:26 AM<br>
>>>> > *To:* Zhu, Rex; amd-gfx@lists.freedesktop.org<br>
>>>> > *Subject:* Re: [PATCH 1/2] drm/amd/pp: Remove manual mode for<br>
>>>> > power_dpm_force_performance_level<br>
>>>> ><br>
>>>> > On 2018-01-25 07:07 PM, Zhu, Rex wrote:<br>
>>>> > > I also think about this problem.<br>
>>>> > > just think user should unforced clk level through pp dpm<br>
>>>> > > sclk/mclk/pcie if they change the clock logic through those sysfs.<br>
>>>> > ><br>
>>>> > > The logic seems weird, As we supply many sysfs for adjust clock<br>
>>>> > > range.<br>
>>>> > ><br>
>>>> > > We can fix this problem by change current mode to manual mode<br>
>>>> > > after user call pp dpm sclk/mclk/pcie.<br>
>>>> > ><br>
>>>> > > But another think,if user change back the clk range through pp<br>
>>>> > > dpm<br>
>>>> clk.<br>
>>>> > ><br>
>>>> > > we are in manual mode, and user set auto mode, in fact, driver<br>
>>>> > > change nothing.<br>
>>>> ><br>
>>>> > With profiles, switching back to auto mode would select the<br>
>>>> > appropriate profile, which may have a different clock mask. For<br>
>>>> > example for compute we enable only the highest two sclk levels.<br>
>>>> ><br>
>>>> > ><br>
>>>> > > Comparatively speaking, better set manual mode after user call pp<br>
>>>> > dpm clk.<br>
>>>> ><br>
>>>> > That would make sense. But switching to manual mode would disable<br>
>>>> > profiles and automatic profile selection. That was one reason why I<br>
>>>> > objected to your plan to control profile clock limits using these<br>
>>>> > files.<br>
>>>> ><br>
>>>> > Regards,<br>
>>>> > Felix<br>
>>>> ><br>
>>>> > > Thanks very much.<br>
>>>> > ><br>
>>>> > > Best Regards<br>
>>>> > > Rex<br>
>>>> > ><br>
>>>> ---------------------------------------------------------------------<br>
>>>> ---<br>
>>>> > > *From:* Kuehling, Felix<br>
>>>> > > *Sent:* Friday, January 26, 2018 12:55:19 AM<br>
>>>> > > *To:* amd-gfx@lists.freedesktop.org; Zhu, Rex<br>
>>>> > > *Subject:* Re: [PATCH 1/2] drm/amd/pp: Remove manual mode for<br>
>>>> > > power_dpm_force_performance_level<br>
>>>> > ><br>
>>>> > > This patch breaks unforcing of clocks, which is currently done by<br>
>>>> > > switching back from "manual" to "auto". By removing "manual"<br>
>>>> > > mode, you remove the ability to unset forced clocks.<br>
>>>> > ><br>
>>>> > > Regards,<br>
>>>> > > Felix<br>
>>>> > ><br>
>>>> > ><br>
>>>> > > On 2018-01-25 06:26 AM, Rex Zhu wrote:<br>
>>>> > > > Driver do not maintain manual mode for<br>
>>>> > > > dpm_force_performance_level, User can set sclk/mclk/pcie range<br>
>>>> > > > through<br>
>>>> > > pp_dpm_sclk/pp_dpm_mclk/pp_dpm_pcie<br>
>>>> > > > directly.<br>
>>>> > > ><br>
>>>> > > > In order to not break currently tools, when set "manual" to<br>
>>>> > > > power_dpm_force_performance_level driver will do nothing and<br>
>>>> > > > just return successful.<br>
>>>> > > ><br>
>>>> > > > Change-Id: Iaf672b9abc7fa57b765ceb7fa2fba6ad3e80c50b<br>
>>>> > > > Signed-off-by: Rex Zhu <Rex.Zhu@amd.com><br>
>>>> > > > ---<br>
>>>> > > > drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 3 +--<br>
>>>> > > > drivers/gpu/drm/amd/amdgpu/ci_dpm.c | 5 -----<br>
>>>> > > > drivers/gpu/drm/amd/include/kgd_pp_interface.h | 15<br>
>>>> > +++++++--------<br>
>>>> > > > drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c | 4 ----<br>
>>>> > > > drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c | 1 -<br>
>>>> > > > drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c | 6 ------<br>
>>>> > > > drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c | 6 ------<br>
>>>> > > > 7 files changed, 8 insertions(+), 32 deletions(-)<br>
>>>> > > ><br>
>>>> > > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c<br>
>>>> > > b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c<br>
>>>> > > > index 1812009..66b4df0 100644<br>
>>>> > > > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c<br>
>>>> > > > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c<br>
>>>> > > > @@ -152,7 +152,6 @@ static ssize_t<br>
>>>> > > amdgpu_get_dpm_forced_performance_level(struct device *dev,<br>
>>>> > > > (level == AMD_DPM_FORCED_LEVEL_AUTO) ?<br>
>>>> "auto" :<br>
>>>> > > > (level == AMD_DPM_FORCED_LEVEL_LOW) ? "low"<br>
>>>> > > > :<br>
>>>> > > > (level == AMD_DPM_FORCED_LEVEL_HIGH) ?<br>
>>>> "high" :<br>
>>>> > > > - (level == AMD_DPM_FORCED_LEVEL_MANUAL) ?<br>
>>>> > > "manual" :<br>
>>>> > > > (level ==<br>
>>>> > > AMD_DPM_FORCED_LEVEL_PROFILE_STANDARD) ? "profile_standard" :<br>
>>>> > > > (level ==<br>
>>>> > > AMD_DPM_FORCED_LEVEL_PROFILE_MIN_SCLK) ? "profile_min_sclk" :<br>
>>>> > > > (level ==<br>
>>>> > > AMD_DPM_FORCED_LEVEL_PROFILE_MIN_MCLK) ? "profile_min_mclk" :<br>
>>>> > > > @@ -186,7 +185,7 @@ static ssize_t<br>
>>>> > > amdgpu_set_dpm_forced_performance_level(struct device *dev,<br>
>>>> > > > } else if (strncmp("auto", buf, strlen("auto")) == 0) {<br>
>>>> > > > level = AMD_DPM_FORCED_LEVEL_AUTO;<br>
>>>> > > > } else if (strncmp("manual", buf, strlen("manual")) == 0) {<br>
>>>> > > > - level = AMD_DPM_FORCED_LEVEL_MANUAL;<br>
>>>> > > > + pr_info("No need to set manual mode, Just go<br>
>>>> ahead\n");<br>
>>>> > > > } else if (strncmp("profile_exit", buf,<br>
>>>> > > strlen("profile_exit")) == 0) {<br>
>>>> > > > level = AMD_DPM_FORCED_LEVEL_PROFILE_EXIT;<br>
>>>> > > > } else if (strncmp("profile_standard", buf,<br>
>>>> > > strlen("profile_standard")) == 0) {<br>
>>>> > > > diff --git a/drivers/gpu/drm/amd/amdgpu/ci_dpm.c<br>
>>>> > > b/drivers/gpu/drm/amd/amdgpu/ci_dpm.c<br>
>>>> > > > index ab45232..8ddc978 100644<br>
>>>> > > > --- a/drivers/gpu/drm/amd/amdgpu/ci_dpm.c<br>
>>>> > > > +++ b/drivers/gpu/drm/amd/amdgpu/ci_dpm.c<br>
>>>> > > > @@ -6639,11 +6639,6 @@ static int ci_dpm_force_clock_level(void<br>
>>>> > *handle,<br>
>>>> > > > struct amdgpu_device *adev = (struct amdgpu_device<br>
>>>> > > > *)handle;<br>
>>>> > > > struct ci_power_info *pi = ci_get_pi(adev);<br>
>>>> > > ><br>
>>>> > > > - if (adev->pm.dpm.forced_level & (AMD_DPM_FORCED_LEVEL_AUTO |<br>
>>>> > > > - AMD_DPM_FORCED_LEVEL_LOW |<br>
>>>> > > > - AMD_DPM_FORCED_LEVEL_HIGH))<br>
>>>> > > > - return -EINVAL;<br>
>>>> > > > -<br>
>>>> > > > switch (type) {<br>
>>>> > > > case PP_SCLK:<br>
>>>> > > > if (!pi->sclk_dpm_key_disabled) diff --git<br>
>>>> > > > a/drivers/gpu/drm/amd/include/kgd_pp_interface.h<br>
>>>> > > b/drivers/gpu/drm/amd/include/kgd_pp_interface.h<br>
>>>> > > > index b9aa9f4..3fab686 100644<br>
>>>> > > > --- a/drivers/gpu/drm/amd/include/kgd_pp_interface.h<br>
>>>> > > > +++ b/drivers/gpu/drm/amd/include/kgd_pp_interface.h<br>
>>>> > > > @@ -41,14 +41,13 @@ struct amd_vce_state {<br>
>>>> > > ><br>
>>>> > > > enum amd_dpm_forced_level {<br>
>>>> > > > AMD_DPM_FORCED_LEVEL_AUTO = 0x1,<br>
>>>> > > > - AMD_DPM_FORCED_LEVEL_MANUAL = 0x2,<br>
>>>> > > > - AMD_DPM_FORCED_LEVEL_LOW = 0x4,<br>
>>>> > > > - AMD_DPM_FORCED_LEVEL_HIGH = 0x8,<br>
>>>> > > > - AMD_DPM_FORCED_LEVEL_PROFILE_STANDARD = 0x10,<br>
>>>> > > > - AMD_DPM_FORCED_LEVEL_PROFILE_MIN_SCLK = 0x20,<br>
>>>> > > > - AMD_DPM_FORCED_LEVEL_PROFILE_MIN_MCLK = 0x40,<br>
>>>> > > > - AMD_DPM_FORCED_LEVEL_PROFILE_PEAK = 0x80,<br>
>>>> > > > - AMD_DPM_FORCED_LEVEL_PROFILE_EXIT = 0x100,<br>
>>>> > > > + AMD_DPM_FORCED_LEVEL_LOW = 0x2,<br>
>>>> > > > + AMD_DPM_FORCED_LEVEL_HIGH = 0x4,<br>
>>>> > > > + AMD_DPM_FORCED_LEVEL_PROFILE_STANDARD = 0x8,<br>
>>>> > > > + AMD_DPM_FORCED_LEVEL_PROFILE_MIN_SCLK = 0x10,<br>
>>>> > > > + AMD_DPM_FORCED_LEVEL_PROFILE_MIN_MCLK = 0x20,<br>
>>>> > > > + AMD_DPM_FORCED_LEVEL_PROFILE_PEAK = 0x40,<br>
>>>> > > > + AMD_DPM_FORCED_LEVEL_PROFILE_EXIT = 0x80,<br>
>>>> > > > };<br>
>>>> > > ><br>
>>>> > > > enum amd_pm_state_type {<br>
>>>> > > > diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c<br>
>>>> > > b/drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c<br>
>>>> > > > index dec8dd9..60d280c 100644<br>
>>>> > > > --- a/drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c<br>
>>>> > > > +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c<br>
>>>> > > > @@ -1250,7 +1250,6 @@ static int cz_dpm_force_dpm_level(struct<br>
>>>> > > pp_hwmgr *hwmgr,<br>
>>>> > > > case AMD_DPM_FORCED_LEVEL_AUTO:<br>
>>>> > > > ret = cz_phm_unforce_dpm_levels(hwmgr);<br>
>>>> > > > break;<br>
>>>> > > > - case AMD_DPM_FORCED_LEVEL_MANUAL:<br>
>>>> > > > case AMD_DPM_FORCED_LEVEL_PROFILE_EXIT:<br>
>>>> > > > default:<br>
>>>> > > > break;<br>
>>>> > > > @@ -1558,9 +1557,6 @@ static int cz_get_dal_power_level(struct<br>
>>>> > > pp_hwmgr *hwmgr,<br>
>>>> > > > static int cz_force_clock_level(struct pp_hwmgr *hwmgr,<br>
>>>> > > > enum pp_clock_type type, uint32_t mask) {<br>
>>>> > > > - if (hwmgr->dpm_level != AMD_DPM_FORCED_LEVEL_MANUAL)<br>
>>>> > > > - return -EINVAL;<br>
>>>> > > > -<br>
>>>> > > > switch (type) {<br>
>>>> > > > case PP_SCLK:<br>
>>>> > > > smum_send_msg_to_smc_with_parameter(hwmgr,<br>
>>>> > > > diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c<br>
>>>> > > b/drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c<br>
>>>> > > > index 409a56b..eddcbcd 100644<br>
>>>> > > > --- a/drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c<br>
>>>> > > > +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c<br>
>>>> > > > @@ -605,7 +605,6 @@ static int rv_dpm_force_dpm_level(struct<br>
>>>> > > pp_hwmgr *hwmgr,<br>
>>>> > > ><br>
>>>> > > PPSMC_MSG_SetSoftMaxFclkByFreq,<br>
>>>> > > ><br>
>>>> > > RAVEN_UMD_PSTATE_MIN_FCLK);<br>
>>>> > > > break;<br>
>>>> > > > - case AMD_DPM_FORCED_LEVEL_MANUAL:<br>
>>>> > > > case AMD_DPM_FORCED_LEVEL_PROFILE_EXIT:<br>
>>>> > > > default:<br>
>>>> > > > break;<br>
>>>> > > > diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c<br>
>>>> > > b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c<br>
>>>> > > > index 13db75c..e3a8374 100644<br>
>>>> > > > --- a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c<br>
>>>> > > > +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c<br>
>>>> > > > @@ -2798,7 +2798,6 @@ static int smu7_force_dpm_level(struct<br>
>>>> > > pp_hwmgr *hwmgr,<br>
>>>> > > > smu7_force_clock_level(hwmgr, PP_MCLK,<br>
>>>> > > > 1<<mclk_mask);<br>
>>>> > > > smu7_force_clock_level(hwmgr, PP_PCIE,<br>
>>>> > > > 1<<pcie_mask);<br>
>>>> > > > break;<br>
>>>> > > > - case AMD_DPM_FORCED_LEVEL_MANUAL:<br>
>>>> > > > case AMD_DPM_FORCED_LEVEL_PROFILE_EXIT:<br>
>>>> > > > default:<br>
>>>> > > > break;<br>
>>>> > > > @@ -4311,11 +4310,6 @@ static int smu7_force_clock_level(struct<br>
>>>> > > pp_hwmgr *hwmgr,<br>
>>>> > > > {<br>
>>>> > > > struct smu7_hwmgr *data = (struct smu7_hwmgr<br>
>>>> > *)(hwmgr->backend);<br>
>>>> > > ><br>
>>>> > > > - if (hwmgr->request_dpm_level & (AMD_DPM_FORCED_LEVEL_AUTO |<br>
>>>> > > > - AMD_DPM_FORCED_LEVEL_LOW |<br>
>>>> > > > - AMD_DPM_FORCED_LEVEL_HIGH))<br>
>>>> > > > - return -EINVAL;<br>
>>>> > > > -<br>
>>>> > > > switch (type) {<br>
>>>> > > > case PP_SCLK:<br>
>>>> > > > if (!data->sclk_dpm_key_disabled) diff --git<br>
>>>> > > > a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c<br>
>>>> > > b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c<br>
>>>> > > > index 6b28896..828677e 100644<br>
>>>> > > > --- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c<br>
>>>> > > > +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c<br>
>>>> > > > @@ -4241,7 +4241,6 @@ static int<br>
>>>> > > > vega10_dpm_force_dpm_level(struct<br>
>>>> > > pp_hwmgr *hwmgr,<br>
>>>> > > > vega10_force_clock_level(hwmgr, PP_SCLK,<br>
>>>> 1<<sclk_mask);<br>
>>>> > > > vega10_force_clock_level(hwmgr, PP_MCLK,<br>
>>>> 1<<mclk_mask);<br>
>>>> > > > break;<br>
>>>> > > > - case AMD_DPM_FORCED_LEVEL_MANUAL:<br>
>>>> > > > case AMD_DPM_FORCED_LEVEL_PROFILE_EXIT:<br>
>>>> > > > default:<br>
>>>> > > > break;<br>
>>>> > > > @@ -4500,11 +4499,6 @@ static int<br>
>>>> > > > vega10_force_clock_level(struct<br>
>>>> > > pp_hwmgr *hwmgr,<br>
>>>> > > > {<br>
>>>> > > > struct vega10_hwmgr *data = (struct vega10_hwmgr<br>
>>>> > > *)(hwmgr->backend);<br>
>>>> > > ><br>
>>>> > > > - if (hwmgr->request_dpm_level & (AMD_DPM_FORCED_LEVEL_AUTO |<br>
>>>> > > > - AMD_DPM_FORCED_LEVEL_LOW |<br>
>>>> > > > - AMD_DPM_FORCED_LEVEL_HIGH))<br>
>>>> > > > - return -EINVAL;<br>
>>>> > > > -<br>
>>>> > > > switch (type) {<br>
>>>> > > > case PP_SCLK:<br>
>>>> > > > data->smc_state_table.gfx_boot_level = mask ?<br>
>>>> > > (ffs(mask) - 1) : 0;<br>
>>>> > ><br>
>>>> ><br>
>>>><br>
>>><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>
>>><br>
</div>
</span></font></div>
</div>
</div>
</div>
</body>
</html>