Commit 316e6d61c9631214d92472524254ba1c4d960872

Con Kolivas 2013-10-25T14:29:43

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;