if (dpy == NULL)
{
+ xnvctrl->dpy = NULL;
+
return -1;
}
void hm_XNVCTRL_XCloseDisplay (XNVCTRL_PTR *xnvctrl)
{
+ if (xnvctrl->dpy == NULL) return;
+
xnvctrl->XCloseDisplay (xnvctrl->dpy);
}
int get_fan_control (XNVCTRL_PTR *xnvctrl, int gpu, int *val)
{
+ if (xnvctrl->dpy == NULL) return -1;
+
int rc = xnvctrl->XNVCTRLQueryTargetAttribute (xnvctrl->dpy, NV_CTRL_TARGET_TYPE_GPU, gpu, 0, NV_CTRL_GPU_COOLER_MANUAL_CONTROL, val);
if (!rc) return -1;
int set_fan_control (XNVCTRL_PTR *xnvctrl, int gpu, int val)
{
+ if (xnvctrl->dpy == NULL) return -1;
+
xnvctrl->XNVCTRLSetTargetAttribute (xnvctrl->dpy, NV_CTRL_TARGET_TYPE_GPU, gpu, 0, NV_CTRL_GPU_COOLER_MANUAL_CONTROL, val);
int cur;
int get_core_threshold (XNVCTRL_PTR *xnvctrl, int gpu, int *val)
{
+ if (xnvctrl->dpy == NULL) return -1;
+
int rc = xnvctrl->XNVCTRLQueryTargetAttribute (xnvctrl->dpy, NV_CTRL_TARGET_TYPE_GPU, gpu, 0, NV_CTRL_GPU_CORE_THRESHOLD, val);
if (!rc) return -1;
int get_fan_speed_target (XNVCTRL_PTR *xnvctrl, int gpu, int *val)
{
+ if (xnvctrl->dpy == NULL) return -1;
+
int rc = xnvctrl->XNVCTRLQueryTargetAttribute (xnvctrl->dpy, NV_CTRL_TARGET_TYPE_COOLER, gpu, 0, NV_CTRL_THERMAL_COOLER_LEVEL, val);
if (!rc) return -1;
int set_fan_speed_target (XNVCTRL_PTR *xnvctrl, int gpu, int val)
{
+ if (xnvctrl->dpy == NULL) return -1;
+
xnvctrl->XNVCTRLSetTargetAttribute (xnvctrl->dpy, NV_CTRL_TARGET_TYPE_COOLER, gpu, 0, NV_CTRL_THERMAL_COOLER_LEVEL, val);
int cur;
}
}
- if (data.hm_adl == NULL && data.hm_nvml == NULL && data.hm_xnvctrl)
+ if (data.hm_adl == NULL && data.hm_nvml == NULL && data.hm_xnvctrl == NULL)
{
gpu_temp_disable = 1;
}
data.hm_device[device_id].xnvctrl = 0;
data.hm_device[device_id].od_version = hm_adapters_adl[platform_devices_id].od_version;
data.hm_device[device_id].fan_get_supported = hm_adapters_adl[platform_devices_id].fan_get_supported;
- data.hm_device[device_id].fan_set_supported = hm_adapters_adl[platform_devices_id].fan_set_supported;
+ data.hm_device[device_id].fan_set_supported = 0;
}
if (device_param->device_vendor_id == VENDOR_ID_NV)
else if (device_param->device_vendor_id == VENDOR_ID_NV)
{
#ifdef _POSIX
- rc = hm_set_fanspeed_with_device_id_xnvctrl (device_id, fanspeed);
+ rc = set_fan_control (data.hm_xnvctrl, data.hm_device[device_id].xnvctrl, NV_CTRL_GPU_COOLER_MANUAL_CONTROL_TRUE);
#endif
}