From be0d899b74905d161bbd2959570cf2d2dbebdff2 Mon Sep 17 00:00:00 2001 From: Chris Chua Date: Fri, 16 Aug 2013 17:00:56 +0000 Subject: [PATCH] making sure original Avalon is unaffected by BitBurner changes --- driver-avalon.c | 11 +++++++++-- driver-avalon.h | 3 ++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/driver-avalon.c b/driver-avalon.c index b47bff66..0f35f5ce 100644 --- a/driver-avalon.c +++ b/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"); diff --git a/driver-avalon.h b/driver-avalon.h index 116e80fe..e8f07c7e 100644 --- a/driver-avalon.h +++ b/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