Browse Source

Avalon BTB allow partial work to be transferred

Kano 12 years ago
parent
commit
ecc9457b6b
1 changed files with 7 additions and 1 deletions
  1. 7 1
      driver-avalon.c

+ 7 - 1
driver-avalon.c

@@ -984,7 +984,13 @@ static void *avalon_send_tasks(void *userdata)
 				applog(LOG_INFO,
 				applog(LOG_INFO,
 				       "%s%i: Buffer full after only %d of %d work queued",
 				       "%s%i: Buffer full after only %d of %d work queued",
 					avalon->drv->name, avalon->device_id, j, avalon_get_work_count);
 					avalon->drv->name, avalon->device_id, j, avalon_get_work_count);
-				break;
+
+					if (usb_ident(avalon) != IDENT_BTB)
+						break;
+					else {
+						while (avalon_buffer_full(avalon))
+							cgsem_wait(&info->write_sem);
+					}
 			}
 			}
 
 
 			if (likely(j < avalon->queued && !info->overheat && avalon->works[i])) {
 			if (likely(j < avalon->queued && !info->overheat && avalon->works[i])) {