diff options
author | Tzafrir Cohen <tzafrir.cohen@xorcom.com> | 2008-08-14 09:50:14 +0000 |
---|---|---|
committer | Tzafrir Cohen <tzafrir.cohen@xorcom.com> | 2008-08-14 09:50:14 +0000 |
commit | 6cd2c556f4acd05be03582d508e9cb4d224e669a (patch) | |
tree | bcd296c85405dd875dbf8c7ccb63ca0d4909fb3d /drivers/dahdi/xpp/card_fxo.c | |
parent | 6af4b8136ebbadfa3d956e8c91b68034ff908d7b (diff) |
xpp: FXO: display signed voltage values (from xpp r6055)
This is only an issue with the displayed value. In case you wondered why
you have battery voltage of more than 220V.
git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@4776 a0bf4364-ded3-4de4-8d8a-66a801d63aff
Diffstat (limited to 'drivers/dahdi/xpp/card_fxo.c')
-rw-r--r-- | drivers/dahdi/xpp/card_fxo.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/dahdi/xpp/card_fxo.c b/drivers/dahdi/xpp/card_fxo.c index 917a69f..1359e3a 100644 --- a/drivers/dahdi/xpp/card_fxo.c +++ b/drivers/dahdi/xpp/card_fxo.c @@ -831,13 +831,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 */ @@ -847,7 +848,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)) dahdi_report_battery(xpd, portno); @@ -863,7 +864,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)) dahdi_report_battery(xpd, portno); @@ -885,9 +886,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; |