Do not poll in avalon_get_results without sleeping if we have finished parsing a full result.
diff --git a/driver-avalon.c b/driver-avalon.c
index 29e65be..4345f7b 100644
--- a/driver-avalon.c
+++ b/driver-avalon.c
@@ -872,8 +872,9 @@ static void *avalon_get_results(void *userdata)
/* As the usb read returns after just 1ms, sleep long enough
* to leave the interface idle for writes to occur, but do not
- * sleep if we have been receiving data as more may be coming. */
- if (ret < 1) {
+ * sleep if we have been receiving data, and we do not yet have
+ * a full result as more may be coming. */
+ if (ret < 1 || offset == 0) {
cgtime(&tv_end);
timersub(&tv_end, &tv_start, &tv_diff);
/* Assume it has not been > 1 second so ignore tv_sec */