aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEliad Peller <eliad@wizery.com>2011-10-05 05:55:54 -0400
committerLuciano Coelho <coelho@ti.com>2011-10-07 01:32:45 -0400
commita8ab39a4b588e8523be2fa75671bdc9612d3467a (patch)
treeb0c82611cc83f65131e0d9eb862675f894398d19
parent154da67c7da14ffd8da292394f8cbc81cc5ea4e3 (diff)
wl12xx: move ap_global_hlid and ap_bcast_hlid into wlvif
move ap_global_hlid and ap_bcast_hlid into the per-interface data, rather than being global. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
-rw-r--r--drivers/net/wireless/wl12xx/cmd.c28
-rw-r--r--drivers/net/wireless/wl12xx/cmd.h5
-rw-r--r--drivers/net/wireless/wl12xx/main.c34
-rw-r--r--drivers/net/wireless/wl12xx/tx.c15
-rw-r--r--drivers/net/wireless/wl12xx/tx.h3
-rw-r--r--drivers/net/wireless/wl12xx/wl12xx.h6
6 files changed, 50 insertions, 41 deletions
diff --git a/drivers/net/wireless/wl12xx/cmd.c b/drivers/net/wireless/wl12xx/cmd.c
index 2a9a4b2032e5..d0124e63dad1 100644
--- a/drivers/net/wireless/wl12xx/cmd.c
+++ b/drivers/net/wireless/wl12xx/cmd.c
@@ -671,19 +671,19 @@ int wl12xx_cmd_role_start_ap(struct wl1271 *wl, struct wl12xx_vif *wlvif)
671 goto out; 671 goto out;
672 } 672 }
673 673
674 ret = wl12xx_allocate_link(wl, &wl->ap_global_hlid); 674 ret = wl12xx_allocate_link(wl, &wlvif->ap.global_hlid);
675 if (ret < 0) 675 if (ret < 0)
676 goto out_free; 676 goto out_free;
677 677
678 ret = wl12xx_allocate_link(wl, &wl->ap_bcast_hlid); 678 ret = wl12xx_allocate_link(wl, &wlvif->ap.bcast_hlid);
679 if (ret < 0) 679 if (ret < 0)
680 goto out_free_global; 680 goto out_free_global;
681 681
682 cmd->role_id = wlvif->role_id; 682 cmd->role_id = wlvif->role_id;
683 cmd->ap.aging_period = cpu_to_le16(wl->conf.tx.ap_aging_period); 683 cmd->ap.aging_period = cpu_to_le16(wl->conf.tx.ap_aging_period);
684 cmd->ap.bss_index = WL1271_AP_BSS_INDEX; 684 cmd->ap.bss_index = WL1271_AP_BSS_INDEX;
685 cmd->ap.global_hlid = wl->ap_global_hlid; 685 cmd->ap.global_hlid = wlvif->ap.global_hlid;
686 cmd->ap.broadcast_hlid = wl->ap_bcast_hlid; 686 cmd->ap.broadcast_hlid = wlvif->ap.bcast_hlid;
687 cmd->ap.basic_rate_set = cpu_to_le32(wlvif->basic_rate_set); 687 cmd->ap.basic_rate_set = cpu_to_le32(wlvif->basic_rate_set);
688 cmd->ap.beacon_interval = cpu_to_le16(wl->beacon_int); 688 cmd->ap.beacon_interval = cpu_to_le16(wl->beacon_int);
689 cmd->ap.dtim_interval = bss_conf->dtim_period; 689 cmd->ap.dtim_interval = bss_conf->dtim_period;
@@ -725,10 +725,10 @@ int wl12xx_cmd_role_start_ap(struct wl1271 *wl, struct wl12xx_vif *wlvif)
725 goto out_free; 725 goto out_free;
726 726
727out_free_bcast: 727out_free_bcast:
728 wl12xx_free_link(wl, &wl->ap_bcast_hlid); 728 wl12xx_free_link(wl, &wlvif->ap.bcast_hlid);
729 729
730out_free_global: 730out_free_global:
731 wl12xx_free_link(wl, &wl->ap_global_hlid); 731 wl12xx_free_link(wl, &wlvif->ap.global_hlid);
732 732
733out_free: 733out_free:
734 kfree(cmd); 734 kfree(cmd);
@@ -758,8 +758,8 @@ int wl12xx_cmd_role_stop_ap(struct wl1271 *wl, struct wl12xx_vif *wlvif)
758 goto out_free; 758 goto out_free;
759 } 759 }
760 760
761 wl12xx_free_link(wl, &wl->ap_bcast_hlid); 761 wl12xx_free_link(wl, &wlvif->ap.bcast_hlid);
762 wl12xx_free_link(wl, &wl->ap_global_hlid); 762 wl12xx_free_link(wl, &wlvif->ap.global_hlid);
763 763
764out_free: 764out_free:
765 kfree(cmd); 765 kfree(cmd);
@@ -1264,12 +1264,11 @@ out:
1264 return ret; 1264 return ret;
1265} 1265}
1266 1266
1267int wl1271_cmd_set_sta_key(struct wl1271 *wl, struct ieee80211_vif *vif, 1267int wl1271_cmd_set_sta_key(struct wl1271 *wl, struct wl12xx_vif *wlvif,
1268 u16 action, u8 id, u8 key_type, 1268 u16 action, u8 id, u8 key_type,
1269 u8 key_size, const u8 *key, const u8 *addr, 1269 u8 key_size, const u8 *key, const u8 *addr,
1270 u32 tx_seq_32, u16 tx_seq_16) 1270 u32 tx_seq_32, u16 tx_seq_16)
1271{ 1271{
1272 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif);
1273 struct wl1271_cmd_set_keys *cmd; 1272 struct wl1271_cmd_set_keys *cmd;
1274 int ret = 0; 1273 int ret = 0;
1275 1274
@@ -1334,9 +1333,10 @@ out:
1334 * TODO: merge with sta/ibss into 1 set_key function. 1333 * TODO: merge with sta/ibss into 1 set_key function.
1335 * note there are slight diffs 1334 * note there are slight diffs
1336 */ 1335 */
1337int wl1271_cmd_set_ap_key(struct wl1271 *wl, u16 action, u8 id, u8 key_type, 1336int wl1271_cmd_set_ap_key(struct wl1271 *wl, struct wl12xx_vif *wlvif,
1338 u8 key_size, const u8 *key, u8 hlid, u32 tx_seq_32, 1337 u16 action, u8 id, u8 key_type,
1339 u16 tx_seq_16) 1338 u8 key_size, const u8 *key, u8 hlid, u32 tx_seq_32,
1339 u16 tx_seq_16)
1340{ 1340{
1341 struct wl1271_cmd_set_keys *cmd; 1341 struct wl1271_cmd_set_keys *cmd;
1342 int ret = 0; 1342 int ret = 0;
@@ -1346,7 +1346,7 @@ int wl1271_cmd_set_ap_key(struct wl1271 *wl, u16 action, u8 id, u8 key_type,
1346 if (!cmd) 1346 if (!cmd)
1347 return -ENOMEM; 1347 return -ENOMEM;
1348 1348
1349 if (hlid == wl->ap_bcast_hlid) { 1349 if (hlid == wlvif->ap.bcast_hlid) {
1350 if (key_type == KEY_WEP) 1350 if (key_type == KEY_WEP)
1351 lid_type = WEP_DEFAULT_LID_TYPE; 1351 lid_type = WEP_DEFAULT_LID_TYPE;
1352 else 1352 else
diff --git a/drivers/net/wireless/wl12xx/cmd.h b/drivers/net/wireless/wl12xx/cmd.h
index 25ab400f2ebd..9624828b76e8 100644
--- a/drivers/net/wireless/wl12xx/cmd.h
+++ b/drivers/net/wireless/wl12xx/cmd.h
@@ -70,11 +70,12 @@ int wl1271_build_qos_null_data(struct wl1271 *wl, struct ieee80211_vif *vif);
70int wl12xx_cmd_build_klv_null_data(struct wl1271 *wl, 70int wl12xx_cmd_build_klv_null_data(struct wl1271 *wl,
71 struct wl12xx_vif *wlvif); 71 struct wl12xx_vif *wlvif);
72int wl12xx_cmd_set_default_wep_key(struct wl1271 *wl, u8 id, u8 hlid); 72int wl12xx_cmd_set_default_wep_key(struct wl1271 *wl, u8 id, u8 hlid);
73int wl1271_cmd_set_sta_key(struct wl1271 *wl, struct ieee80211_vif *vif, 73int wl1271_cmd_set_sta_key(struct wl1271 *wl, struct wl12xx_vif *wlvif,
74 u16 action, u8 id, u8 key_type, 74 u16 action, u8 id, u8 key_type,
75 u8 key_size, const u8 *key, const u8 *addr, 75 u8 key_size, const u8 *key, const u8 *addr,
76 u32 tx_seq_32, u16 tx_seq_16); 76 u32 tx_seq_32, u16 tx_seq_16);
77int wl1271_cmd_set_ap_key(struct wl1271 *wl, u16 action, u8 id, u8 key_type, 77int wl1271_cmd_set_ap_key(struct wl1271 *wl, struct wl12xx_vif *wlvif,
78 u16 action, u8 id, u8 key_type,
78 u8 key_size, const u8 *key, u8 hlid, u32 tx_seq_32, 79 u8 key_size, const u8 *key, u8 hlid, u32 tx_seq_32,
79 u16 tx_seq_16); 80 u16 tx_seq_16);
80int wl12xx_cmd_set_peer_state(struct wl1271 *wl, u8 hlid); 81int wl12xx_cmd_set_peer_state(struct wl1271 *wl, u8 hlid);
diff --git a/drivers/net/wireless/wl12xx/main.c b/drivers/net/wireless/wl12xx/main.c
index 3358cfe5b019..731e34bc275a 100644
--- a/drivers/net/wireless/wl12xx/main.c
+++ b/drivers/net/wireless/wl12xx/main.c
@@ -1488,8 +1488,9 @@ int wl1271_plt_stop(struct wl1271 *wl)
1488static void wl1271_op_tx(struct ieee80211_hw *hw, struct sk_buff *skb) 1488static void wl1271_op_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
1489{ 1489{
1490 struct wl1271 *wl = hw->priv; 1490 struct wl1271 *wl = hw->priv;
1491 struct ieee80211_tx_info *control = IEEE80211_SKB_CB(skb); 1491 struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
1492 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(control->control.vif); 1492 struct ieee80211_vif *vif = info->control.vif;
1493 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif);
1493 unsigned long flags; 1494 unsigned long flags;
1494 int q, mapping; 1495 int q, mapping;
1495 u8 hlid = 0; 1496 u8 hlid = 0;
@@ -1498,7 +1499,7 @@ static void wl1271_op_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
1498 q = wl1271_tx_get_queue(mapping); 1499 q = wl1271_tx_get_queue(mapping);
1499 1500
1500 if (wlvif->bss_type == BSS_TYPE_AP_BSS) 1501 if (wlvif->bss_type == BSS_TYPE_AP_BSS)
1501 hlid = wl12xx_tx_get_hlid_ap(wl, skb); 1502 hlid = wl12xx_tx_get_hlid_ap(wl, wlvif, skb);
1502 1503
1503 spin_lock_irqsave(&wl->wl_lock, flags); 1504 spin_lock_irqsave(&wl->wl_lock, flags);
1504 1505
@@ -1858,7 +1859,12 @@ static void wl12xx_init_vif_data(struct wl12xx_vif *wlvif)
1858 wlvif->bss_type = MAX_BSS_TYPE; 1859 wlvif->bss_type = MAX_BSS_TYPE;
1859 wlvif->role_id = WL12XX_INVALID_ROLE_ID; 1860 wlvif->role_id = WL12XX_INVALID_ROLE_ID;
1860 wlvif->dev_role_id = WL12XX_INVALID_ROLE_ID; 1861 wlvif->dev_role_id = WL12XX_INVALID_ROLE_ID;
1862
1863 /* TODO: init union by type */
1861 wlvif->sta.hlid = WL12XX_INVALID_LINK_ID; 1864 wlvif->sta.hlid = WL12XX_INVALID_LINK_ID;
1865 wlvif->ap.bcast_hlid = WL12XX_INVALID_LINK_ID;
1866 wlvif->ap.global_hlid = WL12XX_INVALID_LINK_ID;
1867
1862 wlvif->basic_rate_set = CONF_TX_RATE_MASK_BASIC; 1868 wlvif->basic_rate_set = CONF_TX_RATE_MASK_BASIC;
1863 wlvif->basic_rate = CONF_TX_RATE_MASK_BASIC; 1869 wlvif->basic_rate = CONF_TX_RATE_MASK_BASIC;
1864 wlvif->rate_set = CONF_TX_RATE_MASK_BASIC; 1870 wlvif->rate_set = CONF_TX_RATE_MASK_BASIC;
@@ -2084,8 +2090,8 @@ deinit:
2084 /* clear all hlids (except system_hlid) */ 2090 /* clear all hlids (except system_hlid) */
2085 wlvif->sta.hlid = WL12XX_INVALID_LINK_ID; 2091 wlvif->sta.hlid = WL12XX_INVALID_LINK_ID;
2086 wl->dev_hlid = WL12XX_INVALID_LINK_ID; 2092 wl->dev_hlid = WL12XX_INVALID_LINK_ID;
2087 wl->ap_bcast_hlid = WL12XX_INVALID_LINK_ID; 2093 wlvif->ap.bcast_hlid = WL12XX_INVALID_LINK_ID;
2088 wl->ap_global_hlid = WL12XX_INVALID_LINK_ID; 2094 wlvif->ap.global_hlid = WL12XX_INVALID_LINK_ID;
2089 2095
2090 /* 2096 /*
2091 * this must be before the cancel_work calls below, so that the work 2097 * this must be before the cancel_work calls below, so that the work
@@ -2653,7 +2659,7 @@ static void wl1271_free_ap_keys(struct wl1271 *wl)
2653 } 2659 }
2654} 2660}
2655 2661
2656static int wl1271_ap_init_hwenc(struct wl1271 *wl) 2662static int wl1271_ap_init_hwenc(struct wl1271 *wl, struct wl12xx_vif *wlvif)
2657{ 2663{
2658 int i, ret = 0; 2664 int i, ret = 0;
2659 struct wl1271_ap_key *key; 2665 struct wl1271_ap_key *key;
@@ -2667,9 +2673,9 @@ static int wl1271_ap_init_hwenc(struct wl1271 *wl)
2667 key = wl->recorded_ap_keys[i]; 2673 key = wl->recorded_ap_keys[i];
2668 hlid = key->hlid; 2674 hlid = key->hlid;
2669 if (hlid == WL12XX_INVALID_LINK_ID) 2675 if (hlid == WL12XX_INVALID_LINK_ID)
2670 hlid = wl->ap_bcast_hlid; 2676 hlid = wlvif->ap.bcast_hlid;
2671 2677
2672 ret = wl1271_cmd_set_ap_key(wl, KEY_ADD_OR_REPLACE, 2678 ret = wl1271_cmd_set_ap_key(wl, wlvif, KEY_ADD_OR_REPLACE,
2673 key->id, key->key_type, 2679 key->id, key->key_type,
2674 key->key_size, key->key, 2680 key->key_size, key->key,
2675 hlid, key->tx_seq_32, 2681 hlid, key->tx_seq_32,
@@ -2683,7 +2689,7 @@ static int wl1271_ap_init_hwenc(struct wl1271 *wl)
2683 2689
2684 if (wep_key_added) { 2690 if (wep_key_added) {
2685 ret = wl12xx_cmd_set_default_wep_key(wl, wl->default_key, 2691 ret = wl12xx_cmd_set_default_wep_key(wl, wl->default_key,
2686 wl->ap_bcast_hlid); 2692 wlvif->ap.bcast_hlid);
2687 if (ret < 0) 2693 if (ret < 0)
2688 goto out; 2694 goto out;
2689 } 2695 }
@@ -2709,7 +2715,7 @@ static int wl1271_set_key(struct wl1271 *wl, struct wl12xx_vif *wlvif,
2709 wl_sta = (struct wl1271_station *)sta->drv_priv; 2715 wl_sta = (struct wl1271_station *)sta->drv_priv;
2710 hlid = wl_sta->hlid; 2716 hlid = wl_sta->hlid;
2711 } else { 2717 } else {
2712 hlid = wl->ap_bcast_hlid; 2718 hlid = wlvif->ap.bcast_hlid;
2713 } 2719 }
2714 2720
2715 if (!test_bit(WL1271_FLAG_AP_STARTED, &wl->flags)) { 2721 if (!test_bit(WL1271_FLAG_AP_STARTED, &wl->flags)) {
@@ -2725,7 +2731,7 @@ static int wl1271_set_key(struct wl1271 *wl, struct wl12xx_vif *wlvif,
2725 key, hlid, tx_seq_32, 2731 key, hlid, tx_seq_32,
2726 tx_seq_16); 2732 tx_seq_16);
2727 } else { 2733 } else {
2728 ret = wl1271_cmd_set_ap_key(wl, action, 2734 ret = wl1271_cmd_set_ap_key(wl, wlvif, action,
2729 id, key_type, key_size, 2735 id, key_type, key_size,
2730 key, hlid, tx_seq_32, 2736 key, hlid, tx_seq_32,
2731 tx_seq_16); 2737 tx_seq_16);
@@ -2769,7 +2775,7 @@ static int wl1271_set_key(struct wl1271 *wl, struct wl12xx_vif *wlvif,
2769 wlvif->sta.hlid == WL12XX_INVALID_LINK_ID) 2775 wlvif->sta.hlid == WL12XX_INVALID_LINK_ID)
2770 return 0; 2776 return 0;
2771 2777
2772 ret = wl1271_cmd_set_sta_key(wl, vif, action, 2778 ret = wl1271_cmd_set_sta_key(wl, wlvif, action,
2773 id, key_type, key_size, 2779 id, key_type, key_size,
2774 key, addr, tx_seq_32, 2780 key, addr, tx_seq_32,
2775 tx_seq_16); 2781 tx_seq_16);
@@ -3375,7 +3381,7 @@ static void wl1271_bss_info_changed_ap(struct wl1271 *wl,
3375 if (ret < 0) 3381 if (ret < 0)
3376 goto out; 3382 goto out;
3377 3383
3378 ret = wl1271_ap_init_hwenc(wl); 3384 ret = wl1271_ap_init_hwenc(wl, wlvif);
3379 if (ret < 0) 3385 if (ret < 0)
3380 goto out; 3386 goto out;
3381 3387
@@ -4891,8 +4897,6 @@ struct ieee80211_hw *wl1271_alloc_hw(void)
4891 wl->system_hlid = WL12XX_SYSTEM_HLID; 4897 wl->system_hlid = WL12XX_SYSTEM_HLID;
4892 wl->dev_hlid = WL12XX_INVALID_LINK_ID; 4898 wl->dev_hlid = WL12XX_INVALID_LINK_ID;
4893 wl->session_counter = 0; 4899 wl->session_counter = 0;
4894 wl->ap_bcast_hlid = WL12XX_INVALID_LINK_ID;
4895 wl->ap_global_hlid = WL12XX_INVALID_LINK_ID;
4896 wl->active_sta_count = 0; 4900 wl->active_sta_count = 0;
4897 setup_timer(&wl->rx_streaming_timer, wl1271_rx_streaming_timer, 4901 setup_timer(&wl->rx_streaming_timer, wl1271_rx_streaming_timer,
4898 (unsigned long) wl); 4902 (unsigned long) wl);
diff --git a/drivers/net/wireless/wl12xx/tx.c b/drivers/net/wireless/wl12xx/tx.c
index db55767d7d54..53c6451a8fde 100644
--- a/drivers/net/wireless/wl12xx/tx.c
+++ b/drivers/net/wireless/wl12xx/tx.c
@@ -40,7 +40,7 @@ static int wl1271_set_default_wep_key(struct wl1271 *wl,
40 40
41 if (is_ap) 41 if (is_ap)
42 ret = wl12xx_cmd_set_default_wep_key(wl, id, 42 ret = wl12xx_cmd_set_default_wep_key(wl, id,
43 wl->ap_bcast_hlid); 43 wlvif->ap.bcast_hlid);
44 else 44 else
45 ret = wl12xx_cmd_set_default_wep_key(wl, id, wlvif->sta.hlid); 45 ret = wl12xx_cmd_set_default_wep_key(wl, id, wlvif->sta.hlid);
46 46
@@ -156,7 +156,8 @@ bool wl12xx_is_dummy_packet(struct wl1271 *wl, struct sk_buff *skb)
156 return wl->dummy_packet == skb; 156 return wl->dummy_packet == skb;
157} 157}
158 158
159u8 wl12xx_tx_get_hlid_ap(struct wl1271 *wl, struct sk_buff *skb) 159u8 wl12xx_tx_get_hlid_ap(struct wl1271 *wl, struct wl12xx_vif *wlvif,
160 struct sk_buff *skb)
160{ 161{
161 struct ieee80211_tx_info *control = IEEE80211_SKB_CB(skb); 162 struct ieee80211_tx_info *control = IEEE80211_SKB_CB(skb);
162 163
@@ -174,9 +175,9 @@ u8 wl12xx_tx_get_hlid_ap(struct wl1271 *wl, struct sk_buff *skb)
174 175
175 hdr = (struct ieee80211_hdr *)skb->data; 176 hdr = (struct ieee80211_hdr *)skb->data;
176 if (ieee80211_is_mgmt(hdr->frame_control)) 177 if (ieee80211_is_mgmt(hdr->frame_control))
177 return wl->ap_global_hlid; 178 return wlvif->ap.global_hlid;
178 else 179 else
179 return wl->ap_bcast_hlid; 180 return wlvif->ap.bcast_hlid;
180 } 181 }
181} 182}
182 183
@@ -191,7 +192,7 @@ static u8 wl1271_tx_get_hlid(struct wl1271 *wl, struct ieee80211_vif *vif,
191 return wl->system_hlid; 192 return wl->system_hlid;
192 193
193 if (wlvif->bss_type == BSS_TYPE_AP_BSS) 194 if (wlvif->bss_type == BSS_TYPE_AP_BSS)
194 return wl12xx_tx_get_hlid_ap(wl, skb); 195 return wl12xx_tx_get_hlid_ap(wl, wlvif, skb);
195 196
196 wl1271_tx_update_filters(wl, wlvif, skb); 197 wl1271_tx_update_filters(wl, wlvif, skb);
197 198
@@ -341,9 +342,9 @@ static void wl1271_tx_fill_hdr(struct wl1271 *wl, struct ieee80211_vif *vif,
341 else 342 else
342 rate_idx = ACX_TX_BASIC_RATE; 343 rate_idx = ACX_TX_BASIC_RATE;
343 } else { 344 } else {
344 if (hlid == wl->ap_global_hlid) 345 if (hlid == wlvif->ap.global_hlid)
345 rate_idx = ACX_TX_AP_MODE_MGMT_RATE; 346 rate_idx = ACX_TX_AP_MODE_MGMT_RATE;
346 else if (hlid == wl->ap_bcast_hlid) 347 else if (hlid == wlvif->ap.bcast_hlid)
347 rate_idx = ACX_TX_AP_MODE_BCST_RATE; 348 rate_idx = ACX_TX_AP_MODE_BCST_RATE;
348 else 349 else
349 rate_idx = ac; 350 rate_idx = ac;
diff --git a/drivers/net/wireless/wl12xx/tx.h b/drivers/net/wireless/wl12xx/tx.h
index ba9403a45404..0964c9335316 100644
--- a/drivers/net/wireless/wl12xx/tx.h
+++ b/drivers/net/wireless/wl12xx/tx.h
@@ -212,7 +212,8 @@ u8 wl1271_rate_to_idx(int rate, enum ieee80211_band band);
212u32 wl1271_tx_enabled_rates_get(struct wl1271 *wl, u32 rate_set, 212u32 wl1271_tx_enabled_rates_get(struct wl1271 *wl, u32 rate_set,
213 enum ieee80211_band rate_band); 213 enum ieee80211_band rate_band);
214u32 wl1271_tx_min_rate_get(struct wl1271 *wl, u32 rate_set); 214u32 wl1271_tx_min_rate_get(struct wl1271 *wl, u32 rate_set);
215u8 wl12xx_tx_get_hlid_ap(struct wl1271 *wl, struct sk_buff *skb); 215u8 wl12xx_tx_get_hlid_ap(struct wl1271 *wl, struct wl12xx_vif *wlvif,
216 struct sk_buff *skb);
216void wl1271_tx_reset_link_queues(struct wl1271 *wl, u8 hlid); 217void wl1271_tx_reset_link_queues(struct wl1271 *wl, u8 hlid);
217void wl1271_handle_tx_low_watermark(struct wl1271 *wl); 218void wl1271_handle_tx_low_watermark(struct wl1271 *wl);
218bool wl12xx_is_dummy_packet(struct wl1271 *wl, struct sk_buff *skb); 219bool wl12xx_is_dummy_packet(struct wl1271 *wl, struct sk_buff *skb);
diff --git a/drivers/net/wireless/wl12xx/wl12xx.h b/drivers/net/wireless/wl12xx/wl12xx.h
index a1084d1466bb..aa84899466a8 100644
--- a/drivers/net/wireless/wl12xx/wl12xx.h
+++ b/drivers/net/wireless/wl12xx/wl12xx.h
@@ -403,8 +403,6 @@ struct wl1271 {
403 int channel; 403 int channel;
404 u8 system_hlid; 404 u8 system_hlid;
405 u8 dev_hlid; 405 u8 dev_hlid;
406 u8 ap_global_hlid;
407 u8 ap_bcast_hlid;
408 406
409 unsigned long links_map[BITS_TO_LONGS(WL12XX_MAX_LINKS)]; 407 unsigned long links_map[BITS_TO_LONGS(WL12XX_MAX_LINKS)];
410 unsigned long roles_map[BITS_TO_LONGS(WL12XX_MAX_ROLES)]; 408 unsigned long roles_map[BITS_TO_LONGS(WL12XX_MAX_ROLES)];
@@ -627,6 +625,10 @@ struct wl12xx_vif {
627 struct { 625 struct {
628 u8 hlid; 626 u8 hlid;
629 } sta; 627 } sta;
628 struct {
629 u8 global_hlid;
630 u8 bcast_hlid;
631 } ap;
630 }; 632 };
631 633
632 u8 ssid[IEEE80211_MAX_SSID_LEN + 1]; 634 u8 ssid[IEEE80211_MAX_SSID_LEN + 1];