aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ti
diff options
context:
space:
mode:
authorIgal Chernobelsky <igalc@ti.com>2012-06-27 04:09:34 -0400
committerLuciano Coelho <coelho@ti.com>2012-07-18 08:08:21 -0400
commitbed483f7b4c71d557777ee30d8dc46cbd5967fa6 (patch)
tree54a2140a919e58ede64d7ad1ae3368ad7d25ef58 /drivers/net/wireless/ti
parentc68cc0f6ebd471374c0d913717c6a77572e5f9c6 (diff)
wlcore: send EAPOLs using minimum basic rate for all roles
Send EAPOLs using minimum basic rate for AP, STA, p2p GO and Client. The patch fixes p2p connection issue with Realtek device in p2p certification test 5.1.13 (DEVUT reinvokes Persistent Group). Signed-off-by: Igal Chernobelsky <igalc@ti.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
Diffstat (limited to 'drivers/net/wireless/ti')
-rw-r--r--drivers/net/wireless/ti/wlcore/tx.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/net/wireless/ti/wlcore/tx.c b/drivers/net/wireless/ti/wlcore/tx.c
index 6a28aeecf004..0bdc9500068e 100644
--- a/drivers/net/wireless/ti/wlcore/tx.c
+++ b/drivers/net/wireless/ti/wlcore/tx.c
@@ -310,10 +310,10 @@ static void wl1271_tx_fill_hdr(struct wl1271 *wl, struct wl12xx_vif *wlvif,
310 * send them with AP rate policies (EAPOLs are an exception), 310 * send them with AP rate policies (EAPOLs are an exception),
311 * otherwise use default basic rates 311 * otherwise use default basic rates
312 */ 312 */
313 if (control->flags & IEEE80211_TX_CTL_NO_CCK_RATE) 313 if (skb->protocol == cpu_to_be16(ETH_P_PAE))
314 rate_idx = wlvif->sta.p2p_rate_idx;
315 else if (skb->protocol == cpu_to_be16(ETH_P_PAE))
316 rate_idx = wlvif->sta.basic_rate_idx; 314 rate_idx = wlvif->sta.basic_rate_idx;
315 else if (control->flags & IEEE80211_TX_CTL_NO_CCK_RATE)
316 rate_idx = wlvif->sta.p2p_rate_idx;
317 else if (control->control.sta) 317 else if (control->control.sta)
318 rate_idx = wlvif->sta.ap_rate_idx; 318 rate_idx = wlvif->sta.ap_rate_idx;
319 else 319 else
@@ -321,7 +321,9 @@ static void wl1271_tx_fill_hdr(struct wl1271 *wl, struct wl12xx_vif *wlvif,
321 } else { 321 } else {
322 if (hlid == wlvif->ap.global_hlid) 322 if (hlid == wlvif->ap.global_hlid)
323 rate_idx = wlvif->ap.mgmt_rate_idx; 323 rate_idx = wlvif->ap.mgmt_rate_idx;
324 else if (hlid == wlvif->ap.bcast_hlid) 324 else if (hlid == wlvif->ap.bcast_hlid ||
325 skb->protocol == cpu_to_be16(ETH_P_PAE))
326 /* send AP bcast and EAPOLs using the min basic rate */
325 rate_idx = wlvif->ap.bcast_rate_idx; 327 rate_idx = wlvif->ap.bcast_rate_idx;
326 else 328 else
327 rate_idx = wlvif->ap.ucast_rate_idx[ac]; 329 rate_idx = wlvif->ap.ucast_rate_idx[ac];