diff options
author | Eliad Peller <eliad@wizery.com> | 2011-10-05 05:55:57 -0400 |
---|---|---|
committer | Luciano Coelho <coelho@ti.com> | 2011-10-07 01:32:47 -0400 |
commit | afaf8bdb2b08bbf493b03757243821df72b26c53 (patch) | |
tree | 40559a05c2be90301d9a579a9fe557dd79251ac3 /drivers | |
parent | e936bbe0dc235458408c060deaa43f5b8b0bd705 (diff) |
wl12xx: move dev_hlid into wlvif
move dev_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>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/wireless/wl12xx/cmd.c | 14 | ||||
-rw-r--r-- | drivers/net/wireless/wl12xx/main.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/wl12xx/tx.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/wl12xx/wl12xx.h | 2 |
4 files changed, 11 insertions, 13 deletions
diff --git a/drivers/net/wireless/wl12xx/cmd.c b/drivers/net/wireless/wl12xx/cmd.c index 89d263e7b569..166d984cb5af 100644 --- a/drivers/net/wireless/wl12xx/cmd.c +++ b/drivers/net/wireless/wl12xx/cmd.c | |||
@@ -483,12 +483,12 @@ int wl12xx_cmd_role_start_dev(struct wl1271 *wl, struct wl12xx_vif *wlvif) | |||
483 | cmd->band = WL12XX_BAND_5GHZ; | 483 | cmd->band = WL12XX_BAND_5GHZ; |
484 | cmd->channel = wl->channel; | 484 | cmd->channel = wl->channel; |
485 | 485 | ||
486 | if (wl->dev_hlid == WL12XX_INVALID_LINK_ID) { | 486 | if (wlvif->dev_hlid == WL12XX_INVALID_LINK_ID) { |
487 | ret = wl12xx_allocate_link(wl, &wl->dev_hlid); | 487 | ret = wl12xx_allocate_link(wl, &wlvif->dev_hlid); |
488 | if (ret) | 488 | if (ret) |
489 | goto out_free; | 489 | goto out_free; |
490 | } | 490 | } |
491 | cmd->device.hlid = wl->dev_hlid; | 491 | cmd->device.hlid = wlvif->dev_hlid; |
492 | cmd->device.session = wlvif->session_counter; | 492 | cmd->device.session = wlvif->session_counter; |
493 | 493 | ||
494 | wl1271_debug(DEBUG_CMD, "role start: roleid=%d, hlid=%d, session=%d", | 494 | wl1271_debug(DEBUG_CMD, "role start: roleid=%d, hlid=%d, session=%d", |
@@ -504,9 +504,7 @@ int wl12xx_cmd_role_start_dev(struct wl1271 *wl, struct wl12xx_vif *wlvif) | |||
504 | 504 | ||
505 | err_hlid: | 505 | err_hlid: |
506 | /* clear links on error */ | 506 | /* clear links on error */ |
507 | __clear_bit(wl->dev_hlid, wl->links_map); | 507 | wl12xx_free_link(wl, &wlvif->dev_hlid); |
508 | wl->dev_hlid = WL12XX_INVALID_LINK_ID; | ||
509 | |||
510 | 508 | ||
511 | out_free: | 509 | out_free: |
512 | kfree(cmd); | 510 | kfree(cmd); |
@@ -520,7 +518,7 @@ int wl12xx_cmd_role_stop_dev(struct wl1271 *wl, struct wl12xx_vif *wlvif) | |||
520 | struct wl12xx_cmd_role_stop *cmd; | 518 | struct wl12xx_cmd_role_stop *cmd; |
521 | int ret; | 519 | int ret; |
522 | 520 | ||
523 | if (WARN_ON(wl->dev_hlid == WL12XX_INVALID_LINK_ID)) | 521 | if (WARN_ON(wlvif->dev_hlid == WL12XX_INVALID_LINK_ID)) |
524 | return -EINVAL; | 522 | return -EINVAL; |
525 | 523 | ||
526 | cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); | 524 | cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); |
@@ -547,7 +545,7 @@ int wl12xx_cmd_role_stop_dev(struct wl1271 *wl, struct wl12xx_vif *wlvif) | |||
547 | goto out_free; | 545 | goto out_free; |
548 | } | 546 | } |
549 | 547 | ||
550 | wl12xx_free_link(wl, &wl->dev_hlid); | 548 | wl12xx_free_link(wl, &wlvif->dev_hlid); |
551 | 549 | ||
552 | out_free: | 550 | out_free: |
553 | kfree(cmd); | 551 | kfree(cmd); |
diff --git a/drivers/net/wireless/wl12xx/main.c b/drivers/net/wireless/wl12xx/main.c index effba53eb3f4..e8d73d70cedf 100644 --- a/drivers/net/wireless/wl12xx/main.c +++ b/drivers/net/wireless/wl12xx/main.c | |||
@@ -1884,6 +1884,7 @@ static int wl12xx_init_vif_data(struct ieee80211_vif *vif) | |||
1884 | 1884 | ||
1885 | wlvif->role_id = WL12XX_INVALID_ROLE_ID; | 1885 | wlvif->role_id = WL12XX_INVALID_ROLE_ID; |
1886 | wlvif->dev_role_id = WL12XX_INVALID_ROLE_ID; | 1886 | wlvif->dev_role_id = WL12XX_INVALID_ROLE_ID; |
1887 | wlvif->dev_hlid = WL12XX_INVALID_LINK_ID; | ||
1887 | 1888 | ||
1888 | if (wlvif->bss_type == BSS_TYPE_STA_BSS || | 1889 | if (wlvif->bss_type == BSS_TYPE_STA_BSS || |
1889 | wlvif->bss_type == BSS_TYPE_IBSS) { | 1890 | wlvif->bss_type == BSS_TYPE_IBSS) { |
@@ -2103,7 +2104,7 @@ static void __wl1271_op_remove_interface(struct wl1271 *wl, | |||
2103 | deinit: | 2104 | deinit: |
2104 | /* clear all hlids (except system_hlid) */ | 2105 | /* clear all hlids (except system_hlid) */ |
2105 | wlvif->sta.hlid = WL12XX_INVALID_LINK_ID; | 2106 | wlvif->sta.hlid = WL12XX_INVALID_LINK_ID; |
2106 | wl->dev_hlid = WL12XX_INVALID_LINK_ID; | 2107 | wlvif->dev_hlid = WL12XX_INVALID_LINK_ID; |
2107 | wlvif->ap.bcast_hlid = WL12XX_INVALID_LINK_ID; | 2108 | wlvif->ap.bcast_hlid = WL12XX_INVALID_LINK_ID; |
2108 | wlvif->ap.global_hlid = WL12XX_INVALID_LINK_ID; | 2109 | wlvif->ap.global_hlid = WL12XX_INVALID_LINK_ID; |
2109 | 2110 | ||
@@ -4908,7 +4909,6 @@ struct ieee80211_hw *wl1271_alloc_hw(void) | |||
4908 | wl->tx_security_last_seq_lsb = 0; | 4909 | wl->tx_security_last_seq_lsb = 0; |
4909 | wl->tx_spare_blocks = TX_HW_BLOCK_SPARE_DEFAULT; | 4910 | wl->tx_spare_blocks = TX_HW_BLOCK_SPARE_DEFAULT; |
4910 | wl->system_hlid = WL12XX_SYSTEM_HLID; | 4911 | wl->system_hlid = WL12XX_SYSTEM_HLID; |
4911 | wl->dev_hlid = WL12XX_INVALID_LINK_ID; | ||
4912 | wl->active_sta_count = 0; | 4912 | wl->active_sta_count = 0; |
4913 | setup_timer(&wl->rx_streaming_timer, wl1271_rx_streaming_timer, | 4913 | setup_timer(&wl->rx_streaming_timer, wl1271_rx_streaming_timer, |
4914 | (unsigned long) wl); | 4914 | (unsigned long) wl); |
diff --git a/drivers/net/wireless/wl12xx/tx.c b/drivers/net/wireless/wl12xx/tx.c index da8427f5d7a8..8db68c649437 100644 --- a/drivers/net/wireless/wl12xx/tx.c +++ b/drivers/net/wireless/wl12xx/tx.c | |||
@@ -94,7 +94,7 @@ static int wl1271_tx_update_filters(struct wl1271 *wl, | |||
94 | if (!ieee80211_is_auth(hdr->frame_control)) | 94 | if (!ieee80211_is_auth(hdr->frame_control)) |
95 | return 0; | 95 | return 0; |
96 | 96 | ||
97 | if (wl->dev_hlid != WL12XX_INVALID_LINK_ID) | 97 | if (wlvif->dev_hlid != WL12XX_INVALID_LINK_ID) |
98 | goto out; | 98 | goto out; |
99 | 99 | ||
100 | wl1271_debug(DEBUG_CMD, "starting device role for roaming"); | 100 | wl1271_debug(DEBUG_CMD, "starting device role for roaming"); |
@@ -202,7 +202,7 @@ static u8 wl1271_tx_get_hlid(struct wl1271 *wl, struct ieee80211_vif *vif, | |||
202 | !ieee80211_is_assoc_req(hdr->frame_control)) | 202 | !ieee80211_is_assoc_req(hdr->frame_control)) |
203 | return wlvif->sta.hlid; | 203 | return wlvif->sta.hlid; |
204 | else | 204 | else |
205 | return wl->dev_hlid; | 205 | return wlvif->dev_hlid; |
206 | } | 206 | } |
207 | 207 | ||
208 | static unsigned int wl12xx_calc_packet_alignment(struct wl1271 *wl, | 208 | static unsigned int wl12xx_calc_packet_alignment(struct wl1271 *wl, |
diff --git a/drivers/net/wireless/wl12xx/wl12xx.h b/drivers/net/wireless/wl12xx/wl12xx.h index 9fcaa03cd737..752b6b99210c 100644 --- a/drivers/net/wireless/wl12xx/wl12xx.h +++ b/drivers/net/wireless/wl12xx/wl12xx.h | |||
@@ -402,7 +402,6 @@ struct wl1271 { | |||
402 | u8 mac_addr[ETH_ALEN]; | 402 | u8 mac_addr[ETH_ALEN]; |
403 | int channel; | 403 | int channel; |
404 | u8 system_hlid; | 404 | u8 system_hlid; |
405 | u8 dev_hlid; | ||
406 | 405 | ||
407 | unsigned long links_map[BITS_TO_LONGS(WL12XX_MAX_LINKS)]; | 406 | unsigned long links_map[BITS_TO_LONGS(WL12XX_MAX_LINKS)]; |
408 | unsigned long roles_map[BITS_TO_LONGS(WL12XX_MAX_ROLES)]; | 407 | unsigned long roles_map[BITS_TO_LONGS(WL12XX_MAX_ROLES)]; |
@@ -617,6 +616,7 @@ struct wl12xx_vif { | |||
617 | 616 | ||
618 | /* sta/ibss specific */ | 617 | /* sta/ibss specific */ |
619 | u8 dev_role_id; | 618 | u8 dev_role_id; |
619 | u8 dev_hlid; | ||
620 | 620 | ||
621 | union { | 621 | union { |
622 | struct { | 622 | struct { |