Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 68970ce6 authored by johannes@sipsolutions.net's avatar johannes@sipsolutions.net Committed by John W. Linville
Browse files

[PATCH] softmac: handle iw_mode properly



Below patch allows using iw_mode auto with softmac. bcm43xx forces managed
so this bug wasn't noticed earlier, but this was one of the problems why
zd1211 didn't work earlier.

Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent fc242746
Loading
Loading
Loading
Loading
+15 −3
Original line number Diff line number Diff line
@@ -180,9 +180,21 @@ ieee80211softmac_assoc_req(struct ieee80211_assoc_request **pkt,
	ieee80211softmac_hdr_3addr(mac, &((*pkt)->header), IEEE80211_STYPE_ASSOC_REQ, net->bssid, net->bssid);

	/* Fill in capability Info */
	(*pkt)->capability = (mac->ieee->iw_mode == IW_MODE_MASTER) || (mac->ieee->iw_mode == IW_MODE_INFRA) ?
		cpu_to_le16(WLAN_CAPABILITY_ESS) :
		cpu_to_le16(WLAN_CAPABILITY_IBSS);
	switch (mac->ieee->iw_mode) {
	case IW_MODE_INFRA:
		(*pkt)->capability = cpu_to_le16(WLAN_CAPABILITY_ESS);
		break;
	case IW_MODE_ADHOC:
		(*pkt)->capability = cpu_to_le16(WLAN_CAPABILITY_IBSS);
		break;
	case IW_MODE_AUTO:
		(*pkt)->capability = net->capabilities & (WLAN_CAPABILITY_ESS|WLAN_CAPABILITY_IBSS);
		break;
	default:
		/* bleh. we don't ever go to these modes */
		printk(KERN_ERR PFX "invalid iw_mode!\n");
		break;
	}
	/* Need to add this
	(*pkt)->capability |= mac->ieee->short_slot ? 
			cpu_to_le16(WLAN_CAPABILITY_SHORT_SLOT_TIME) : 0;