staging: r8712u: Use 802.11bg mode to make a WEP connection
authorLarry Finger <Larry.Finger@lwfinger.net>
Tue, 31 Aug 2010 03:32:34 +0000 (22:32 -0500)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 31 Aug 2010 17:59:52 +0000 (10:59 -0700)
There are some IOT issues when 802.11bgn mode is used to make a WEP
connection.

Signed-off-by: Albert Wang <albert_wang@realtek.com.tw>
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/rtl8712/rtl871x_cmd.c

index 38c7dc683c7618b0c4da19a117a7626f0533c10e..fbb2e4eaae5189b10885907482ad9f8f3fb5b480 100644 (file)
@@ -474,17 +474,25 @@ u8 r8712_joinbss_cmd(struct _adapter  *padapter, struct wlan_network *pnetwork)
                        pqospriv->qos_option = 0; /* no WMM IE in beacon */
        }
        if (pregistrypriv->ht_enable) {
-               /* r8712_restructure_ht_ie */
-               r8712_restructure_ht_ie(padapter, &pnetwork->network.IEs[0],
-                                 &psecnetwork->IEs[0],
-                                 pnetwork->network.IELength,
-                                 &psecnetwork->IELength);
-               if (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) == true)
-                       r8712_add_ht_addt_info(padapter,
-                                        &pnetwork->network.IEs[0],
-                                        &psecnetwork->IEs[0],
-                                        pnetwork->network.IELength,
-                                        &psecnetwork->IELength);
+               /* For WEP mode, we will use the bg mode to do the connection
+                * to avoid some IOT issues, especially for Realtek 8192u
+                * SoftAP.
+                */
+               if ((padapter->securitypriv.PrivacyAlgrthm != _WEP40_ ) &&
+                   (padapter->securitypriv.PrivacyAlgrthm != _WEP104_ )) {
+                       /* restructure_ht_ie */
+                       r8712_restructure_ht_ie(padapter,
+                                               &pnetwork->network.IEs[0],
+                                               &psecnetwork->IEs[0],
+                                               pnetwork->network.IELength,
+                                               &psecnetwork->IELength);
+                       if (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE))
+                               r8712_add_ht_addt_info(padapter,
+                                               &pnetwork->network.IEs[0],
+                                               &psecnetwork->IEs[0],
+                                               pnetwork->network.IELength,
+                                               &psecnetwork->IELength);
+               }
        }
        psecuritypriv->supplicant_ie[0] = (u8)psecnetwork->IELength;
        if (psecnetwork->IELength < 255)