|
@@ -478,6 +478,7 @@ void init_adl(int nDevs)
|
|
|
ga->has_fanspeed = true;
|
|
ga->has_fanspeed = true;
|
|
|
|
|
|
|
|
/* Save the fanspeed values as defaults in case we reset later */
|
|
/* Save the fanspeed values as defaults in case we reset later */
|
|
|
|
|
+ ga->DefFanSpeedValue.iSpeedType = ADL_DL_FANCTRL_SPEED_TYPE_RPM;
|
|
|
ADL_Overdrive5_FanSpeed_Get(ga->iAdapterIndex, 0, &ga->DefFanSpeedValue);
|
|
ADL_Overdrive5_FanSpeed_Get(ga->iAdapterIndex, 0, &ga->DefFanSpeedValue);
|
|
|
if (gpus[gpu].gpu_fan)
|
|
if (gpus[gpu].gpu_fan)
|
|
|
set_fanspeed(gpu, gpus[gpu].gpu_fan);
|
|
set_fanspeed(gpu, gpus[gpu].gpu_fan);
|
|
@@ -1003,20 +1004,21 @@ int set_fanspeed(int gpu, int iFanSpeed)
|
|
|
ga->targetfan = iFanSpeed;
|
|
ga->targetfan = iFanSpeed;
|
|
|
|
|
|
|
|
lock_adl();
|
|
lock_adl();
|
|
|
|
|
+ ga->lpFanSpeedValue.iSpeedType = ADL_DL_FANCTRL_SPEED_TYPE_RPM;
|
|
|
if (ADL_Overdrive5_FanSpeed_Get(ga->iAdapterIndex, 0, &ga->lpFanSpeedValue) != ADL_OK) {
|
|
if (ADL_Overdrive5_FanSpeed_Get(ga->iAdapterIndex, 0, &ga->lpFanSpeedValue) != ADL_OK) {
|
|
|
applog(LOG_DEBUG, "GPU %d call to fanspeed get failed", gpu);
|
|
applog(LOG_DEBUG, "GPU %d call to fanspeed get failed", gpu);
|
|
|
}
|
|
}
|
|
|
|
|
+ if (!(ga->lpFanSpeedValue.iFlags & ADL_DL_FANCTRL_FLAG_USER_DEFINED_SPEED)) {
|
|
|
|
|
+ /* If user defined is not already specified, set it first */
|
|
|
|
|
+ ga->lpFanSpeedValue.iFlags |= ADL_DL_FANCTRL_FLAG_USER_DEFINED_SPEED;
|
|
|
|
|
+ ADL_Overdrive5_FanSpeed_Set(ga->iAdapterIndex, 0, &ga->lpFanSpeedValue);
|
|
|
|
|
+ }
|
|
|
if (!(ga->lpFanSpeedInfo.iFlags & ADL_DL_FANCTRL_SUPPORTS_PERCENT_WRITE)) {
|
|
if (!(ga->lpFanSpeedInfo.iFlags & ADL_DL_FANCTRL_SUPPORTS_PERCENT_WRITE)) {
|
|
|
/* Must convert speed to an RPM */
|
|
/* Must convert speed to an RPM */
|
|
|
iFanSpeed = ga->lpFanSpeedInfo.iMaxRPM * iFanSpeed / 100;
|
|
iFanSpeed = ga->lpFanSpeedInfo.iMaxRPM * iFanSpeed / 100;
|
|
|
ga->lpFanSpeedValue.iSpeedType = ADL_DL_FANCTRL_SPEED_TYPE_RPM;
|
|
ga->lpFanSpeedValue.iSpeedType = ADL_DL_FANCTRL_SPEED_TYPE_RPM;
|
|
|
} else
|
|
} else
|
|
|
ga->lpFanSpeedValue.iSpeedType = ADL_DL_FANCTRL_SPEED_TYPE_PERCENT;
|
|
ga->lpFanSpeedValue.iSpeedType = ADL_DL_FANCTRL_SPEED_TYPE_PERCENT;
|
|
|
- if (!(ga->lpFanSpeedValue.iFlags & ADL_DL_FANCTRL_FLAG_USER_DEFINED_SPEED)) {
|
|
|
|
|
- /* If user defined is not already specified, set it first */
|
|
|
|
|
- ga->lpFanSpeedValue.iFlags = ADL_DL_FANCTRL_FLAG_USER_DEFINED_SPEED;
|
|
|
|
|
- ADL_Overdrive5_FanSpeed_Set(ga->iAdapterIndex, 0, &ga->lpFanSpeedValue);
|
|
|
|
|
- }
|
|
|
|
|
ga->lpFanSpeedValue.iFanSpeed = iFanSpeed;
|
|
ga->lpFanSpeedValue.iFanSpeed = iFanSpeed;
|
|
|
ret = ADL_Overdrive5_FanSpeed_Set(ga->iAdapterIndex, 0, &ga->lpFanSpeedValue);
|
|
ret = ADL_Overdrive5_FanSpeed_Set(ga->iAdapterIndex, 0, &ga->lpFanSpeedValue);
|
|
|
ga->managed = true;
|
|
ga->managed = true;
|