From 23c5da2d629b369199c8988f013a9262f9a010e8 Mon Sep 17 00:00:00 2001 From: Alexander Egorenkov Date: Wed, 3 Feb 2010 13:52:16 +0100 Subject: [PATCH] Fixed bug in rt2860_rssi2dbm --- rt2860.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/rt2860.c b/rt2860.c index 984510a..cdc449a 100644 --- a/rt2860.c +++ b/rt2860.c @@ -3301,7 +3301,11 @@ static int8_t rt2860_rssi2dbm(struct rt2860_softc *sc, { struct ieee80211com *ic; struct ieee80211_channel *c; - int chan, delta; + int chan; + uint8_t rssi_off, lna_gain; + + if (rssi == 0) + return -99; ic = &sc->ic; c = ic->ic_curchan; @@ -3309,21 +3313,22 @@ static int8_t rt2860_rssi2dbm(struct rt2860_softc *sc, if (IEEE80211_IS_CHAN_5GHZ(c)) { - delta = sc->rssi_off_5ghz[rxpath]; + rssi_off = sc->rssi_off_5ghz[rxpath]; if (chan <= 64) - delta -= sc->lna_gain[1]; + lna_gain = sc->lna_gain[1]; else if (chan <= 128) - delta -= sc->lna_gain[2]; + lna_gain = sc->lna_gain[2]; else - delta -= sc->lna_gain[3]; + lna_gain = sc->lna_gain[3]; } else { - delta = sc->rssi_off_2ghz[rxpath] - sc->lna_gain[0]; + rssi_off = sc->rssi_off_2ghz[rxpath]; + lna_gain = sc->lna_gain[0]; } - return (-12 - delta - rssi); + return (-12 - rssi_off - lna_gain - rssi); } /* -- 2.11.4.GIT