X-Git-Url: https://www.flypig.org.uk/git/?a=blobdiff_plain;f=src%2Fext_xnvctrl.c;h=78ffab64e0b71ba4de8c1c54638e12f3f9ac44fd;hb=6a2ec331efe11f36a718c60758fa0fd3db9b78fe;hp=582b86ff6e3a2e9d55d3970c399a33fc8691b937;hpb=e43be7aba38daf43d64f2d3f3223f3f7fa741bfb;p=hashcat.git diff --git a/src/ext_xnvctrl.c b/src/ext_xnvctrl.c index 582b86f..78ffab6 100644 --- a/src/ext_xnvctrl.c +++ b/src/ext_xnvctrl.c @@ -114,14 +114,18 @@ 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 rc = get_fan_control (xnvctrl, gpu, &cur); if (rc == -1) return -1; + xnvctrl->XNVCTRLSetTargetAttribute (xnvctrl->dpy, NV_CTRL_TARGET_TYPE_GPU, gpu, 0, NV_CTRL_GPU_COOLER_MANUAL_CONTROL, val); + + rc = get_fan_control (xnvctrl, gpu, &cur); + + if (rc == -1) return -1; + if (cur != val) return -1; return 0; @@ -140,6 +144,8 @@ int get_core_threshold (XNVCTRL_PTR *xnvctrl, int gpu, int *val) int get_fan_speed_current (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_CURRENT_LEVEL, val); if (!rc) return -1; @@ -162,14 +168,18 @@ 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; int rc = get_fan_speed_target (xnvctrl, gpu, &cur); if (rc == -1) return -1; + xnvctrl->XNVCTRLSetTargetAttribute (xnvctrl->dpy, NV_CTRL_TARGET_TYPE_COOLER, gpu, 0, NV_CTRL_THERMAL_COOLER_LEVEL, val); + + rc = get_fan_speed_target (xnvctrl, gpu, &cur); + + if (rc == -1) return -1; + if (cur != val) return -1; return 0;