Browse Source

Merge branch 'bitforce_queue_parallel' into bfgminer

Luke Dashjr 12 years ago
parent
commit
dceb0845b3
1 changed files with 10 additions and 0 deletions
  1. 10 0
      driver-bitforce.c

+ 10 - 0
driver-bitforce.c

@@ -1232,6 +1232,8 @@ static bool bitforce_thread_init(struct thr_info *thr)
 	bool sc = initdata->sc;
 	int xlink_id = 0, boardno = 0;
 	struct bitforce_proc_data *first_on_this_board;
+	char buf[100];
+	int fd = bitforce->device_fd;
 	
 	for ( ; bitforce; bitforce = bitforce->next_proc)
 	{
@@ -1294,6 +1296,9 @@ static bool bitforce_thread_init(struct thr_info *thr)
 		}
 		bitforce->status = LIFE_INIT2;
 		
+		// Clear job queue to start fresh; ignore response
+		bitforce_cmd1(fd, data->xlink_id, buf, sizeof(buf), "ZQX");
+		
 		first_on_this_board = procdata;
 		for (int proc = 1; proc < data->parallel; ++proc)
 		{
@@ -1316,6 +1321,7 @@ static bool bitforce_thread_init(struct thr_info *thr)
 		{}
 	}
 	
+	// NOTE: This doesn't restore the first processor, but it does get us the last one; this is sufficient for the delay debug and start of the next loop below
 	bitforce = thr->cgpu;
 
 	free(initdata->parallels);
@@ -1327,6 +1333,10 @@ static bool bitforce_thread_init(struct thr_info *thr)
 	applog(LOG_DEBUG, "%s: Delaying start by %dms", bitforce->dev_repr, wait / 1000);
 	nmsleep(wait);
 
+	// Clear results queue last, to start fresh; ignore response
+	for (bitforce = bitforce->device; bitforce; bitforce = bitforce->next_proc)
+		bitforce_zox(thr, "ZOX");
+	
 	return true;
 }