Browse Source

drv_set_defaults: Take devpath and serial params so matching by those can work

Luke Dashjr 12 years ago
parent
commit
70e622c4fb
5 changed files with 17 additions and 23 deletions
  1. 1 1
      driver-avalon.c
  2. 1 1
      driver-bitfury.c
  3. 1 1
      driver-icarus.c
  4. 13 18
      miner.c
  5. 1 2
      miner.h

+ 1 - 1
driver-avalon.c

@@ -533,7 +533,7 @@ static bool avalon_detect_one(const char *devpath)
 		.timeout = AVALON_DEFAULT_TIMEOUT,
 		.frequency = AVALON_DEFAULT_FREQUENCY,
 	};
-	drv_set_defaults2(&avalon_drv, avalon_set_device_funcs, info);
+	drv_set_defaults(&avalon_drv, avalon_set_device_funcs, info, devpath, detectone_meta_info.serial, 1);
 
 	applog(LOG_DEBUG, "Avalon Detect: Attempting to open %s "
 	       "(baud=%d miner_count=%d asic_count=%d timeout=%d frequency=%d)",

+ 1 - 1
driver-bitfury.c

@@ -62,7 +62,7 @@ int bitfury_autodetect()
 		struct bitfury_device dummy_bitfury = {
 			.spi = sys_spi,
 		};
-		drv_set_defaults(&bitfury_drv, bitfury_spi_port_config, &dummy_bitfury);
+		drv_set_defaults(&bitfury_drv, bitfury_spi_port_config, &dummy_bitfury, NULL, NULL, 0);
 	}
 	
 	chip_n = libbitfury_detectChips1(sys_spi);

+ 1 - 1
driver-icarus.c

@@ -473,7 +473,7 @@ bool icarus_detect_custom(const char *devpath, struct device_drv *api, struct IC
 	unsigned char ob_bin[64], nonce_bin[ICARUS_NONCE_SIZE];
 	char nonce_hex[(sizeof(nonce_bin) * 2) + 1];
 
-	drv_set_defaults2(api, icarus_set_device_funcs, info);
+	drv_set_defaults(api, icarus_set_device_funcs, info, devpath, detectone_meta_info.serial, 1);
 
 	int baud = info->baud;
 	int work_division = info->work_division;

+ 13 - 18
miner.c

@@ -9759,7 +9759,7 @@ void cgpu_set_defaults(struct cgpu_info * const cgpu)
 	cgpu->already_set_defaults = true;
 }
 
-void drv_set_defaults(const struct device_drv * const drv, char *(*set_func)(struct cgpu_info *, char *, char *, char *), void *userp)
+void drv_set_defaults(const struct device_drv * const drv, const void *datap, void *userp, const char * const devpath, const char * const serial, const int mode)
 {
 	struct device_drv dummy_drv = *drv;
 	struct cgpu_info dummy_cgpu = {
@@ -9768,25 +9768,20 @@ void drv_set_defaults(const struct device_drv * const drv, char *(*set_func)(str
 		.device_id = -1,
 		.proc_id = -1,
 		.device_data = userp,
+		.device_path = devpath,
+		.dev_serial = serial,
 	};
 	strcpy(dummy_cgpu.proc_repr, drv->name);
-	dummy_drv.set_device = set_func;
-	cgpu_set_defaults(&dummy_cgpu);
-}
-
-void drv_set_defaults2(const struct device_drv * const drv, const struct bfg_set_device_definition *setfuncs, void *userp)
-{
-	struct device_drv dummy_drv = *drv;
-	struct cgpu_info dummy_cgpu = {
-		.drv = &dummy_drv,
-		.device = &dummy_cgpu,
-		.device_id = -1,
-		.proc_id = -1,
-		.device_data = userp,
-		.set_device_funcs = setfuncs,
-	};
-	strcpy(dummy_cgpu.proc_repr, drv->name);
-	dummy_drv.set_device = NULL;
+	switch (mode)
+	{
+		case 0:
+			dummy_drv.set_device = datap;
+			break;
+		case 1:
+			dummy_drv.set_device = NULL;
+			dummy_cgpu.set_device_funcs = datap;
+			break;
+	}
 	cgpu_set_defaults(&dummy_cgpu);
 }
 

+ 1 - 2
miner.h

@@ -1044,8 +1044,7 @@ extern void proc_enable(struct cgpu_info *);
 extern void reinit_device(struct cgpu_info *cgpu);
 
 extern void cgpu_set_defaults(struct cgpu_info *);
-extern void drv_set_defaults(const struct device_drv *, char *(*set_func)(struct cgpu_info *, char *, char *, char *), void *userp);
-extern void drv_set_defaults2(const struct device_drv *, const struct bfg_set_device_definition *, void *userp);
+extern void drv_set_defaults(const struct device_drv *, const void *, void *userp, const char *devpath, const char *serial, int mode);
 
 #ifdef HAVE_ADL
 extern bool gpu_stats(int gpu, float *temp, int *engineclock, int *memclock, float *vddc, int *activity, int *fanspeed, int *fanpercent, int *powertune);