aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/wl12xx/cmd.c
diff options
context:
space:
mode:
authorEliad Peller <eliad@wizery.com>2011-10-05 05:55:41 -0400
committerLuciano Coelho <coelho@ti.com>2011-10-07 01:32:33 -0400
commit87fbcb0f8c5c8fd57a4e3e7e638977c04ce1e0ca (patch)
tree7c4198319bbb1dc6bbcd5b4b683d4a023a635875 /drivers/net/wireless/wl12xx/cmd.c
parent92c77c734f958474ac73af670834bc32cb833e54 (diff)
wl12xx: define wl12xx_vif
Define a per-vif data struct. This struct holds all the vif-specifc data, which is currently being hold by the global wl struct. Start by moving the basic_rate_set field into it. NOTE: in order to make the patches a bit smaller, start by using wl->vif in some functions, instead of changing all the function prototypes at once. finally, wl->vif will be removed altogether. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
Diffstat (limited to 'drivers/net/wireless/wl12xx/cmd.c')
-rw-r--r--drivers/net/wireless/wl12xx/cmd.c21
1 files changed, 11 insertions, 10 deletions
diff --git a/drivers/net/wireless/wl12xx/cmd.c b/drivers/net/wireless/wl12xx/cmd.c
index bee44c7d67fd..c99fc61113d1 100644
--- a/drivers/net/wireless/wl12xx/cmd.c
+++ b/drivers/net/wireless/wl12xx/cmd.c
@@ -555,7 +555,7 @@ out:
555 return ret; 555 return ret;
556} 556}
557 557
558int wl12xx_cmd_role_start_sta(struct wl1271 *wl) 558int wl12xx_cmd_role_start_sta(struct wl1271 *wl, struct wl12xx_vif *wlvif)
559{ 559{
560 struct wl12xx_cmd_role_start *cmd; 560 struct wl12xx_cmd_role_start *cmd;
561 int ret; 561 int ret;
@@ -572,7 +572,7 @@ int wl12xx_cmd_role_start_sta(struct wl1271 *wl)
572 if (wl->band == IEEE80211_BAND_5GHZ) 572 if (wl->band == IEEE80211_BAND_5GHZ)
573 cmd->band = WL12XX_BAND_5GHZ; 573 cmd->band = WL12XX_BAND_5GHZ;
574 cmd->channel = wl->channel; 574 cmd->channel = wl->channel;
575 cmd->sta.basic_rate_set = cpu_to_le32(wl->basic_rate_set); 575 cmd->sta.basic_rate_set = cpu_to_le32(wlvif->basic_rate_set);
576 cmd->sta.beacon_interval = cpu_to_le16(wl->beacon_int); 576 cmd->sta.beacon_interval = cpu_to_le16(wl->beacon_int);
577 cmd->sta.ssid_type = WL12XX_SSID_TYPE_ANY; 577 cmd->sta.ssid_type = WL12XX_SSID_TYPE_ANY;
578 cmd->sta.ssid_len = wl->ssid_len; 578 cmd->sta.ssid_len = wl->ssid_len;
@@ -592,7 +592,7 @@ int wl12xx_cmd_role_start_sta(struct wl1271 *wl)
592 wl1271_debug(DEBUG_CMD, "role start: roleid=%d, hlid=%d, session=%d " 592 wl1271_debug(DEBUG_CMD, "role start: roleid=%d, hlid=%d, session=%d "
593 "basic_rate_set: 0x%x, remote_rates: 0x%x", 593 "basic_rate_set: 0x%x, remote_rates: 0x%x",
594 wl->role_id, cmd->sta.hlid, cmd->sta.session, 594 wl->role_id, cmd->sta.hlid, cmd->sta.session,
595 wl->basic_rate_set, wl->rate_set); 595 wlvif->basic_rate_set, wl->rate_set);
596 596
597 ret = wl1271_cmd_send(wl, CMD_ROLE_START, cmd, sizeof(*cmd), 0); 597 ret = wl1271_cmd_send(wl, CMD_ROLE_START, cmd, sizeof(*cmd), 0);
598 if (ret < 0) { 598 if (ret < 0) {
@@ -649,7 +649,7 @@ out:
649 return ret; 649 return ret;
650} 650}
651 651
652int wl12xx_cmd_role_start_ap(struct wl1271 *wl) 652int wl12xx_cmd_role_start_ap(struct wl1271 *wl, struct wl12xx_vif *wlvif)
653{ 653{
654 struct wl12xx_cmd_role_start *cmd; 654 struct wl12xx_cmd_role_start *cmd;
655 struct ieee80211_bss_conf *bss_conf = &wl->vif->bss_conf; 655 struct ieee80211_bss_conf *bss_conf = &wl->vif->bss_conf;
@@ -683,7 +683,7 @@ int wl12xx_cmd_role_start_ap(struct wl1271 *wl)
683 cmd->ap.bss_index = WL1271_AP_BSS_INDEX; 683 cmd->ap.bss_index = WL1271_AP_BSS_INDEX;
684 cmd->ap.global_hlid = wl->ap_global_hlid; 684 cmd->ap.global_hlid = wl->ap_global_hlid;
685 cmd->ap.broadcast_hlid = wl->ap_bcast_hlid; 685 cmd->ap.broadcast_hlid = wl->ap_bcast_hlid;
686 cmd->ap.basic_rate_set = cpu_to_le32(wl->basic_rate_set); 686 cmd->ap.basic_rate_set = cpu_to_le32(wlvif->basic_rate_set);
687 cmd->ap.beacon_interval = cpu_to_le16(wl->beacon_int); 687 cmd->ap.beacon_interval = cpu_to_le16(wl->beacon_int);
688 cmd->ap.dtim_interval = bss_conf->dtim_period; 688 cmd->ap.dtim_interval = bss_conf->dtim_period;
689 cmd->ap.beacon_expiry = WL1271_AP_DEF_BEACON_EXP; 689 cmd->ap.beacon_expiry = WL1271_AP_DEF_BEACON_EXP;
@@ -767,7 +767,7 @@ out:
767 return ret; 767 return ret;
768} 768}
769 769
770int wl12xx_cmd_role_start_ibss(struct wl1271 *wl) 770int wl12xx_cmd_role_start_ibss(struct wl1271 *wl, struct wl12xx_vif *wlvif)
771{ 771{
772 struct wl12xx_cmd_role_start *cmd; 772 struct wl12xx_cmd_role_start *cmd;
773 struct ieee80211_bss_conf *bss_conf = &wl->vif->bss_conf; 773 struct ieee80211_bss_conf *bss_conf = &wl->vif->bss_conf;
@@ -785,7 +785,7 @@ int wl12xx_cmd_role_start_ibss(struct wl1271 *wl)
785 if (wl->band == IEEE80211_BAND_5GHZ) 785 if (wl->band == IEEE80211_BAND_5GHZ)
786 cmd->band = WL12XX_BAND_5GHZ; 786 cmd->band = WL12XX_BAND_5GHZ;
787 cmd->channel = wl->channel; 787 cmd->channel = wl->channel;
788 cmd->ibss.basic_rate_set = cpu_to_le32(wl->basic_rate_set); 788 cmd->ibss.basic_rate_set = cpu_to_le32(wlvif->basic_rate_set);
789 cmd->ibss.beacon_interval = cpu_to_le16(wl->beacon_int); 789 cmd->ibss.beacon_interval = cpu_to_le16(wl->beacon_int);
790 cmd->ibss.dtim_interval = bss_conf->dtim_period; 790 cmd->ibss.dtim_interval = bss_conf->dtim_period;
791 cmd->ibss.ssid_type = WL12XX_SSID_TYPE_ANY; 791 cmd->ibss.ssid_type = WL12XX_SSID_TYPE_ANY;
@@ -805,7 +805,7 @@ int wl12xx_cmd_role_start_ibss(struct wl1271 *wl)
805 wl1271_debug(DEBUG_CMD, "role start: roleid=%d, hlid=%d, session=%d " 805 wl1271_debug(DEBUG_CMD, "role start: roleid=%d, hlid=%d, session=%d "
806 "basic_rate_set: 0x%x, remote_rates: 0x%x", 806 "basic_rate_set: 0x%x, remote_rates: 0x%x",
807 wl->role_id, cmd->sta.hlid, cmd->sta.session, 807 wl->role_id, cmd->sta.hlid, cmd->sta.session,
808 wl->basic_rate_set, wl->rate_set); 808 wlvif->basic_rate_set, wl->rate_set);
809 809
810 wl1271_debug(DEBUG_CMD, "wl->bssid = %pM", wl->bssid); 810 wl1271_debug(DEBUG_CMD, "wl->bssid = %pM", wl->bssid);
811 811
@@ -1085,7 +1085,8 @@ out:
1085 1085
1086} 1086}
1087 1087
1088int wl1271_cmd_build_ps_poll(struct wl1271 *wl, u16 aid) 1088int wl1271_cmd_build_ps_poll(struct wl1271 *wl, struct wl12xx_vif *wlvif,
1089 u16 aid)
1089{ 1090{
1090 struct sk_buff *skb; 1091 struct sk_buff *skb;
1091 int ret = 0; 1092 int ret = 0;
@@ -1095,7 +1096,7 @@ int wl1271_cmd_build_ps_poll(struct wl1271 *wl, u16 aid)
1095 goto out; 1096 goto out;
1096 1097
1097 ret = wl1271_cmd_template_set(wl, CMD_TEMPL_PS_POLL, skb->data, 1098 ret = wl1271_cmd_template_set(wl, CMD_TEMPL_PS_POLL, skb->data,
1098 skb->len, 0, wl->basic_rate_set); 1099 skb->len, 0, wlvif->basic_rate_set);
1099 1100
1100out: 1101out:
1101 dev_kfree_skb(skb); 1102 dev_kfree_skb(skb);