Commit cbb1ec94 authored by Arend van Spriel's avatar Arend van Spriel Committed by John W. Linville
Browse files

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: default avatarHante Meuleman <meuleman@broadcom.com>
Reviewed-by: default avatarPieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: default avatarPiotr Haber <phaber@broadcom.com>
Signed-off-by: default avatarArend van Spriel <arend@broadcom.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 371830ea
Loading
Loading
Loading
Loading
+21 −1
Original line number Diff line number Diff line
@@ -1365,6 +1365,25 @@ 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)
@@ -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);