diff options
Diffstat (limited to 'drivers/net/wireless/ti')
-rw-r--r-- | drivers/net/wireless/ti/wlcore/tx.c | 10 |
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]; |