update - new hal flag to force a full chip reset
adrian at freebsd.org
Sat Nov 5 03:09:03 UTC 2011
I'm getting closer to teaching the HAL to handle interference better
for AR9220/AR9280 and later chips. I'll commit some more code soon
once I've finalised what's going on.
The dual-band AR9280's (PCIe) seem behave better (ie, no OFDM/CCK
errors, very few stuck conditions) with the HAL which shipped with
FreeBSD-8. I'm going to trace down why that is, hopefully it's
something that can easily be fixed.
In the meantime, I've added a new flag - force_full_reset - which
forces a full chip reset upon channel change or reset, rather than a
Merlin seems to benefit from this - it stops the NIC from staying in a
stuck state once it gets there.
Unfortunately i haven't fixed the throughput or stuck beacon issue.
For whatever reason, the NIC still reports what look like very high
noise floor levels, and when it _does_ get enough NF samples that look
right (and are lower, around -100 to -110) then it suddenly thinks the
air is constantly busy. That's why you see stuck beacons and crappy
performance. I'm still trying to figure out whether it's the problem
or the symptom.
In any case, I'll try to get this stuff stable rather than
high-performing, then merge the rest of the 11n stuff back into -HEAD.
I don't have much else to suggest at this point (until I figure out
what's wrong) but I won't be dwelling too much longer on this. I
really need to concentrate on merging the 11n TX stuff into
FreeBSD-HEAD before I continue hacking on this.
Good luck, and thanks to everyone who has been testing my code out!
More information about the freebsd-wireless