Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 36ad8cd7 authored by Larry Finger's avatar Larry Finger Committed by John W. Linville
Browse files

[PATCH] bcm43xx: Fix scaling error for 'iwlist rate' information



The bcm43xx scales the rate information supplied to a WE iwlist rate
call incorrectly.

Signed-off-by: default avatarLarry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 47103039
Loading
Loading
Loading
Loading
+12 −12
Original line number Diff line number Diff line
@@ -261,22 +261,22 @@ static int bcm43xx_wx_get_rangeparams(struct net_device *net_dev,
	if (phy->type == BCM43xx_PHYTYPE_A ||
	    phy->type == BCM43xx_PHYTYPE_G) {
		range->num_bitrates = 8;
		range->bitrate[i++] = IEEE80211_OFDM_RATE_6MB;
		range->bitrate[i++] = IEEE80211_OFDM_RATE_9MB;
		range->bitrate[i++] = IEEE80211_OFDM_RATE_12MB;
		range->bitrate[i++] = IEEE80211_OFDM_RATE_18MB;
		range->bitrate[i++] = IEEE80211_OFDM_RATE_24MB;
		range->bitrate[i++] = IEEE80211_OFDM_RATE_36MB;
		range->bitrate[i++] = IEEE80211_OFDM_RATE_48MB;
		range->bitrate[i++] = IEEE80211_OFDM_RATE_54MB;
		range->bitrate[i++] = IEEE80211_OFDM_RATE_6MB * 500000;
		range->bitrate[i++] = IEEE80211_OFDM_RATE_9MB * 500000;
		range->bitrate[i++] = IEEE80211_OFDM_RATE_12MB * 500000;
		range->bitrate[i++] = IEEE80211_OFDM_RATE_18MB * 500000;
		range->bitrate[i++] = IEEE80211_OFDM_RATE_24MB * 500000;
		range->bitrate[i++] = IEEE80211_OFDM_RATE_36MB * 500000;
		range->bitrate[i++] = IEEE80211_OFDM_RATE_48MB * 500000;
		range->bitrate[i++] = IEEE80211_OFDM_RATE_54MB * 500000;
	}
	if (phy->type == BCM43xx_PHYTYPE_B ||
	    phy->type == BCM43xx_PHYTYPE_G) {
		range->num_bitrates += 4;
		range->bitrate[i++] = IEEE80211_CCK_RATE_1MB;
		range->bitrate[i++] = IEEE80211_CCK_RATE_2MB;
		range->bitrate[i++] = IEEE80211_CCK_RATE_5MB;
		range->bitrate[i++] = IEEE80211_CCK_RATE_11MB;
		range->bitrate[i++] = IEEE80211_CCK_RATE_1MB * 500000;
		range->bitrate[i++] = IEEE80211_CCK_RATE_2MB * 500000;
		range->bitrate[i++] = IEEE80211_CCK_RATE_5MB * 500000;
		range->bitrate[i++] = IEEE80211_CCK_RATE_11MB * 500000;
	}

	geo = ieee80211_get_geo(bcm->ieee);