summaryrefslogtreecommitdiff
path: root/wcfxs.c
diff options
context:
space:
mode:
Diffstat (limited to 'wcfxs.c')
-rwxr-xr-xwcfxs.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/wcfxs.c b/wcfxs.c
index f297469..e0cbfaf 100755
--- a/wcfxs.c
+++ b/wcfxs.c
@@ -1216,15 +1216,16 @@ static inline void wcfxs_voicedaa_check_hook(struct wcfxs *wc, int card)
unsigned char res;
#endif
signed char b;
+ int poopy = 0;
/* 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 */
if (debug)
printk("Poopy (%02x) on card %d!\n", b, card + 1);
- return;
+ poopy++;
}
- b &= 0x9;
+ b &= 0x9b;
if (wc->mod.fxo.offhook[card]) {
if (b != 0x9)
wcfxs_setreg(wc, card, 5, 0x9);
@@ -1232,6 +1233,8 @@ static inline void wcfxs_voicedaa_check_hook(struct wcfxs *wc, int card)
if (b != 0x8)
wcfxs_setreg(wc, card, 5, 0x8);
}
+ if (poopy)
+ return;
#ifndef AUDIO_RINGCHECK
if (!wc->mod.fxo.offhook[card]) {
res = wcfxs_getreg(wc, card, 5);