summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTzafrir Cohen <tzafrir.cohen@xorcom.com>2011-11-30 10:21:20 +0000
committerTzafrir Cohen <tzafrir.cohen@xorcom.com>2011-11-30 10:21:20 +0000
commit64985d187c21c4c8a511b7b5893c0906283aeebe (patch)
treece7b2879e4910278aa37775bfa48b2bfa9ec425a
parent319ca7f7d616dad55fbeac13e73bbddf77bb6542 (diff)
xpp: fxs: demote SETPOLARITY message to DBG()
Signed-off-by: Oron Peled <oron.peled@xorcom.com> git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.5@10352 a0bf4364-ded3-4de4-8d8a-66a801d63aff
-rw-r--r--drivers/dahdi/xpp/card_fxs.c21
1 files 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");