staging: brcm80211: move rssi computation to place we need it
authorArend van Spriel <arend@broadcom.com>
Thu, 29 Sep 2011 22:34:33 +0000 (15:34 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 3 Oct 2011 23:12:32 +0000 (16:12 -0700)
The rssi computation was done upon getting the frame from the
queue, but the value is needed when filling in the receive status
data for mac80211. The call to wlc_phy_rssi_compute() has been
deferred.

Reviewed-by: Roland Vossen <rvossen@broadcom.com>
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/brcm80211/brcmsmac/main.c

index 3e39407..bdc0611 100644 (file)
@@ -828,11 +828,6 @@ brcms_b_recv(struct brcms_hardware *wlc_hw, uint fifo, bool bound)
                rxh->RxTSFTime = le16_to_cpu(rxh_le->RxTSFTime);
                rxh->RxChan = le16_to_cpu(rxh_le->RxChan);
 
-               /*
-                * compute the RSSI from d11rxhdr and record it in wlc_rxd11hr
-                */
-               wlc_rxhdr->rssi = (s8)wlc_phy_rssi_compute(wlc_hw->band->pi,
-                                                          rxh);
                brcms_c_recv(wlc_hw->wlc, p);
        }
 
@@ -8172,7 +8167,7 @@ prep_mac80211_status(struct brcms_c_info *wlc, struct d11rxhdr *rxh,
                rx_status->freq = ieee80211_dsss_chan_to_freq(channel);
        }
 
-       rx_status->signal = wlc_rxh->rssi;
+       rx_status->signal = wlc_phy_rssi_compute(wlc->hw->band->pi, rxh);
 
        /* noise */
        /* qual */