Browse Source

Merge branch 'erupter_identify' into bfgminer

Luke Dashjr 12 years ago
parent
commit
771c04fa6a
1 changed files with 11 additions and 3 deletions
  1. 11 3
      driver-icarus.c

+ 11 - 3
driver-icarus.c

@@ -854,10 +854,13 @@ void handle_identify(struct thr_info * const thr, int ret, const bool was_first_
 	}
 	}
 	
 	
 	// 4. Start next job
 	// 4. Start next job
-	applog(LOG_DEBUG, "%"PRIpreprv": Identify: Starting next job", icarus->proc_repr);
-	if (!icarus_job_start(thr))
+	if (!state->firstrun)
+	{
+		applog(LOG_DEBUG, "%"PRIpreprv": Identify: Starting next job", icarus->proc_repr);
+		if (!icarus_job_start(thr))
 no_job_start:
 no_job_start:
-		state->firstrun = true;
+			state->firstrun = true;
+	}
 	
 	
 	state->identify = false;
 	state->identify = false;
 }
 }
@@ -1015,6 +1018,11 @@ static int64_t icarus_scanhash(struct thr_info *thr, struct work *work,
 			if (!icarus_reopen(icarus, state, &fd))
 			if (!icarus_reopen(icarus, state, &fd))
 				state->firstrun = true;
 				state->firstrun = true;
 			else
 			else
+			if (unlikely(state->identify))
+			{
+				// Delay job start until later...
+			}
+			else
 			// Some devices (Cairnsmore1, for example) abort hashing when reopened, so send the job again
 			// Some devices (Cairnsmore1, for example) abort hashing when reopened, so send the job again
 			if (!icarus_job_start(thr))
 			if (!icarus_job_start(thr))
 				state->firstrun = true;
 				state->firstrun = true;