summaryrefslogtreecommitdiff
path: root/drivers/dahdi/wctdm24xxp/wctdm24xxp.h
diff options
context:
space:
mode:
authorAlec L Davis <sivad.a@paradise.net.nz>2010-07-29 23:48:16 +0000
committerAlec L Davis <sivad.a@paradise.net.nz>2010-07-29 23:48:16 +0000
commite0e0b776b77031223c90f9fcadefe3efffab951d (patch)
treec89a9ee0afaa5a759490ff2887e1a4b182c47ac0 /drivers/dahdi/wctdm24xxp/wctdm24xxp.h
parent9855dc2467c5f7efd3a0ccf2f499a2193fb7973e (diff)
SLIC_LF_OPPENDING confict between wctdm_proslic_recheck_sanity() and set_lasttxhook_interruptible()
Problem: 'wctdm_proslic_recheck_sanity()' is executed (4 times??) every ~256ms which monitors and clears the SLIC_LF_OPPENDING on fxs->lasttxhook when the LF state has been reached. 'set_lasttxhook_interruptible()' times out after 100ms waiting from the previous write to the SLIC_LF register, by waiting for SLIC_LF_OPPENDING to be cleared, thus the write will fail. Solution: adds wctdm_proslic_check_oppending which does the monitoring and clearing of SLIC_LF_OPPENDING, which is execute every 1ms. It also if the correct state is not reached within 100ms, resends the lasttxhook state. (closes issue #17724) Reported by: alecdavis Patches: wctdm24xxp_fxs_answer.diff4.txt uploaded by alecdavis (license 585) Tested by: alecdavis, sruffell git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@9063 a0bf4364-ded3-4de4-8d8a-66a801d63aff
Diffstat (limited to 'drivers/dahdi/wctdm24xxp/wctdm24xxp.h')
-rw-r--r--drivers/dahdi/wctdm24xxp/wctdm24xxp.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/dahdi/wctdm24xxp/wctdm24xxp.h b/drivers/dahdi/wctdm24xxp/wctdm24xxp.h
index beb929f..9297103 100644
--- a/drivers/dahdi/wctdm24xxp/wctdm24xxp.h
+++ b/drivers/dahdi/wctdm24xxp/wctdm24xxp.h
@@ -240,6 +240,7 @@ struct wctdm {
* voicebus ISR.
*/
int lasttxhook;
+ int oppending_ms;
spinlock_t lasttxhooklock;
int palarms;
struct dahdi_vmwi_info vmwisetting;