The read_count is unused by the avalon get result code and no longer required for avalon reset so simplify code removing it.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
diff --git a/driver-avalon.c b/driver-avalon.c
index 7d02c50..1ef19aa 100644
--- a/driver-avalon.c
+++ b/driver-avalon.c
@@ -201,13 +201,12 @@ static int avalon_send_task(int fd, const struct avalon_task *at,
return AVA_SEND_BUFFER_EMPTY;
}
-static int avalon_gets(int fd, uint8_t *buf, int read_count,
- struct thr_info *thr, struct timeval *tv_finish)
+static int avalon_gets(int fd, uint8_t *buf, struct thr_info *thr,
+ struct timeval *tv_finish)
{
- ssize_t ret = 0;
- int rc = 0;
int read_amount = AVALON_READ_SIZE;
bool first = true;
+ ssize_t ret = 0;
while (true) {
struct timeval timeout = {0, 100000};
@@ -223,8 +222,7 @@ static int avalon_gets(int fd, uint8_t *buf, int read_count,
if (unlikely(ret < 0))
return AVA_GETS_ERROR;
if (likely(first)) {
- if (likely(tv_finish))
- gettimeofday(tv_finish, NULL);
+ gettimeofday(tv_finish, NULL);
first = false;
}
if (likely(ret >= read_amount))
@@ -234,41 +232,23 @@ static int avalon_gets(int fd, uint8_t *buf, int read_count,
continue;
}
- if (thr && thr->work_restart) {
- if (opt_debug) {
- applog(LOG_WARNING,
- "Avalon: Work restart at %.2f seconds",
- (float)(rc)/(float)AVALON_TIME_FACTOR);
- }
+ if (thr->work_restart) {
+ applog(LOG_DEBUG, "Avalon: Work restart");
return AVA_GETS_RESTART;
}
- rc++;
- if (rc >= read_count) {
- if (opt_debug) {
- applog(LOG_WARNING,
- "Avalon: No data in %.2f seconds",
- (float)rc/(float)AVALON_TIME_FACTOR);
- }
- return AVA_GETS_TIMEOUT;
- }
+ return AVA_GETS_TIMEOUT;
}
}
static int avalon_get_result(int fd, struct avalon_result *ar,
struct thr_info *thr, struct timeval *tv_finish)
{
- struct cgpu_info *avalon;
- struct avalon_info *info;
uint8_t result[AVALON_READ_SIZE];
- int ret, read_count;
-
- avalon = thr->cgpu;
- info = avalon_infos[avalon->device_id];
- read_count = info->read_count;
+ int ret;
memset(result, 0, AVALON_READ_SIZE);
- ret = avalon_gets(fd, result, read_count, thr, tv_finish);
+ ret = avalon_gets(fd, result, thr, tv_finish);
if (ret == AVA_GETS_OK) {
if (opt_debug) {
@@ -609,8 +589,6 @@ static bool avalon_detect_one(const char *devpath)
info->miner_count = miner_count;
info->asic_count = asic_count;
info->timeout = timeout;
- info->read_count = ((float)info->timeout * AVALON_HASH_TIME_FACTOR *
- AVALON_TIME_FACTOR) / (float)info->miner_count;
info->fan_pwm = AVALON_DEFAULT_FAN_MIN_PWM;
info->temp_max = 0;
@@ -994,7 +972,6 @@ static struct api_data *avalon_api_stats(struct cgpu_info *cgpu)
root = api_add_int(root, "baud", &(info->baud), false);
root = api_add_int(root, "miner_count", &(info->miner_count),false);
root = api_add_int(root, "asic_count", &(info->asic_count), false);
- root = api_add_int(root, "read_count", &(info->read_count), false);
root = api_add_int(root, "timeout", &(info->timeout), false);
root = api_add_int(root, "frequency", &(info->frequency), false);
diff --git a/driver-avalon.h b/driver-avalon.h
index c040d03..93c2e60 100644
--- a/driver-avalon.h
+++ b/driver-avalon.h
@@ -12,7 +12,6 @@
#ifdef USE_AVALON
-#define AVALON_TIME_FACTOR 10
#define AVALON_RESET_FAULT_DECISECONDS 1
#define AVALON_MINER_THREADS 1
@@ -73,8 +72,6 @@ struct avalon_result {
} __attribute__((packed, aligned(4)));
struct avalon_info {
- int read_count;
-
int baud;
int miner_count;
int asic_count;