Put an entry into the work struct telling drivers how much they can roll the ntime themselves.
diff --git a/cgminer.c b/cgminer.c
index 5caf08a..dd43fa0 100644
--- a/cgminer.c
+++ b/cgminer.c
@@ -1911,6 +1911,8 @@ static void gen_gbt_work(struct pool *pool, struct work *work)
work->longpoll = false;
work->getwork_mode = GETWORK_MODE_GBT;
work->work_block = work_block;
+ /* Nominally allow a driver to ntime roll 60 seconds */
+ work->drv_rolllimit = 60;
calc_diff(work, 0);
cgtime(&work->tv_staged);
}
@@ -6013,6 +6015,8 @@ static void gen_stratum_work(struct pool *pool, struct work *work)
work->longpoll = false;
work->getwork_mode = GETWORK_MODE_STRATUM;
work->work_block = work_block;
+ /* Nominally allow a driver to ntime roll 60 seconds */
+ work->drv_rolllimit = 60;
calc_diff(work, work->sdiff);
cgtime(&work->tv_staged);
diff --git a/miner.h b/miner.h
index 9087c27..874f172 100644
--- a/miner.h
+++ b/miner.h
@@ -1389,6 +1389,7 @@ struct work {
unsigned char hash2[32];
int rolls;
+ int drv_rolllimit; /* How much the driver can roll ntime */
dev_blk_ctx blk;