summaryrefslogtreecommitdiff
path: root/wcfxs.c
diff options
context:
space:
mode:
Diffstat (limited to 'wcfxs.c')
-rwxr-xr-xwcfxs.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/wcfxs.c b/wcfxs.c
index 80ff08a..60237ca 100755
--- a/wcfxs.c
+++ b/wcfxs.c
@@ -132,7 +132,7 @@ static alpha indirect_regs[] =
#define FLAG_READ 2
#define RING_DEBOUNCE 64 /* Ringer Debounce (in ms) */
-#define BATT_DEBOUNCE 8 /* Battery debounce (in ms) */
+#define BATT_DEBOUNCE 64 /* Battery debounce (in ms) */
#define BATT_THRESH 3 /* Anything under this is "no battery" */
#define OHT_TIMER 6000 /* How long after RING to retain OHT */
@@ -1234,6 +1234,20 @@ static inline void wcfxs_voicedaa_check_hook(struct wcfxs *wc, int card)
}
}
#endif
+ /* Try to track issues that plague slot one FXO's */
+ b = wcfxs_getreg(wc, card, 5);
+ if ((b & 0x2) || !(b & 0x8)) {
+ /* Not good -- don't look at anything else */
+ return;
+ }
+ b &= 0x9;
+ if (wc->mod.fxo.offhook[card]) {
+ if (b != 0x9)
+ wcfxs_setreg(wc, card, 5, 0x9);
+ } else {
+ if (b != 0x8)
+ wcfxs_setreg(wc, card, 5, 0x8);
+ }
b = wcfxs_getreg(wc, card, 29);
#if 0
{