brcmfmac: fix problem connecting to AP without security
The bcm43236 device showed having an issue connection to an AP without security when auth_type was set to automatic. For this particular device a workaround is made by selecting open-system. This problem does not occur when using wpa_supplicant as it will not use auth type automatic. Reviewed-by: Hante Meuleman <meuleman@broadcom.com> Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> Reviewed-by: Piotr Haber <phaber@broadcom.com> Signed-off-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
371830eafe
commit
cbb1ec9491
|
@ -1365,9 +1365,28 @@ brcmf_set_sharedkey(struct net_device *ndev,
|
|||
return err;
|
||||
}
|
||||
|
||||
static
|
||||
enum nl80211_auth_type brcmf_war_auth_type(struct brcmf_if *ifp,
|
||||
enum nl80211_auth_type type)
|
||||
{
|
||||
u32 ci;
|
||||
if (type == NL80211_AUTHTYPE_AUTOMATIC) {
|
||||
/* shift to ignore chip revision */
|
||||
ci = brcmf_get_chip_info(ifp) >> 4;
|
||||
switch (ci) {
|
||||
case 43236:
|
||||
brcmf_dbg(CONN, "43236 WAR: use OPEN instead of AUTO\n");
|
||||
return NL80211_AUTHTYPE_OPEN_SYSTEM;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
return type;
|
||||
}
|
||||
|
||||
static s32
|
||||
brcmf_cfg80211_connect(struct wiphy *wiphy, struct net_device *ndev,
|
||||
struct cfg80211_connect_params *sme)
|
||||
struct cfg80211_connect_params *sme)
|
||||
{
|
||||
struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy);
|
||||
struct brcmf_if *ifp = netdev_priv(ndev);
|
||||
|
@ -1410,6 +1429,7 @@ brcmf_cfg80211_connect(struct wiphy *wiphy, struct net_device *ndev,
|
|||
goto done;
|
||||
}
|
||||
|
||||
sme->auth_type = brcmf_war_auth_type(ifp, sme->auth_type);
|
||||
err = brcmf_set_auth_type(ndev, sme);
|
||||
if (err) {
|
||||
brcmf_err("wl_set_auth_type failed (%d)\n", err);
|
||||
|
|
Loading…
Reference in a new issue