[PATCH] libertas: store rssi as an int
Dan Williams
dcbw at redhat.com
Wed Mar 19 10:51:07 EDT 2008
On Tue, 2008-03-18 at 15:15 +0100, Holger Schurig wrote:
> Don't store an long value in bss_descriptor, but
> just an int.
RSSI as defined in 802.11 as a positive 8-bit value; the libertas
firmware also reports the RSSI in scan results as a u8. So I'd suggest
a u8 instead of an int; an int isn't the right thing to do here.
Dan
> Signed-off-by: Holger Schurig <hs4233 at mail.mn-solutions.de>
>
> ---
>
> This actually reduces the code size veeeeery slightly.
>
> $ size libertas_old.ko libertas.ko
> text data bss dec hex filename
> 116040 3724 8 119772 1d3dc libertas_old.ko
> 116035 3724 8 119767 1d3d7 libertas.ko
>
> Index: wireless-testing/drivers/net/wireless/libertas/scan.h
> ===================================================================
> --- wireless-testing.orig/drivers/net/wireless/libertas/scan.h
> 2008-03-18 14:00:34.000000000 +0100
> +++ wireless-testing/drivers/net/wireless/libertas/scan.h
> 2008-03-18 14:01:22.000000000 +0100
> @@ -34,14 +34,9 @@ struct bss_descriptor {
> u8 ssid_len;
>
> u16 capability;
> -
> - /* receive signal strength in dBm */
> - long rssi;
> -
> + int rssi;
> u32 channel;
> -
> u16 beaconperiod;
> -
> u32 atimwindow;
>
> /* IW_MODE_AUTO, IW_MODE_ADHOC, IW_MODE_INFRA */
> Index: wireless-testing/drivers/net/wireless/libertas/scan.c
> ===================================================================
> --- wireless-testing.orig/drivers/net/wireless/libertas/scan.c
> 2008-03-18 14:00:34.000000000 +0100
> +++ wireless-testing/drivers/net/wireless/libertas/scan.c
> 2008-03-18 14:01:22.000000000 +0100
> @@ -602,7 +602,7 @@ static int lbs_scan_networks(struct lbs_
> lbs_deb_scan("scan table:\n");
> list_for_each_entry(iter, &priv->network_list, list)
> lbs_deb_scan("%02d: BSSID %s, RSSI %d, SSID '%s'\n",
> - i++, print_mac(mac, iter->bssid), (int)iter->rssi,
> + i++, print_mac(mac, iter->bssid), iter->rssi,
> escape_essid(iter->ssid, iter->ssid_len));
> mutex_unlock(&priv->lock);
> #endif
> @@ -948,7 +948,7 @@ struct bss_descriptor *lbs_find_ssid_in_
> uint8_t *bssid, uint8_t mode,
> int channel)
> {
> - uint8_t bestrssi = 0;
> + int bestrssi = 0;
> struct bss_descriptor * iter_bss = NULL;
> struct bss_descriptor * found_bss = NULL;
> struct bss_descriptor * tmp_oldest = NULL;
> Index: wireless-testing/drivers/net/wireless/libertas/debugfs.c
> ===================================================================
> --- wireless-testing.orig/drivers/net/wireless/libertas/debugfs.c
> 2008-03-18 14:00:34.000000000 +0100
> +++ wireless-testing/drivers/net/wireless/libertas/debugfs.c
> 2008-03-18 14:01:22.000000000 +0100
> @@ -78,7 +78,7 @@ static ssize_t lbs_getscantable(struct f
> u16 spectrum_mgmt = (iter_bss->capability &
> WLAN_CAPABILITY_SPECTRUM_MGMT);
>
> pos += snprintf(buf+pos, len-pos,
> - "%02u| %03d | %04ld | %s |",
> + "%02u| %03d | %04d | %s |",
> numscansdone, iter_bss->channel, iter_bss->rssi,
> print_mac(mac, iter_bss->bssid));
> pos += snprintf(buf+pos, len-pos, " %04x-",
> iter_bss->capability);
More information about the libertas-dev
mailing list