summaryrefslogtreecommitdiff
path: root/kernel/xpp/card_fxo.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/xpp/card_fxo.c')
-rw-r--r--kernel/xpp/card_fxo.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/kernel/xpp/card_fxo.c b/kernel/xpp/card_fxo.c
index 81906e2..68cf729 100644
--- a/kernel/xpp/card_fxo.c
+++ b/kernel/xpp/card_fxo.c
@@ -839,13 +839,14 @@ static void update_battery_voltage(xpd_t *xpd, byte data_low, xportno_t portno)
struct FXO_priv_data *priv;
enum polarity_state pol;
int msec;
+ signed char volts = (signed char)data_low;
priv = xpd->priv;
BUG_ON(!priv);
- priv->battery_voltage[portno] = data_low;
+ priv->battery_voltage[portno] = volts;
if(xpd->ringing[portno])
goto ignore_reading; /* ring voltage create false alarms */
- if(abs((signed char)data_low) < BAT_THRESHOLD) {
+ if(abs(volts) < BAT_THRESHOLD) {
/*
* Check for battery voltage fluctuations
*/
@@ -855,7 +856,7 @@ static void update_battery_voltage(xpd_t *xpd, byte data_low, xportno_t portno)
milliseconds = priv->nobattery_debounce[portno]++ *
poll_battery_interval;
if(milliseconds > BAT_DEBOUNCE) {
- LINE_DBG(SIGNAL, xpd, portno, "BATTERY OFF voltage=%d\n", data_low);
+ LINE_DBG(SIGNAL, xpd, portno, "BATTERY OFF voltage=%d\n", volts);
priv->battery[portno] = BATTERY_OFF;
if(SPAN_REGISTERED(xpd))
zap_report_battery(xpd, portno);
@@ -871,7 +872,7 @@ static void update_battery_voltage(xpd_t *xpd, byte data_low, xportno_t portno)
} else {
priv->nobattery_debounce[portno] = 0;
if(priv->battery[portno] != BATTERY_ON) {
- LINE_DBG(SIGNAL, xpd, portno, "BATTERY ON voltage=%d\n", data_low);
+ LINE_DBG(SIGNAL, xpd, portno, "BATTERY ON voltage=%d\n", volts);
priv->battery[portno] = BATTERY_ON;
if(SPAN_REGISTERED(xpd))
zap_report_battery(xpd, portno);
@@ -893,9 +894,9 @@ static void update_battery_voltage(xpd_t *xpd, byte data_low, xportno_t portno)
/*
* Handle reverse polarity
*/
- if(data_low == 0)
+ if(volts == 0)
pol = POL_UNKNOWN;
- else if(IS_SET(data_low, 7))
+ else if(volts < 0)
pol = POL_NEGATIVE;
else
pol = POL_POSITIVE;