summaryrefslogtreecommitdiff
path: root/drivers/dahdi/wctdm24xxp/base.c
diff options
context:
space:
mode:
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;