summaryrefslogtreecommitdiff
path: root/drivers/dahdi/wctdm24xxp/base.c
diff options
context:
space:
mode:
authorShaun Ruffell <sruffell@digium.com>2011-08-19 22:40:41 +0000
committerShaun Ruffell <sruffell@digium.com>2011-08-19 22:40:41 +0000
commit61015267e5295b6b8525d88128f424f86e1884ec (patch)
tree517af34e64159ca53995f30e1d89b68fb184e85a /drivers/dahdi/wctdm24xxp/base.c
parent024869ac9055a99ad047cea97995d3e49d4f0f41 (diff)
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 <kwallace@digium.com> Signed-off-by: Shaun Ruffell <sruffell@digium.com> git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@10148 a0bf4364-ded3-4de4-8d8a-66a801d63aff
Diffstat (limited to 'drivers/dahdi/wctdm24xxp/base.c')
-rw-r--r--drivers/dahdi/wctdm24xxp/base.c9
1 files changed, 8 insertions, 1 deletions
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;