Reset the other auto counters in avalon when idling a device.
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
diff --git a/driver-avalon.c b/driver-avalon.c
index 4efc783..c2c8af4 100644
--- a/driver-avalon.c
+++ b/driver-avalon.c
@@ -846,6 +846,13 @@ static void avalon_dec_freq(struct avalon_info *info)
info->frequency, info->timeout);
}
+static void avalon_reset_auto(struct avalon_info *info)
+{
+ info->auto_queued =
+ info->auto_nonces =
+ info->auto_hw = 0;
+}
+
static void *avalon_send_tasks(void *userdata)
{
struct cgpu_info *avalon = (struct cgpu_info *)userdata;
@@ -876,9 +883,7 @@ static void *avalon_send_tasks(void *userdata)
else if (info->auto_hw * 66 > total)
avalon_dec_freq(info);
}
- info->auto_queued =
- info->auto_nonces =
- info->auto_hw = 0;
+ avalon_reset_auto(info);
mutex_unlock(&info->lock);
}
@@ -907,7 +912,7 @@ static void *avalon_send_tasks(void *userdata)
info->miner_count, 1, 1, info->frequency);
/* Reset the auto_queued count if we end up
* idling any miners. */
- info->auto_queued = 0;
+ avalon_reset_auto(info);
}
ret = avalon_send_task(&at, avalon);