cfg80211: Process regulatory max bandwidth checks for HT40
authorLuis R. Rodriguez <lrodriguez@atheros.com>
Sat, 2 May 2009 04:37:17 +0000 (00:37 -0400)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 20 May 2009 18:46:22 +0000 (14:46 -0400)
commit038659e7c6b385065cb223872771ac437ef70b62
treedf9e86adcc611d10ed5f98672421bffe1f43989f
parent97bc54152e3a91dd2dc297e8a084c05e93527e60
cfg80211: Process regulatory max bandwidth checks for HT40

We are not correctly listening to the regulatory max bandwidth
settings. To actually make use of it we need to redesign things
a bit. This patch does the work for that. We do this to so we
can obey to regulatory rules accordingly for use of HT40.

We end up dealing with HT40 by having two passes for each channel.

The first check will see if a 20 MHz channel fits into the channel's
center freq on a given frequency range. We check for a 20 MHz
banwidth channel as that is the maximum an individual channel
will use, at least for now. The first pass will go ahead and
check if the regulatory rule for that given center of frequency
allows 40 MHz bandwidths and we use this to determine whether
or not the channel supports HT40 or not. So to support HT40 you'll
need at a regulatory rule that allows you to use 40 MHz channels
but you're channel must also be enabled and support 20 MHz by itself.

The second pass is done after we do the regulatory checks over
an device's supported channel list. On each channel we'll check
if the control channel and the extension both:

 o exist
 o are enabled
 o regulatory allows 40 MHz bandwidth on its frequency range

This work allows allows us to idependently check for HT40- and
HT40+.

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/regd.c
include/net/cfg80211.h
net/wireless/reg.c