Use submit_tested_work in bitfury driver to avoid unnecessarily re-testing the work for validity.
diff --git a/driver-bitfury.c b/driver-bitfury.c
index 44e90e0..a5ca563 100644
--- a/driver-bitfury.c
+++ b/driver-bitfury.c
@@ -168,13 +168,11 @@ const uint32_t bf_offsets[] = {0, -0x400000, -0x800000};
static bool bitfury_checkresults(struct thr_info *thr, struct work *work, uint32_t nonce)
{
- uint32_t offset_nonce;
int i;
for (i = 0; i < BT_OFFSETS; i++) {
- offset_nonce = nonce + bf_offsets[i];
- if (test_nonce(work, offset_nonce)) {
- submit_nonce(thr, work, offset_nonce);
+ if (test_nonce(work, nonce + bf_offsets[i])) {
+ submit_tested_work(thr, work);
return true;
}
}
diff --git a/miner.h b/miner.h
index d8d4148..867ca0e 100644
--- a/miner.h
+++ b/miner.h
@@ -1358,6 +1358,7 @@ struct modminer_fpga_state {
extern void get_datestamp(char *, size_t, struct timeval *);
extern void inc_hw_errors(struct thr_info *thr);
extern bool test_nonce(struct work *work, uint32_t nonce);
+extern void submit_tested_work(struct thr_info *thr, struct work *work);
extern bool submit_nonce(struct thr_info *thr, struct work *work, uint32_t nonce);
extern struct work *get_queued(struct cgpu_info *cgpu);
extern struct work *__find_work_bymidstate(struct work *que, char *midstate, size_t midstatelen, char *data, int offset, size_t datalen);