aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/wl12xx/cmd.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/wl12xx/cmd.c')
-rw-r--r--drivers/net/wireless/wl12xx/cmd.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/drivers/net/wireless/wl12xx/cmd.c b/drivers/net/wireless/wl12xx/cmd.c
index 51be8f7fbb88..287fe95ecb40 100644
--- a/drivers/net/wireless/wl12xx/cmd.c
+++ b/drivers/net/wireless/wl12xx/cmd.c
@@ -1112,6 +1112,7 @@ int wl1271_cmd_build_probe_req(struct wl1271 *wl,
1112{ 1112{
1113 struct sk_buff *skb; 1113 struct sk_buff *skb;
1114 int ret; 1114 int ret;
1115 u32 rate;
1115 1116
1116 skb = ieee80211_probereq_get(wl->hw, wl->vif, ssid, ssid_len, 1117 skb = ieee80211_probereq_get(wl->hw, wl->vif, ssid, ssid_len,
1117 ie, ie_len); 1118 ie, ie_len);
@@ -1122,14 +1123,13 @@ int wl1271_cmd_build_probe_req(struct wl1271 *wl,
1122 1123
1123 wl1271_dump(DEBUG_SCAN, "PROBE REQ: ", skb->data, skb->len); 1124 wl1271_dump(DEBUG_SCAN, "PROBE REQ: ", skb->data, skb->len);
1124 1125
1126 rate = wl1271_tx_min_rate_get(wl, wl->bitrate_masks[band]);
1125 if (band == IEEE80211_BAND_2GHZ) 1127 if (band == IEEE80211_BAND_2GHZ)
1126 ret = wl1271_cmd_template_set(wl, CMD_TEMPL_CFG_PROBE_REQ_2_4, 1128 ret = wl1271_cmd_template_set(wl, CMD_TEMPL_CFG_PROBE_REQ_2_4,
1127 skb->data, skb->len, 0, 1129 skb->data, skb->len, 0, rate);
1128 wl->conf.tx.basic_rate);
1129 else 1130 else
1130 ret = wl1271_cmd_template_set(wl, CMD_TEMPL_CFG_PROBE_REQ_5, 1131 ret = wl1271_cmd_template_set(wl, CMD_TEMPL_CFG_PROBE_REQ_5,
1131 skb->data, skb->len, 0, 1132 skb->data, skb->len, 0, rate);
1132 wl->conf.tx.basic_rate_5);
1133 1133
1134out: 1134out:
1135 dev_kfree_skb(skb); 1135 dev_kfree_skb(skb);
@@ -1140,6 +1140,7 @@ struct sk_buff *wl1271_cmd_build_ap_probe_req(struct wl1271 *wl,
1140 struct sk_buff *skb) 1140 struct sk_buff *skb)
1141{ 1141{
1142 int ret; 1142 int ret;
1143 u32 rate;
1143 1144
1144 if (!skb) 1145 if (!skb)
1145 skb = ieee80211_ap_probereq_get(wl->hw, wl->vif); 1146 skb = ieee80211_ap_probereq_get(wl->hw, wl->vif);
@@ -1148,14 +1149,13 @@ struct sk_buff *wl1271_cmd_build_ap_probe_req(struct wl1271 *wl,
1148 1149
1149 wl1271_dump(DEBUG_SCAN, "AP PROBE REQ: ", skb->data, skb->len); 1150 wl1271_dump(DEBUG_SCAN, "AP PROBE REQ: ", skb->data, skb->len);
1150 1151
1152 rate = wl1271_tx_min_rate_get(wl, wl->bitrate_masks[wl->band]);
1151 if (wl->band == IEEE80211_BAND_2GHZ) 1153 if (wl->band == IEEE80211_BAND_2GHZ)
1152 ret = wl1271_cmd_template_set(wl, CMD_TEMPL_CFG_PROBE_REQ_2_4, 1154 ret = wl1271_cmd_template_set(wl, CMD_TEMPL_CFG_PROBE_REQ_2_4,
1153 skb->data, skb->len, 0, 1155 skb->data, skb->len, 0, rate);
1154 wl->conf.tx.basic_rate);
1155 else 1156 else
1156 ret = wl1271_cmd_template_set(wl, CMD_TEMPL_CFG_PROBE_REQ_5, 1157 ret = wl1271_cmd_template_set(wl, CMD_TEMPL_CFG_PROBE_REQ_5,
1157 skb->data, skb->len, 0, 1158 skb->data, skb->len, 0, rate);
1158 wl->conf.tx.basic_rate_5);
1159 1159
1160 if (ret < 0) 1160 if (ret < 0)
1161 wl1271_error("Unable to set ap probe request template."); 1161 wl1271_error("Unable to set ap probe request template.");
@@ -1448,7 +1448,8 @@ int wl12xx_cmd_add_peer(struct wl1271 *wl, struct ieee80211_sta *sta, u8 hlid)
1448 sta_rates |= sta->ht_cap.mcs.rx_mask[0] << HW_HT_RATES_OFFSET; 1448 sta_rates |= sta->ht_cap.mcs.rx_mask[0] << HW_HT_RATES_OFFSET;
1449 1449
1450 cmd->supported_rates = 1450 cmd->supported_rates =
1451 cpu_to_le32(wl1271_tx_enabled_rates_get(wl, sta_rates)); 1451 cpu_to_le32(wl1271_tx_enabled_rates_get(wl, sta_rates,
1452 wl->band));
1452 1453
1453 wl1271_debug(DEBUG_CMD, "new peer rates=0x%x queues=0x%x", 1454 wl1271_debug(DEBUG_CMD, "new peer rates=0x%x queues=0x%x",
1454 cmd->supported_rates, sta->uapsd_queues); 1455 cmd->supported_rates, sta->uapsd_queues);