<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">Thanks Harry for <span style="color: rgb(51, 51, 51); font-family: arial; font-size: 13px;">clarify this question thoroughly.</span></p>
<p style="margin-top:0;margin-bottom:0"><span style="color: rgb(51, 51, 51); font-family: arial; font-size: 13px;"><br>
</span></p>
<p style="margin-top:0;margin-bottom:0"><span style="color: rgb(51, 51, 51); font-family: arial; font-size: 13px;"><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 14.6667px;">>We'll
 still need a patch to call this interface from DC. Is that on your plate or is this something we should hook up?</span></span></p>
<p style="margin-top:0;margin-bottom:0"><span style="color: rgb(51, 51, 51); font-family: arial; font-size: 13px;"><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 14.6667px;"></span>No,
 I just implemented the interface in pp. DC need to call this function to enable/disable the auto wattman feature
<span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 14.6667px;">
when  Freesync disable/enable.</span></span></p>
<p style="margin-top:0;margin-bottom:0"><span style="color: rgb(51, 51, 51);"><font face="arial"><span style="font-size: 13px;"><br>
</span></font></span></p>
<p style="margin-top:0;margin-bottom:0"><span style="color: rgb(51, 51, 51);"><font face="arial"><span style="font-size: 13px;"><br>
</span></font>Best Regards</span></p>
<p style="margin-top:0;margin-bottom:0"><font color="#333333">Rex</font></p>
<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> Wentland, Harry<br>
<b>Sent:</b> Thursday, February 8, 2018 11:28 PM<br>
<b>To:</b> Zhu, Rex; amd-gfx@lists.freedesktop.org<br>
<b>Cc:</b> Koo, Anthony; Cyr, Aric<br>
<b>Subject:</b> Re: [PATCH] drm/amd/pp: Expose new interface to DC to ctrl auto wattman</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">On 2018-02-08 10:10 AM, Harry Wentland wrote:<br>
> On 2018-02-08 10:07 AM, Zhu, Rex wrote:<br>
>> when autowattman enabled,we will update uphyst/downhyst/min-sclk/mclk activity  value to smu based on the workload.<br>
>><br>
> <br>
> Why is this incompatible with Freesync?<br>
> <br>
<br>
Just had a chat with the Windows guys. Apparently AutoWattman changes clocks quite aggressively which can make framerates jump significantly and lead to a subpar experience when using Freesync.<br>
<br>
We'll still need a patch to call this interface from DC. Is that on your plate or is this something we should hook up?<br>
<br>
Harry<br>
<br>
> Harry<br>
> <br>
>> Best Regards<br>
>> Rex<br>
>><br>
>> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<br>
>> *From:* Wentland, Harry<br>
>> *Sent:* Thursday, February 8, 2018 10:22:16 PM<br>
>> *To:* Zhu, Rex; amd-gfx@lists.freedesktop.org<br>
>> *Subject:* Re: [PATCH] drm/amd/pp: Expose new interface to DC to ctrl auto wattman<br>
>>  <br>
>> On 2018-02-08 06:20 AM, Rex Zhu wrote:<br>
>>> Disable AutoWattman (if enabled) when FreeSync is enabled.<br>
>><br>
>> Do you have a DC change calling this?<br>
>><br>
>> What's the use case for this and why do we need to disable AutoWattman when Freesync is enabled?<br>
>><br>
>> What does AutoWattman do?<br>
>><br>
>> Harry<br>
>><br>
>>><br>
>>> Change-Id: I9a531321d7913b8b40e60070c569a01c4f202002<br>
>>> Signed-off-by: Rex Zhu <Rex.Zhu@amd.com><br>
>>> ---<br>
>>>   drivers/gpu/drm/amd/include/kgd_pp_interface.h |  1 +<br>
>>>   drivers/gpu/drm/amd/powerplay/amd_powerplay.c  | 25 +++++++++++++++++++++++++<br>
>>>   2 files changed, 26 insertions(+)<br>
>>><br>
>>> diff --git a/drivers/gpu/drm/amd/include/kgd_pp_interface.h b/drivers/gpu/drm/amd/include/kgd_pp_interface.h<br>
>>> index 22c2fa3..f7bb565 100644<br>
>>> --- a/drivers/gpu/drm/amd/include/kgd_pp_interface.h<br>
>>> +++ b/drivers/gpu/drm/amd/include/kgd_pp_interface.h<br>
>>> @@ -313,6 +313,7 @@ struct amd_pm_funcs {<br>
>>>         int (*set_power_profile_mode)(void *handle, long *input, uint32_t size);<br>
>>>         int (*odn_edit_dpm_table)(void *handle, uint32_t type, long *input, uint32_t size);<br>
>>>         int (*set_mmhub_powergating_by_smu)(void *handle);<br>
>>> +     int (*notify_free_sync_change)(void *handle, bool en);<br>
>>>   };<br>
>>>   <br>
>>>   #endif<br>
>>> diff --git a/drivers/gpu/drm/amd/powerplay/amd_powerplay.c b/drivers/gpu/drm/amd/powerplay/amd_powerplay.c<br>
>>> index 376ed2d..d0306b6 100644<br>
>>> --- a/drivers/gpu/drm/amd/powerplay/amd_powerplay.c<br>
>>> +++ b/drivers/gpu/drm/amd/powerplay/amd_powerplay.c<br>
>>> @@ -1555,6 +1555,30 @@ static int pp_set_mmhub_powergating_by_smu(void *handle)<br>
>>>         return hwmgr->hwmgr_func->set_mmhub_powergating_by_smu(hwmgr);<br>
>>>   }<br>
>>>   <br>
>>> +static int pp_notify_free_sync_change(void *handle, bool en)<br>
>>> +{<br>
>>> +     struct pp_hwmgr *hwmgr;<br>
>>> +     struct pp_instance *pp_handle = (struct pp_instance *)handle;<br>
>>> +     int ret = 0;<br>
>>> +<br>
>>> +     ret = pp_check(pp_handle);<br>
>>> +<br>
>>> +     if (ret)<br>
>>> +             return ret;<br>
>>> +<br>
>>> +     hwmgr = pp_handle->hwmgr;<br>
>>> +<br>
>>> +     mutex_lock(&pp_handle->pp_lock);<br>
>>> +     if (hwmgr->autowattman_enabled) {<br>
>>> +             if (hwmgr->hwmgr_func->start_auto_wattman != NULL) {<br>
>>> +                     if (!cancel_delayed_work_sync(&hwmgr->wattman_update_work))<br>
>>> +                             hwmgr->hwmgr_func->start_auto_wattman(hwmgr, en);<br>
>>> +             }<br>
>>> +     }<br>
>>> +     mutex_unlock(&pp_handle->pp_lock);<br>
>>> +     return 0;<br>
>>> +}<br>
>>> +<br>
>>>   const struct amd_pm_funcs pp_dpm_funcs = {<br>
>>>         .load_firmware = pp_dpm_load_fw,<br>
>>>         .wait_for_fw_loading_complete = pp_dpm_fw_loading_complete,<br>
>>> @@ -1604,4 +1628,5 @@ static int pp_set_mmhub_powergating_by_smu(void *handle)<br>
>>>         .display_clock_voltage_request = pp_display_clock_voltage_request,<br>
>>>         .get_display_mode_validation_clocks = pp_get_display_mode_validation_clocks,<br>
>>>         .set_mmhub_powergating_by_smu = pp_set_mmhub_powergating_by_smu,<br>
>>> +     .notify_free_sync_change = pp_notify_free_sync_change,<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" id="LPlnk958748" previewremoved="true">
https://lists.freedesktop.org/mailman/listinfo/amd-gfx</a>
<div id="LPBorder_GT_15181049861350.4060229547431593" style="margin-bottom: 20px; overflow: auto; width: 100%; text-indent: 0px;">
<table id="LPContainer_15181049861300.22911283410047023" role="presentation" cellspacing="0" style="width: 90%; background-color: rgb(255, 255, 255); position: relative; overflow: auto; padding-top: 20px; padding-bottom: 20px; margin-top: 20px; border-top: 1px dotted rgb(200, 200, 200); border-bottom: 1px dotted rgb(200, 200, 200);">
<tbody>
<tr valign="top" style="border-spacing: 0px;">
<td id="TextCell_15181049861330.12137092720321419" colspan="2" style="vertical-align: top; position: relative; padding: 0px; display: table-cell;">
<div id="LPRemovePreviewContainer_15181049861330.8856657762314699"></div>
<div id="LPTitle_15181049861330.9856724405077941" style="top: 0px; color: rgb(0, 120, 215); font-weight: normal; font-size: 21px; font-family: wf_segoe-ui_light, "Segoe UI Light", "Segoe WP Light", "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif; line-height: 21px;">
<a id="LPUrlAnchor_15181049861340.6964929520917347" href="https://lists.freedesktop.org/mailman/listinfo/amd-gfx" target="_blank" style="text-decoration: none;">amd-gfx Info Page - freedesktop.org</a></div>
<div id="LPMetadata_15181049861340.46317979394903386" style="margin: 10px 0px 16px; color: rgb(102, 102, 102); font-weight: normal; font-family: wf_segoe-ui_normal, "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif; font-size: 14px; line-height: 14px;">
lists.freedesktop.org</div>
<div id="LPDescription_15181049861350.5957188687150226" style="display: block; color: rgb(102, 102, 102); font-weight: normal; font-family: wf_segoe-ui_normal, "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif; font-size: 14px; line-height: 20px; max-height: 100px; overflow: hidden;">
Subscribing to amd-gfx: Subscribe to amd-gfx by filling out the following form. Use of all freedesktop.org lists is subject to our Code of ...</div>
</td>
</tr>
</tbody>
</table>
</div>
<br>
<br>
> <br>
</div>
</span></font></div>
</div>
</div>
</body>
</html>