From f74112b551691e84f5064734604bee8fba2e860d Mon Sep 17 00:00:00 2001 From: Shaun Ruffell Date: Fri, 19 Aug 2011 22:40:41 +0000 Subject: [PATCH] wctdm24xxp: Set 'fastoffhook' counter to 8ms and turn off calibration delay. r10006 "wctdm24xxp: Add 'fastpick' module parameter." copied the fast-off hook module parameter from the wctdm.c driver, but the setting in that driver does not match the data sheet. The previous commit did not actually change any of the significant bits in that register. Also, that commit changed the timer, but did not disable the callibration delay which is necessary for Type-II callerid. The fastpickup option in the wctdm24xxp driver should now match the fastpickup option in the wctdm driver. DAHDI-224. Reported-By: Kinnith Wallace Signed-off-by: Shaun Ruffell git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@10148 a0bf4364-ded3-4de4-8d8a-66a801d63aff --- drivers/dahdi/wctdm24xxp/base.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/dahdi/wctdm24xxp/base.c b/drivers/dahdi/wctdm24xxp/base.c index facbd1b..316d79d 100644 --- a/drivers/dahdi/wctdm24xxp/base.c +++ b/drivers/dahdi/wctdm24xxp/base.c @@ -2876,7 +2876,10 @@ wctdm_init_voicedaa(struct wctdm *wc, struct wctdm_module *mod, wctdm_setreg(wc, mod, 30, reg30); /* Misc. DAA parameters */ - reg31 = (fastpickup) ? 0xb3 : 0xa3; + + /* If fast pickup is set, then the off hook counter will be set to 8 + * ms, otherwise 128 ms. */ + reg31 = (fastpickup) ? 0xe3 : 0xa3; reg31 |= (fxo_modes[_opermode].ohs2 << 3); wctdm_setreg(wc, mod, 31, reg31); @@ -2886,6 +2889,10 @@ wctdm_init_voicedaa(struct wctdm *wc, struct wctdm_module *mod, /* Enable ISO-Cap */ wctdm_setreg(wc, mod, 6, 0x00); + /* Turn off the calibration delay when fastpickup is enabled. */ + if (fastpickup) + wctdm_setreg(wc, mod, 17, wctdm_getreg(wc, mod, 17) | 0x20); + /* Wait 1000ms for ISO-cap to come up */ newjiffies = jiffies; newjiffies += 2 * HZ;