Browse Source

If we're well below the target temperature, increase gpu engine speed back to maximum in case we have gotten lost between profiles during an idle
period.

Con Kolivas 14 years ago
parent
commit
b77656b78b
1 changed files with 2 additions and 0 deletions
  1. 2 0
      adl.c

+ 2 - 0
adl.c

@@ -1079,6 +1079,8 @@ void gpu_autotune(int gpu, enum dev_enable *denable)
 			/* Only try to tune engine speed up if this GPU is not disabled */
 			/* Only try to tune engine speed up if this GPU is not disabled */
 		} else if (temp < ga->targettemp && engine < ga->maxspeed && *denable == DEV_ENABLED) {
 		} else if (temp < ga->targettemp && engine < ga->maxspeed && *denable == DEV_ENABLED) {
 			applog(LOG_DEBUG, "Temperature below target, increasing clock speed");
 			applog(LOG_DEBUG, "Temperature below target, increasing clock speed");
+			if (temp < ga->targettemp - opt_hysteresis)
+				newengine = ga->maxspeed;
 			newengine = engine + ga->lpOdParameters.sEngineClock.iStep;
 			newengine = engine + ga->lpOdParameters.sEngineClock.iStep;
 		} else if (temp < ga->targettemp && *denable == DEV_RECOVER && opt_restart) {
 		} else if (temp < ga->targettemp && *denable == DEV_RECOVER && opt_restart) {
 			applog(LOG_NOTICE, "Device recovered to temperature below target, re-enabling");
 			applog(LOG_NOTICE, "Device recovered to temperature below target, re-enabling");