Try 2: Modify bcm43xx-d80211 to use wireless statistics
Subsystems (3)
PATCH 2/4 Try 2: Modify bcm43xx-d80211 to use wireless statistics
These patches modify bcm43xx-d80211 to use the wireless statics added in patch 1.
Signed-off-by Larry [email protected]>
======================================
drivers/net/wireless/d80211/bcm43xx/bcm43xx.h +3 -1
@@ -27,6 +27,8 @@ #define BCM43xx_IRQWAIT_MAX_RETRIES 50#define BCM43xx_IO_SIZE 8192 +#define BCM43xx_RX_MAX_SSI 60 +/* Active Core PCI Configuration Register. */ #define BCM43xx_PCICFG_ACTIVE_CORE 0x80/* SPROM control register. */
@@ -623,7 +625,7 @@ struct bcm43xx_noise_calculation { };struct bcm43xx_stats { -u8 link_quality; +u8 link_noise;/* Store the last TX/RX times here for updating the leds. */ unsigned long last_tx;unsigned long last_rx;
drivers/net/wireless/d80211/bcm43xx/bcm43xx_main.c +2 -9
@@ -1506,15 +1506,7 @@ static void handle_irq_noise(struct bcm4else average -=48 ; -if (average >-65 ) - bcm->stats.link_quality =0 ; -else if (average >-75 ) - bcm->stats.link_quality =1 ; -else if (average >-85 ) - bcm->stats.link_quality =2 ; -else - bcm->stats.link_quality =3 ; -// dprintk(KERN_INFO PFX "Link Quality: %u (avg was %d)\n", bcm->stats.link_quality, average); + bcm->stats.link_noise = average; drop_calculation: bcm->noisecalc.calculation_running =0 ;return ;
@@ -4421,6 +4413,7 @@ #endif ieee->host_gen_beacon_template =1 ; ieee->rx_includes_fcs =1 ; ieee->monitor_during_oper =1 ; + ieee->maxssi = BCM43xx_RX_MAX_SSI; ieee->tx = bcm43xx_net_hard_start_xmit; ieee->open = bcm43xx_net_open; ieee->stop = bcm43xx_net_stop;
drivers/net/wireless/d80211/bcm43xx/bcm43xx_xmit.c +3 -1
@@ -475,7 +475,9 @@ void bcm43xx_rx(struct bcm43xx_private **/ memset (&status,0 ,sizeof (status)); - status.ssi =bcm43xx_rssi_postprocess (bcm, rxhdr->rssi, is_ofdm, + status.noise = bcm->stats.link_noise; + status.ssi = rxhdr->rssi; + status.signal =bcm43xx_rssi_postprocess (bcm, rxhdr->rssi, is_ofdm, !!(rxflags1 & BCM43xx_RXHDR_FLAGS1_2053RSSIADJ), !!(rxflags3 & BCM43xx_RXHDR_FLAGS3_2050RSSIADJ));if (is_ofdm)