sync with HEAD
sync w/ head
sync w/ HEAD
Start cleaning up internal channel data structure:
o purge unused bssSendHere
o store iqCalValid's HAL_BOOL value in an uint8_t so it packs well
o shuffle some members to improve struct packing; we still have a
  big hole at the end but it'll go away shortly
Eliminate regDmnFlags from the internal channel structure; it was used
only to hold the "need noise floor check" attribute for 5211 parts
operating in MKK regdomains.  Store this information in the privFlags
field instead (usurp CHANNEL_DFS_CLEAR which was part of the old dfs
code that's long gone)

With this change ath_hal_getnfcheckrequired is not needed; remove it.
Move iqCalValid from an internal channel member to a flag in privFlags.
This allows us to move antennaMax up and fully pack the structure.

Need to revisit IQ calibration for 5212 parts; looks like we only ever
do it once for a channel; may want to reset state using a long-term
mechanism as done for 5416-class parts.
Remove code to map frequency to IEEE channel numbers as it was used
solely to setup state for net80211 according to SKU but with net80211
having proper channel attributes this is no longer needed; the driver can
just check SKU info and set the needed flags so net80211's routine can
do the right thing.
oops, forgot about 5111 usage of ath_hal_mhz2ieee; add private versions
of this code stripped down to meet local needs
nuke ath_hal_ispublicsafetysku; now unused (and in general should never
have existed)
ath_hal_getwirelessmodes should not involve regulatory; adjust the api to
return what the hardware is capable of
Untangle regulatory code some more:
o remove the per-channel CTL setting, this is a per-band value that is
  constant for all channels in a band; instead record the regdomain state
  required to find any CTL when crafting a initial channel list
o rewrite the regdomain code identification logic so we can record the
  necessary internal state to find the CTL setting in ath_hal_getctl

While here also:
o remove AH_SUPPORT_11D ifdefs; we always support 11d
o remove pointless check for NO_HOSTAP; ath_hal_init_channels was never
  called with opmode set appropriately so this was a noop; this check is
  also done already by net80211
o remove return of regulatory class id's; this isn't used and doesn't
  belong here; it's part of the regulatory work net80211 is responsible for
remove last vestives of AH_SUPPORT_11D (we always support 11d)
remove AH_SUPPORT_11D
eliminate regulatory class id data; we're not handling it any more
remove the regulatory class id's from the ath_hal_init_channels api
Eliminate the outdoor control in setting up the channel list; the hal
never returns a frequency above 5825 so it had no effect.
correct 11g regulatory for Argentina, it's allowed; with this there are no
countries that disallow 11g operation so remove the special handling
fill in ieee channel #'s and max tx power for drivers that work exclusively
with frequencies; this mimics how ieee80211_setregdomain works
Extend channel definition with:
o max antenna gain
o driver private opaque data

Note this grows the size of a channel to 16 bytes (1 byte unallocated);
which makes the default channel table 4Kbytes (up from 3Kbytes).  The
driver private data might be shrunk to a byte.
o add country codes from Atheros regulatory; these are not listed in
  the ISO tables, mark them accordingly
o add sku's for handling 900MHz cards
o add opaque struct defs and change []'s to *'s so this file can be
  included w/o requiring all of net80211 to be pulled in