K 10 svn:author V 3 sam K 8 svn:date V 27 2009-01-23T07:00:33.332776Z K 7 svn:log V 1954 Checkpoint gutting of HAL_CHANNEL: o replace uses of HAL_CHANNEL by struct ieee80211_channel o remove HAL_CHANNEL shadow state from HAL_CHANNEL_PRIVATE; instead users are given an ieee80211_channel and if they need private state they use ic_devdata to find the private channel (shrinks private chans by 12 bytes) o pack the private channel array (one entry per frequency) o mark 802.11 channels directly when interference is detected o use ic_devdata to index into ani state cache; note this consolidates state for enumerated channels so can change behaviour (e.g. for b/g and turbo combinations) o remove private mhz2->ieee conversion routines as we now get the ieee channel number directly from ic_ieee o setup 11g channels with correct channel flags (used to mark them pureg and then futz the flags when constructing net80211 channels) o remove conversion code in regulatory routines now that we don't do any conversion to/from private/internal data structures o de-inline ath_hal_getantennareduction Note: HAL_CHANNEL_PRIVATE temporarily shadows the frequency to validate lookups and facilitate noise floor processing; this will go away soon Note: ath_hal_computetxtime needs take a channel to eliminate use of ah_curchan (possibly other routines too) Note: channel interference handling should be moved to a callback so we can const'ify parameters and eliminate assumptions about when/how detection is done Note: private channel table can shrink and ani state table should be the same size to avoid checking references Note: ath_hal_checkchannel should be inlined when we stop validating lookups Note: privFlags can go away if we move CHANNEL_IQVALID elsewhere but might be worth keeping as removing it won't shrink HAL_CHANNEL_PRIVATE Note: purge direct use of ic_flags (e.g. in switch statements) Tested in sta mode on 5210, 5211, 5416, and a wide variety of 5212 cards in normal modes; turbo modes need testing. END