Browse Source

Revert "The result_wrong measurement for avalon is continually leading to false positives so remove it."

This reverts commit 08c0ac290c.
nfactor-troky
Con Kolivas 12 years ago
parent
commit
47309e1a18
  1. 14
      driver-avalon.c

14
driver-avalon.c

@ -829,6 +829,7 @@ static int64_t avalon_scanhash(struct thr_info *thr)
uint32_t nonce; uint32_t nonce;
int64_t hash_count; int64_t hash_count;
static int first_try = 0; static int first_try = 0;
int result_wrong;
avalon = thr->cgpu; avalon = thr->cgpu;
works = avalon->works; works = avalon->works;
@ -890,6 +891,7 @@ static int64_t avalon_scanhash(struct thr_info *thr)
elapsed.tv_sec = elapsed.tv_usec = 0; elapsed.tv_sec = elapsed.tv_usec = 0;
gettimeofday(&tv_start, NULL); gettimeofday(&tv_start, NULL);
result_wrong = 0;
hash_count = 0; hash_count = 0;
while (true) { while (true) {
full = avalon_buffer_full(fd); full = avalon_buffer_full(fd);
@ -917,6 +919,7 @@ static int64_t avalon_scanhash(struct thr_info *thr)
if (!avalon_decode_nonce(thr, &ar, &nonce)) { if (!avalon_decode_nonce(thr, &ar, &nonce)) {
info->no_matching_work++; info->no_matching_work++;
result_wrong++;
if (opt_debug) { if (opt_debug) {
timersub(&tv_finish, &tv_start, &elapsed); timersub(&tv_finish, &tv_start, &elapsed);
@ -936,6 +939,17 @@ static int64_t avalon_scanhash(struct thr_info *thr)
elapsed.tv_sec, elapsed.tv_usec); elapsed.tv_sec, elapsed.tv_usec);
} }
} }
if (result_wrong >= avalon_get_work_count && ret != AVA_GETS_RESTART) {
/* This mean FPGA controller gave all wrong results, so
* try to reset the Avalon */
do_avalon_close(thr);
applog(LOG_ERR,
"AVA%i: FPGA controller mess up", avalon->device_id);
dev_error(avalon, REASON_DEV_COMMS_ERROR);
sleep(1);
avalon_init(avalon);
return 0;
}
avalon_free_work_array(thr); avalon_free_work_array(thr);

Loading…
Cancel
Save