Search Linux Wireless

Re: [PATCH V2] bcm43xx-mac80211: Rescale link quality output

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sunday 05 August 2007, Larry Finger wrote:
> Michael Buesch wrote:
> > On Sunday 05 August 2007, Larry Finger wrote:
> >> The link quality output from wireless extensions is too small by the ratio
> >> of 100/BCM43xx_RX_MAX_SSI (60) for bcm43xx-mac80211. This patch puts the
> >> quantity on the proper scale.
> >>
> >> Signed-off-by: Larry Finger <Larry.Finger@xxxxxxxxxxxx>
> >> ---
> >>
> >> Index: wireless-dev/drivers/net/wireless/bcm43xx-mac80211/bcm43xx_xmit.c
> >> ===================================================================
> >> --- wireless-dev.orig/drivers/net/wireless/bcm43xx-mac80211/bcm43xx_xmit.c
> >> +++ wireless-dev/drivers/net/wireless/bcm43xx-mac80211/bcm43xx_xmit.c
> >> @@ -537,7 +537,8 @@ void bcm43xx_rx(struct bcm43xx_wldev *de
> >>  					      (phystat0 & BCM43xx_RX_PHYST0_GAINCTL),
> >>  					      (phystat3 & BCM43xx_RX_PHYST3_TRSTATE));
> >>  	status.noise = dev->stats.link_noise;
> >> -	status.signal = jssi; /* this looks wrong, but is what mac80211 wants */
> >> +	/* the next line looks wrong, but is what mac80211 wants */
> >> +	status.signal = (jssi * 100) / BCM43xx_RX_MAX_SSI;
> > 
> > So signal is in percent?
> > Where is this actually documented. I cannot find a hint on what
> > the values of all these things are supposed to be.
> 
> Yes, it is clear as mud, with the additional complications of mac80211 mixing the definitions of 
> signal and rssi (as far as I'm concerned). The scale is set by the following code snippet in 
> bcm43xx_wireless_init.
> 
>          hw->max_signal = 100;
>          hw->max_rssi = -110;
>          hw->max_noise = -110;
> 
> In this code, "signal" is put on a scale of 0 to 100, and rssi and noise on a scale of -110 to 0 and 
> are assumed to be dBm. Of course, rssi should be a positive number and signal should be in dBm, but 
> my renaming of signal => quality and rssi => signal was shot down, so we are stuck.
> 
> An alternative to the patch above would be to set hw->max_signal = BCM43xx_RX_MAX_SSI. In that case, 
> the line of iwconfig output that reads "Link Quality=83/100  Signal level=-34 dBm  Noise level=-71 
> dBm" would have a "Link Quality" of 50/60 instead of 83/100.
> 
> The bottom line is that it is an arbitrary quantity on an arbitrary scale. Is it better for it to be 
>   XX/100 than YY/60? I think so, but YMMV.

Ah, I see. Kind of confusing. :)

Well, I would like to do
hw->max_signal = MAX_RSSI
but it seems to be an unwritten rule that signal scales to 100.
At least I never saw a different scale in a driver, yet.
So I think I will apply your patch.
Thanks!

-
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux