From 64985d187c21c4c8a511b7b5893c0906283aeebe Mon Sep 17 00:00:00 2001 From: Tzafrir Cohen Date: Wed, 30 Nov 2011 10:21:20 +0000 Subject: xpp: fxs: demote SETPOLARITY message to DBG() Signed-off-by: Oron Peled git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.5@10352 a0bf4364-ded3-4de4-8d8a-66a801d63aff --- drivers/dahdi/xpp/card_fxs.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/drivers/dahdi/xpp/card_fxs.c b/drivers/dahdi/xpp/card_fxs.c index d296164..d66c37d 100644 --- a/drivers/dahdi/xpp/card_fxs.c +++ b/drivers/dahdi/xpp/card_fxs.c @@ -940,10 +940,25 @@ static int FXS_card_ioctl(xpd_t *xpd, int pos, unsigned int cmd, unsigned long a case DAHDI_SETPOLARITY: if (get_user(val, (int __user *)arg)) return -EFAULT; - /* Can't change polarity while ringing or when open */ + /* + * Asterisk may send us this if chan_dahdi config + * has "hanguponpolarityswitch=yes" to notify + * that the other side has hanged up. + * + * This has no effect on normal phone (but we may + * be connected to another FXO equipment). + * note that this chan_dahdi settings has different + * meaning for FXO, where it signals polarity + * reversal *detection* logic. + * + * It seems that sometimes we get this from + * asterisk in wrong state (e.g: while ringing). + * In these cases, silently ignore it. + */ if (priv->lasttxhook[pos] == FXS_LINE_RING || priv->lasttxhook[pos] == FXS_LINE_OPEN) { - LINE_ERR(xpd, pos, "DAHDI_SETPOLARITY: %s Cannot change when lasttxhook=0x%X\n", - (val)?"ON":"OFF", priv->lasttxhook[pos]); + LINE_DBG(SIGNAL, xpd, pos, + "DAHDI_SETPOLARITY: %s Cannot change when lasttxhook=0x%X\n", + (val)?"ON":"OFF", priv->lasttxhook[pos]); return -EINVAL; } LINE_DBG(SIGNAL, xpd, pos, "DAHDI_SETPOLARITY: %s\n", (val)?"ON":"OFF"); -- cgit v1.2.3