Browse Source

making sure original Avalon is unaffected by BitBurner changes

Chris Chua 12 years ago
parent
commit
be0d899b74
2 changed files with 11 additions and 3 deletions
  1. 9 2
      driver-avalon.c
  2. 2 1
      driver-avalon.h

+ 9 - 2
driver-avalon.c

@@ -923,8 +923,12 @@ static void *avalon_get_results(void *userdata)
 
 static void avalon_rotate_array(struct cgpu_info *avalon)
 {
+	int array_size = AVALON_ARRAY_SIZE;
+
+	if (usb_ident(avalon) == IDENT_BTB)
+		array_size = BITBURNER_ARRAY_SIZE;
 	avalon->queued = 0;
-	if (++avalon->work_array >= AVALON_ARRAY_SIZE)
+	if (++avalon->work_array >= array_size)
 		avalon->work_array = 0;
 }
 
@@ -1090,10 +1094,13 @@ static bool avalon_prepare(struct thr_info *thr)
 {
 	struct cgpu_info *avalon = thr->cgpu;
 	struct avalon_info *info = avalon->device_data;
+	int array_size = AVALON_ARRAY_SIZE;
 
+	if (usb_ident(avalon) == IDENT_BTB)
+		array_size = BITBURNER_ARRAY_SIZE;
 	free(avalon->works);
 	avalon->works = calloc(info->miner_count * sizeof(struct work *),
-			       AVALON_ARRAY_SIZE);
+			       array_size);
 	if (!avalon->works)
 		quit(1, "Failed to calloc avalon works in avalon_prepare");
 

+ 2 - 1
driver-avalon.h

@@ -146,7 +146,8 @@ struct avalon_info {
 
 #define AVALON_WRITE_SIZE (sizeof(struct avalon_task))
 #define AVALON_READ_SIZE (sizeof(struct avalon_result))
-#define AVALON_ARRAY_SIZE 4
+#define AVALON_ARRAY_SIZE 3
+#define BITBURNER_ARRAY_SIZE 4
 
 #define AVA_GETS_ERROR -1
 #define AVA_GETS_OK 0