aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/mwifiex/sta_ioctl.c
diff options
context:
space:
mode:
authorAmitkumar Karwar <akarwar@marvell.com>2011-09-22 00:43:23 -0400
committerJohn W. Linville <linville@tuxdriver.com>2011-09-27 14:34:03 -0400
commit5116f3cef206e7fcd6023ba8595a6321f33c2044 (patch)
tree8742cda80ed3e983442cb64717829fcb6a63e601 /drivers/net/wireless/mwifiex/sta_ioctl.c
parentd06b7b9e1fd5f2512840a687bd13b50caa42f82b (diff)
mwifiex: update bss band information
In recent commit "mwifiex: use cfg80211 dynamic scan..." (7c6fa2a843..) scan table handling in driver is removed to make use of cfg80211 dynamic scan table. Now driver sends beacon buffers found in scanning directly to stack and parse the buffer for requested BSS only during association. Beacon buffer doesn't contain bss band information. Driver gets it from firmware in separate tlv (chan_band_tlv). Currently since we don't inform stack about bss bandinfo, there is an issue with 5GHz association. Use "priv" field of struct cfg80211_bss to store bandinfo. This fixes 5GHz association issue. Signed-off-by: Amitkumar Karwar <akarwar@marvell.com> Signed-off-by: Bing Zhao <bzhao@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/mwifiex/sta_ioctl.c')
-rw-r--r--drivers/net/wireless/mwifiex/sta_ioctl.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/wireless/mwifiex/sta_ioctl.c b/drivers/net/wireless/mwifiex/sta_ioctl.c
index 1df5ef6b4953..157d312f77be 100644
--- a/drivers/net/wireless/mwifiex/sta_ioctl.c
+++ b/drivers/net/wireless/mwifiex/sta_ioctl.c
@@ -148,7 +148,7 @@ int mwifiex_request_set_multicast_list(struct mwifiex_private *priv,
148int mwifiex_fill_new_bss_desc(struct mwifiex_private *priv, 148int mwifiex_fill_new_bss_desc(struct mwifiex_private *priv,
149 u8 *bssid, s32 rssi, u8 *ie_buf, 149 u8 *bssid, s32 rssi, u8 *ie_buf,
150 size_t ie_len, u16 beacon_period, 150 size_t ie_len, u16 beacon_period,
151 u16 cap_info_bitmap, 151 u16 cap_info_bitmap, u8 band,
152 struct mwifiex_bssdescriptor *bss_desc) 152 struct mwifiex_bssdescriptor *bss_desc)
153{ 153{
154 int ret; 154 int ret;
@@ -159,6 +159,7 @@ int mwifiex_fill_new_bss_desc(struct mwifiex_private *priv,
159 bss_desc->beacon_buf_size = ie_len; 159 bss_desc->beacon_buf_size = ie_len;
160 bss_desc->beacon_period = beacon_period; 160 bss_desc->beacon_period = beacon_period;
161 bss_desc->cap_info_bitmap = cap_info_bitmap; 161 bss_desc->cap_info_bitmap = cap_info_bitmap;
162 bss_desc->bss_band = band;
162 if (bss_desc->cap_info_bitmap & WLAN_CAPABILITY_PRIVACY) { 163 if (bss_desc->cap_info_bitmap & WLAN_CAPABILITY_PRIVACY) {
163 dev_dbg(priv->adapter->dev, "info: InterpretIE: AP WEP enabled\n"); 164 dev_dbg(priv->adapter->dev, "info: InterpretIE: AP WEP enabled\n");
164 bss_desc->privacy = MWIFIEX_802_11_PRIV_FILTER_8021X_WEP; 165 bss_desc->privacy = MWIFIEX_802_11_PRIV_FILTER_8021X_WEP;
@@ -211,7 +212,8 @@ int mwifiex_bss_start(struct mwifiex_private *priv, struct cfg80211_bss *bss,
211 ret = mwifiex_fill_new_bss_desc(priv, bss->bssid, bss->signal, 212 ret = mwifiex_fill_new_bss_desc(priv, bss->bssid, bss->signal,
212 beacon_ie, bss->len_beacon_ies, 213 beacon_ie, bss->len_beacon_ies,
213 bss->beacon_interval, 214 bss->beacon_interval,
214 bss->capability, bss_desc); 215 bss->capability,
216 *(u8 *)bss->priv, bss_desc);
215 if (ret) 217 if (ret)
216 goto done; 218 goto done;
217 } 219 }