[PATCH: iwn(4)] Fix channel switching in monitor mode

Juergen Lock <[email protected]>
Newsgroups gmane.os.freebsd.devel.mobile,gmane.os.freebsd.current
Message-ID <[email protected]>
Hi!

 I just got a "Centrino Advanced-N 6230" half-size mini-pcie card
(using iwn6000g2bfw.ko firmware, my Dell Precision M4500 laptop
came with an unsupported Broadcom BCM4313:

	https://laptop.bsdgroup.de/freebsd/index.html?action=show_laptop_detail&laptop=13061

), and found channel switching didn't work in monitor mode, the
patch below seems to fix it - also at:

	http://people.freebsd.org/~nox/tmp/patch-iwn-channel-monitor.txt

 (I also applied the two patches from the `"Intel Centrino Advanced-N +
WiMAX 6250" doesn't work' thread tho I'm not 100% sure they are needed
for this nic:

	http://markmail.org/message/exik7phjs2j7pnsi

and

	http://docs.freebsd.org/cgi/mid.cgi?CAAgh0_bL7K3PZVAZxPV8JwdhnopOvdRp0Z+xHU-CfGba5bz1Kw

)

 And here is the channel switching patch:

--- src/sys/dev/iwn/if_iwn.c.orig
+++ src/sys/dev/iwn/if_iwn.c
@@ -6984,12 +6984,24 @@ iwn_set_channel(struct ieee80211com *ic)
 	const struct ieee80211_channel *c = ic->ic_curchan;
 	struct ifnet *ifp = ic->ic_ifp;
 	struct iwn_softc *sc = ifp->if_softc;
+	int error;
 
 	IWN_LOCK(sc);
 	sc->sc_rxtap.wr_chan_freq = htole16(c->ic_freq);
 	sc->sc_rxtap.wr_chan_flags = htole16(c->ic_flags);
 	sc->sc_txtap.wt_chan_freq = htole16(c->ic_freq);
 	sc->sc_txtap.wt_chan_flags = htole16(c->ic_flags);
+
+	/*
+	 * Only need to set the channel in Monitor mode. AP scanning and auth
+	 * are already taken care of by their respective firmware commands.
+	 */
+	if (ic->ic_opmode == IEEE80211_M_MONITOR) {
+		error = iwn_config(sc);
+		if (error != 0)
+			device_printf(sc->sc_dev,
+			    "error %d settting channel\n", error);
+	}
 	IWN_UNLOCK(sc);
 }
 
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-mobile
To unsubscribe, send any mail to "[email protected]"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.