Browse Source

Merge branch 'rockminer' into bfgminer

Luke Dashjr 11 years ago
parent
commit
268560afd9
1 changed files with 10 additions and 3 deletions
  1. 10 3
      driver-rockminer.c

+ 10 - 3
driver-rockminer.c

@@ -23,7 +23,7 @@
 #define ROCKMINER_MIN_FREQ_MHZ  200
 #define ROCKMINER_DEF_FREQ_MHZ  270
 #define ROCKMINER_MAX_SAFE_FREQ_MHZ  290
-#define ROCKMINER_MAX_FREQ_MHZ  2560
+#define ROCKMINER_MAX_FREQ_MHZ  640
 #define ROCKMINER_POLL_US         0
 #define ROCKMINER_RETRY_US  5000000
 #define ROCKMINER_MIDTASK_TIMEOUT_US  500000
@@ -427,13 +427,15 @@ void rockminer_poll(struct thr_info * const master_thr)
 			case ROCKMINER_REPLY_TASK_COMPLETE:
 				applog(LOG_DEBUG, "%"PRIpreprv": Task %d completed", proc->proc_repr, taskid);
 				hashes_done2(thr, 0x100000000, NULL);
-				timer_set_delay_from_now(&chip->tv_midtask_timeout, ROCKMINER_MIDTASK_TIMEOUT_US);
+				if (proc->deven == DEV_ENABLED)
+					timer_set_delay_from_now(&chip->tv_midtask_timeout, ROCKMINER_MIDTASK_TIMEOUT_US);
 				break;
 			case ROCKMINER_REPLY_GET_TASK:
 				applog(LOG_DEBUG, "%"PRIpreprv": Task %d requested", proc->proc_repr, taskid);
 				thr->queue_full = false;
 				++chip->requested_work;
-				timer_set_delay_from_now(&chip->tv_midtask_timeout, ROCKMINER_TASK_TIMEOUT_US);
+				if (proc->deven == DEV_ENABLED)
+					timer_set_delay_from_now(&chip->tv_midtask_timeout, ROCKMINER_TASK_TIMEOUT_US);
 				break;
 		}
 	}
@@ -449,6 +451,11 @@ void rockminer_poll(struct thr_info * const master_thr)
 		
 		if (timer_passed(&chip->tv_midtask_timeout, &tv_now))
 		{
+			if (proc->deven != DEV_ENABLED)
+			{
+				timer_unset(&chip->tv_midtask_timeout);
+				continue;
+			}
 			// A task completed, but no request followed
 			// This means it missed our last task send, so we need to resend it
 			applog(LOG_WARNING, "%"PRIpreprv": No task request? Probably lost, resending task %d", proc->proc_repr, chip->last_taskid);