<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<p style="font-family:Arial;font-size:10pt;color:#008000;margin:15pt;" align="Left">
[Public]<br>
</p>
<br>
<div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<a id="OWAAM804280" class="t0qjo mention ms-bgc-nlr ms-fcl-b" href="mailto:Evan.Quan@amd.com">@Quan, Evan</a>,
<a id="OWAAM423795" class="t0qjo mention ms-bgc-nlr ms-fcl-b" href="mailto:Kenneth.Feng@amd.com">
@Feng, Kenneth</a> can you take a look?</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
Thanks,</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
Alex<br>
</div>
<div id="appendonsend"></div>
<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> amd-gfx <amd-gfx-bounces@lists.freedesktop.org> on behalf of Yury Zhuravlev <stalkerg@gmail.com><br>
<b>Sent:</b> Friday, September 2, 2022 1:24 PM<br>
<b>To:</b> amd-gfx@lists.freedesktop.org <amd-gfx@lists.freedesktop.org><br>
<b>Subject:</b> [PATCH] drm/amdgpu: getting fan speed pwm for vega10 properly</font>
<div> </div>
</div>
<div>
<div dir="ltr">
<div>Hello,<br>
<br>
During the setup, the fan manager <a href="https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmarkusressel%2Ffan2go&data=05%7C01%7Calexander.deucher%40amd.com%7C0903d6788f924045996108da8d086ecb%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637977365572428876%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=IOJR10xHaW9cUZ%2Fv0Q%2BZDFFQJ1pbv2dUKP0zpxK4s8M%3D&reserved=0" originalsrc="https://github.com/markusressel/fan2go" shash="UjSl9Nnw5e3IQITVnEKtRKBWLZuRuMSOK63mD9eh5u+EVNo4m8QPTbngnPy8szVbIfqZeoxD5PqxHGtaZqTZu2taydhWBSXwI5lJzE9YKZQPnYmnT+v/A20MSwcPABaHfP6q4k1WJGuVd7LMUWyY3isUlxY6SdhKzU574e8MADY=" target="_blank">
https://github.com/markusressel/fan2go</a> I found that my Vega56 was not working correctly. This fan manager expects what read PWM value should be the same as you wrote before, but it's not the case. PWM value was volatile, and what is more critical, if I
 wrote 200, after reading I saw ~70-100, which is very confusing. <br>
After that, I started reading the amdgpu driver, and how fan speed works, and I found what PWM value was calculated from RPM speed and not correct for my case (different BIOS or fan configuration?).<br>
Because it looked wrong, I started looking into different implementations and found that Vega20 used mmCG_FDO_CTRL1 and mmCG_THERMAL_STATUS registers to calculate the PWM value.<br>
I also checked how we set PWM for Vega10 and found the same registers. After that, I copy-pasted the function from Vega20 to Vega10, and it started working much better. It still has some fluctuation, but as I understand, this behavior is expected.
<br>
<br>
I have no in-depth information about amdgpu, and the original function may have been for some reason (maybe for some broken BIOS?), but I suppose somebody forgot to backport this code after prototype implementation.
<br>
<br>
It would be my first patch here. Sorry if I skipped some procedures, will be appreciated it if you help me.
<br>
</div>
Also, sorry for the patch in the attachment, I have not been using any mail programs for the last six years, only web clients, and it's strange to do it nowadays (PRs much more common...).
<br>
<div><br>
Regards,</div>
</div>
</div>
</div>
</body>
</html>