Browse Source

Merge branch 'icarus_cfg_detecttimeout' into bfgminer

Luke Dashjr 12 years ago
parent
commit
c8dc302a3e
8 changed files with 21 additions and 10 deletions
  1. 1 1
      Makefile.am
  2. 1 1
      driver-antminer.c
  3. 1 1
      driver-cairnsmore.c
  4. 1 1
      driver-dualminer.c
  5. 1 1
      driver-erupter.c
  6. 12 2
      driver-icarus.c
  7. 3 2
      driver-icarus.h
  8. 1 1
      gc3355.c

+ 1 - 1
Makefile.am

@@ -228,7 +228,7 @@ bfgminer_SOURCES += driver-twinfury.c driver-twinfury.h
 endif
 
 if HAS_ICARUS
-bfgminer_SOURCES += driver-icarus.c icarus-common.h
+bfgminer_SOURCES += driver-icarus.c driver-icarus.h
 bfgminer_SOURCES += driver-cairnsmore.c
 bfgminer_SOURCES += driver-erupter.c
 bfgminer_SOURCES += driver-antminer.c

+ 1 - 1
driver-antminer.c

@@ -19,7 +19,7 @@
 #include <strings.h>
 
 #include "miner.h"
-#include "icarus-common.h"
+#include "driver-icarus.h"
 #include "lowlevel.h"
 #include "lowl-vcom.h"
 #include "deviceapi.h"

+ 1 - 1
driver-cairnsmore.c

@@ -14,7 +14,7 @@
 
 #include "compat.h"
 #include "dynclock.h"
-#include "icarus-common.h"
+#include "driver-icarus.h"
 #include "lowlevel.h"
 #include "lowl-vcom.h"
 #include "miner.h"

+ 1 - 1
driver-dualminer.c

@@ -19,7 +19,7 @@
 #include <strings.h>
 
 #include "miner.h"
-#include "icarus-common.h"
+#include "driver-icarus.h"
 #include "lowlevel.h"
 #include "lowl-vcom.h"
 #include "deviceapi.h"

+ 1 - 1
driver-erupter.c

@@ -12,7 +12,7 @@
 #include <stdbool.h>
 
 #include "miner.h"
-#include "icarus-common.h"
+#include "driver-icarus.h"
 #include "lowlevel.h"
 #include "lowl-vcom.h"
 

+ 12 - 2
driver-icarus.c

@@ -59,7 +59,7 @@
 
 #include "compat.h"
 #include "dynclock.h"
-#include "icarus-common.h"
+#include "driver-icarus.h"
 #include "lowl-vcom.h"
 
 // The serial I/O speed - Linux uses a define 'B115200' in bits/termios.h
@@ -493,6 +493,7 @@ bool icarus_detect_custom(const char *devpath, struct device_drv *api, struct IC
 	
 	// Set a default so that individual drivers need not specify
 	// e.g. Cairnsmore
+	BFGINIT(info->probe_read_count, 1);
 	if (info->read_size == 0)
 		info->read_size = ICARUS_DEFAULT_READ_SIZE;
 	
@@ -532,7 +533,7 @@ bool icarus_detect_custom(const char *devpath, struct device_drv *api, struct IC
 	// Do not use info->read_size here, instead read exactly ICARUS_NONCE_SIZE
 	// We will then compare the bytes left in fd with info->read_size to determine
 	// if this is a valid device
-	icarus_gets(nonce_bin, fd, &tv_finish, NULL, 1, ICARUS_NONCE_SIZE);
+	icarus_gets(nonce_bin, fd, &tv_finish, NULL, info->probe_read_count, ICARUS_NONCE_SIZE);
 	
 	// How many bytes were left after reading the above nonce
 	int bytes_left = icarus_excess_nonce_size(fd, info);
@@ -1282,6 +1283,14 @@ const char *icarus_set_baud(struct cgpu_info * const proc, const char * const op
 	return NULL;
 }
 
+static
+const char *icarus_set_probe_timeout(struct cgpu_info * const proc, const char * const optname, const char * const newvalue, char * const replybuf, enum bfg_set_device_replytype * const out_success)
+{
+	struct ICARUS_INFO * const info = proc->device_data;
+	info->probe_read_count = atof(newvalue) * 10.0 / ICARUS_READ_FAULT_DECISECONDS;
+	return NULL;
+}
+
 static
 const char *icarus_set_work_division(struct cgpu_info * const proc, const char * const optname, const char * const newvalue, char * const replybuf, enum bfg_set_device_replytype * const out_success)
 {
@@ -1346,6 +1355,7 @@ const struct bfg_set_device_definition icarus_set_device_funcs[] = {
 	{"fpga_count"   , icarus_set_fpga_count   , "number of chips working on pieces"},
 	{"reopen"       , icarus_set_reopen       , "how often to reopen device: never, timeout, cycle, (or now for a one-shot reopen)"},
 	// NOTE: Below here, order is irrelevant
+	{"probe_timeout", icarus_set_probe_timeout},
 	{"timing"       , icarus_set_timing       , "timing of device; see README.FPGA"},
 	{NULL},
 };

+ 3 - 2
icarus-common.h → driver-icarus.h

@@ -9,8 +9,8 @@
  * any later version.  See COPYING for more details.
  */
 
-#ifndef ICARUS_COMMON_H
-#define ICARUS_COMMON_H
+#ifndef BFG_DRIVER_ICARUS_H
+#define BFG_DRIVER_ICARUS_H
 
 #include <stdbool.h>
 #include <stdint.h>
@@ -76,6 +76,7 @@ struct ICARUS_INFO {
 	// seconds per Hash
 	double Hs;
 	int read_count;
+	int probe_read_count;
 	// ds limit for (short=/long=) read_count
 	int read_count_limit;
 

+ 1 - 1
gc3355.c

@@ -12,7 +12,7 @@
 
 #include <string.h>
 #include "miner.h"
-#include "icarus-common.h"
+#include "driver-icarus.h"
 #include "logging.h"
 
 #ifndef WIN32