|
|
@@ -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);
|