From 834ec21c57bc044f282bd00d4d38218fbaaee81c Mon Sep 17 00:00:00 2001 From: Shaun Ruffell Date: Tue, 10 Jan 2012 22:05:43 +0000 Subject: wctdm24xxp: FXS on-hook transmission timer incorrect. The DAHDI_ONHOOKTRANSFER ioctl was incorrectly setting the ohttimer to 0. The result was that an FXS port was leaving the on-hook transfer state before finishing the transmission. This was discovered while looking at why ./fxstest dtmfcid was not able to pass the DTMF callerid digits to an attached FXO port properly. Fixes a regression introduced in r10167 "wctdm24xxp: Use interval for checking FXS on hook transfer timer." [1], first released in 2.6.0. [1] http://svnview.digium.com/svn/dahdi?view=revision&revision=10167 Signed-off-by: Shaun Ruffell Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=10413 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.6@10415 a0bf4364-ded3-4de4-8d8a-66a801d63aff --- drivers/dahdi/wctdm24xxp/base.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/dahdi/wctdm24xxp/base.c b/drivers/dahdi/wctdm24xxp/base.c index 75123c8..07813da 100644 --- a/drivers/dahdi/wctdm24xxp/base.c +++ b/drivers/dahdi/wctdm24xxp/base.c @@ -3727,14 +3727,15 @@ static int wctdm_ioctl(struct dahdi_chan *chan, unsigned int cmd, unsigned long if (((fxs->lasttxhook & SLIC_LF_SETMASK) == SLIC_LF_ACTIVE_FWD) || ((fxs->lasttxhook & SLIC_LF_SETMASK) == SLIC_LF_ACTIVE_REV)) { + int res; - x = set_lasttxhook_interruptible(wc, fxs, + res = set_lasttxhook_interruptible(wc, fxs, (POLARITY_XOR(fxs) ? SLIC_LF_OHTRAN_REV : SLIC_LF_OHTRAN_FWD), &mod->sethook); if (debug & DEBUG_CARD) { - if (x) { + if (res) { dev_info(&wc->vb.pdev->dev, "Channel %d TIMEOUT: " "OnHookTransfer start\n", -- cgit v1.2.3