freebsd-skq/sys/dev/iwn
Adrian Chadd 54991f37c9 Attempt to make 5GHz HT/40 work on the 6xxx series NICs.
The 6205 (Taylor Peak) in the Lenovo X230 works fine in 5GHz 11a and 11n HT20,
but not 11n HT40.  The NIC goes RX deaf the moment HT40 is configured.
It's so RX deaf that it doesn't even hear beacons and the firmware sends
"BEACON MISS" events.  That's pretty deaf.

I tried configuring up the HT40 flags in monitor mode and it worked - so
I assumed that doing the transition from 20 -> 40MHz channel configuration
when going auth->assoc (ie, after the NIC has been partially configured)
is a problem.

So for now, let's just always set them if they're available.

Tested:

* Intel 5300, STA mode, 5GHz HT/40 AP; 2GHz HT/20 AP
* Intel 6205, STA mode, 5GHz HT/40, HT20, 11a AP; 2GHz HT/20 AP

This was pointed out to me by coworkers trying to use FreeBSD-HEAD
in the office on their Thinkpad T420p laptops.

TODO:

* I don't like how the HT40 flags are configured - the whole interop/
  protection config should be re-checked.  Notably, I think curhtprotmode
  is 0 in a lot of cases, which means "no interoperability" and i think
  that's busted.

Sponsored by:	Norse Corp, Inc.
2015-07-07 03:51:29 +00:00
..
if_iwn_chip_cfg.h Shadow RAM support is apparently not at all working on the Intel 5300 Wifi. 2014-06-14 06:54:03 +00:00
if_iwn_debug.h Reserve a bit for statistics debugging. I'll hopefully use it soon. 2014-02-24 02:13:20 +00:00
if_iwn_devid.h Add support for the Intel Centrino Wireless-N 105 chipset. 2014-05-27 19:39:57 +00:00
if_iwn_ioctl.h Track and expose the latest statistics from the firmware. 2014-02-24 02:37:04 +00:00
if_iwn.c Attempt to make 5GHz HT/40 work on the 6xxx series NICs. 2015-07-07 03:51:29 +00:00
if_iwnreg.h Attempt to make 5GHz HT/40 work on the 6xxx series NICs. 2015-07-07 03:51:29 +00:00
if_iwnvar.h First cut at attempting to buffer frames until we see a beacon. 2015-06-19 01:44:17 +00:00