Browse Source

Check for work restart, breaking out early after usb reads in BF1.

Con Kolivas 12 years ago
parent
commit
f97e1ad25f
1 changed files with 5 additions and 0 deletions
  1. 5 0
      driver-bitfury.c

+ 5 - 0
driver-bitfury.c

@@ -181,6 +181,8 @@ static int64_t bitfury_scanhash(struct thr_info *thr, struct work *work,
 	 * look for the results to prev work. */
 	 * look for the results to prev work. */
 	usb_read_timeout(bitfury, info->buf, 512, &amount, 600, C_BFO_GETRES);
 	usb_read_timeout(bitfury, info->buf, 512, &amount, 600, C_BFO_GETRES);
 	info->tot += amount;
 	info->tot += amount;
+	if (unlikely(thr->work_restart))
+		goto cascade;
 
 
 	/* Now look for the bulk of the previous work results, they will come
 	/* Now look for the bulk of the previous work results, they will come
 	 * in a batch following the first data. */
 	 * in a batch following the first data. */
@@ -191,6 +193,9 @@ static int64_t bitfury_scanhash(struct thr_info *thr, struct work *work,
 		info->tot += amount;
 		info->tot += amount;
 	};
 	};
 
 
+	if (unlikely(thr->work_restart))
+		goto cascade;
+
 	/* Send work */
 	/* Send work */
 	usb_write(bitfury, buf, 45, &amount, C_BFO_REQWORK);
 	usb_write(bitfury, buf, 45, &amount, C_BFO_REQWORK);
 	/* Get response acknowledging work */
 	/* Get response acknowledging work */