Browse Source

Bugfix: avalon: Don't "probe" with -S all

Luke Dashjr 12 years ago
parent
commit
67ce542353
3 changed files with 6 additions and 1 deletions
  1. 1 0
      driver-avalon.c
  2. 4 1
      miner.c
  3. 1 0
      miner.h

+ 1 - 0
driver-avalon.c

@@ -1017,6 +1017,7 @@ static void avalon_shutdown(struct thr_info *thr)
 struct device_drv avalon_drv = {
 struct device_drv avalon_drv = {
 	.dname = "avalon",
 	.dname = "avalon",
 	.name = "AVA",
 	.name = "AVA",
+	.no_allall = true,
 	.lowl_probe = avalon_lowl_probe,
 	.lowl_probe = avalon_lowl_probe,
 	.thread_prepare = avalon_prepare,
 	.thread_prepare = avalon_prepare,
 	.minerloop = hash_queued_work,
 	.minerloop = hash_queued_work,

+ 4 - 1
miner.c

@@ -10492,15 +10492,18 @@ void *probe_device_thread(void *p)
 		{
 		{
 			LL_FOREACH2(infolist, info, same_devid_next)
 			LL_FOREACH2(infolist, info, same_devid_next)
 			{
 			{
+				bool allall = false;
 				if (
 				if (
 #ifdef NEED_BFG_LOWL_VCOM
 #ifdef NEED_BFG_LOWL_VCOM
-					(info->lowl == &lowl_vcom && !strcasecmp(dname, "all")) ||
+					(info->lowl == &lowl_vcom && (allall = !strcasecmp(dname, "all"))) ||
 #endif
 #endif
 					_probe_device_match(info, dname))
 					_probe_device_match(info, dname))
 				{
 				{
 					BFG_FOREACH_DRIVER_BY_PRIORITY(dreg, dreg_tmp)
 					BFG_FOREACH_DRIVER_BY_PRIORITY(dreg, dreg_tmp)
 					{
 					{
 						const struct device_drv * const drv = dreg->drv;
 						const struct device_drv * const drv = dreg->drv;
+						if (allall && drv->no_allall)
+							continue;
 						if (!drv->lowl_probe)
 						if (!drv->lowl_probe)
 							continue;
 							continue;
 						if (drv->lowl_probe(info))
 						if (drv->lowl_probe(info))

+ 1 - 0
miner.h

@@ -294,6 +294,7 @@ struct device_drv {
 	const char *dname;
 	const char *dname;
 	const char *name;
 	const char *name;
 	int8_t probe_priority;
 	int8_t probe_priority;
+	bool no_allall;  // Never probe this driver for -S all (without driver name specification)
 	supported_algos_t supported_algos;
 	supported_algos_t supported_algos;
 
 
 	// DRV-global functions
 	// DRV-global functions