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

Commit a6fe2313 authored by Juuso Oikarinen's avatar Juuso Oikarinen Committed by John W. Linville
Browse files

wl1271: Use slow rates for association messages



While not associated, default the data rates to 1 and 2mbps, so that only
those rates will be used for association related message transfer. Once
associated, configure the full rate-set supported by the AP.

Signed-off-by: default avatarJuuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: default avatarLuciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: default avatarLuciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 018b171c
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -107,8 +107,6 @@ enum {
				  CFG_RX_CTL_EN | CFG_RX_BCN_EN |     \
				  CFG_RX_AUTH_EN | CFG_RX_ASSOC_EN)

#define WL1271_DEFAULT_BASIC_RATE_SET (CONF_TX_RATE_MASK_ALL)

#define WL1271_FW_NAME "wl1271-fw.bin"
#define WL1271_NVS_NAME "wl1271-nvs.bin"
#define WL1271_NVS_LEN  468
+2 −1
Original line number Diff line number Diff line
@@ -258,7 +258,8 @@ struct conf_rx_settings {
#define CONF_TX_MAX_RATE_CLASSES       8

#define CONF_TX_RATE_MASK_UNSPECIFIED  0
#define CONF_TX_RATE_MASK_ALL          0x1eff
#define CONF_TX_RATE_MASK_BASIC        (CONF_HW_BIT_RATE_1MBPS | \
					CONF_HW_BIT_RATE_2MBPS)
#define CONF_TX_RATE_RETRY_LIMIT       10

struct conf_tx_rate_class {
+1 −1
Original line number Diff line number Diff line
@@ -284,7 +284,7 @@ int wl1271_hw_init(struct wl1271 *wl)
		goto out_free_memmap;

	/* Configure TX rate classes */
	ret = wl1271_acx_rate_policies(wl, WL1271_DEFAULT_BASIC_RATE_SET);
	ret = wl1271_acx_rate_policies(wl, CONF_TX_RATE_MASK_BASIC);
	if (ret < 0)
		goto out_free_memmap;

+6 −2
Original line number Diff line number Diff line
@@ -1180,6 +1180,11 @@ static int wl1271_op_config(struct ieee80211_hw *hw, u32 changed)
			wl1271_unjoin_channel(wl);
		else
			wl1271_join_channel(wl, channel);

		if (conf->flags & IEEE80211_CONF_IDLE) {
			wl->basic_rate_set = CONF_TX_RATE_MASK_BASIC;
			wl1271_acx_rate_policies(wl, CONF_TX_RATE_MASK_BASIC);
		}
	}

	/* if the channel changes while joined, join again */
@@ -1568,7 +1573,6 @@ static void wl1271_op_bss_info_changed(struct ieee80211_hw *hw,
			}
		} else {
			/* use defaults when not associated */
			wl->basic_rate_set = WL1271_DEFAULT_BASIC_RATE_SET;
			wl->aid = 0;
		}

@@ -1897,7 +1901,7 @@ static int __devinit wl1271_probe(struct spi_device *spi)
	wl->psm_entry_retry = 0;
	wl->tx_queue_stopped = false;
	wl->power_level = WL1271_DEFAULT_POWER_LEVEL;
	wl->basic_rate_set = WL1271_DEFAULT_BASIC_RATE_SET;
	wl->basic_rate_set = CONF_TX_RATE_MASK_BASIC;
	wl->band = IEEE80211_BAND_2GHZ;
	wl->vif = NULL;
	wl->joined = false;