Make bitforce nonce range support a command line option --bfl-range since enabling it decrease hashrate by 1%.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
diff --git a/cgminer.c b/cgminer.c
index df98beb..74ea9df 100644
--- a/cgminer.c
+++ b/cgminer.c
@@ -144,6 +144,9 @@ char *opt_icarus_timing = NULL;
char *opt_kernel_path;
char *cgminer_path;
+#if defined(USE_BITFORCE)
+bool opt_bfl_noncerange;
+#endif
#define QUIET (opt_quiet || opt_realquiet)
struct thr_info *thr_info;
@@ -776,6 +779,11 @@ static struct opt_table opt_config_table[] = {
OPT_WITHOUT_ARG("--benchmark",
opt_set_bool, &opt_benchmark,
"Run cgminer in benchmark mode - produces no shares"),
+#if defined(USE_BITFORCE)
+ OPT_WITHOUT_ARG("--bfl-range",
+ opt_set_bool, &opt_bfl_noncerange,
+ "Use nonce range on bitforce devices if supported"),
+#endif
#ifdef WANT_CPUMINE
OPT_WITH_ARG("--bench-algo|-b",
set_int_0_to_9999, opt_show_intval, &opt_bench_algo,
diff --git a/driver-bitforce.c b/driver-bitforce.c
index 2974361..ad04b89 100644
--- a/driver-bitforce.c
+++ b/driver-bitforce.c
@@ -83,10 +83,13 @@ static bool bitforce_detect_one(const char *devpath)
bitforce->device_path = strdup(devpath);
bitforce->deven = DEV_ENABLED;
bitforce->threads = 1;
- bitforce->sleep_ms = BITFORCE_SLEEP_MS;
/* Initially enable support for nonce range and disable it later if it
* fails */
- bitforce->nonce_range = true;
+ if (opt_bfl_noncerange) {
+ bitforce->nonce_range = true;
+ bitforce->sleep_ms = BITFORCE_SLEEP_MS;
+ } else
+ bitforce->sleep_ms = BITFORCE_SLEEP_MS * 5;
if (likely((!memcmp(pdevbuf, ">>>ID: ", 7)) && (s = strstr(pdevbuf + 3, ">>>")))) {
s[0] = '\0';
diff --git a/miner.h b/miner.h
index c368480..21d5f6a 100644
--- a/miner.h
+++ b/miner.h
@@ -545,6 +545,9 @@ extern bool opt_api_network;
extern bool opt_delaynet;
extern bool opt_restart;
extern char *opt_icarus_timing;
+#ifdef USE_BITFORCE
+extern bool opt_bfl_noncerange;
+#endif
extern pthread_rwlock_t netacc_lock;