Browse Source

Set memory clock based on memdiff if present from with engine changes, allowing it to parallel manual changes from the menu as well.

Con Kolivas 13 years ago
parent
commit
e34105a47a
1 changed files with 6 additions and 2 deletions
  1. 6 2
      adl.c

+ 6 - 2
adl.c

@@ -789,6 +789,7 @@ static void get_enginerange(int gpu, int *imin, int *imax)
 int set_engineclock(int gpu, int iEngineClock)
 {
 	ADLODPerformanceLevels *lpOdPerformanceLevels;
+	struct cgpu_info *cgpu;
 	int i, lev, ret = 1;
 	struct gpu_adl *ga;
 
@@ -830,6 +831,11 @@ int set_engineclock(int gpu, int iEngineClock)
 	ga->managed = true;
 out:
 	unlock_adl();
+
+	cgpu = &gpus[gpu];
+	if (cgpu->gpu_memdiff)
+		set_memoryclock(gpu, iEngineClock / 100 + cgpu->gpu_memdiff);
+
 	return ret;
 }
 
@@ -1195,8 +1201,6 @@ void gpu_autotune(int gpu, enum dev_enable *denable)
 			newengine /= 100;
 			applog(LOG_INFO, "Setting GPU %d engine clock to %d", gpu, newengine);
 			set_engineclock(gpu, newengine);
-			if (cgpu->gpu_memdiff)
-				set_memoryclock(gpu, newengine + cgpu->gpu_memdiff);
 		}
 	}
 	ga->lasttemp = temp;