diff options
author | Bruno Randolf <br1@einfach.org> | 2011-01-24 23:15:33 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-01-28 15:44:26 -0500 |
commit | 5719efdde1d0ae8670b96eb8748d1a0dc6a37be2 (patch) | |
tree | b5cd960b7a5ca7b09d35a438915837cff748ea09 /drivers/net/wireless | |
parent | 20a904904dc69d4b4de26c146af33eb00f05ab92 (diff) |
ath: Add function to check if 4.9GHz channels are allowed
This adds a helper function to ath/regd.c which can be asked if 4.9GHz channels
are allowed for a given regulatory domain code. This keeps the knowledge of
regdomains and defines like MKK9_MKKC in one place. I'm passing the regdomain
code instead of the ath_regulatory structure because this needs to be called
quite early in the driver inititalization where ath_regulatory is not available
yet in ath5k.
I'm using MKK9_MKKC only because this is the regdomain in the 802.11j enabled
sample cards we got from our vendor. I found some hints in HAL code that this
is used by Atheros to indicate 4.9GHz channels support and that there might be
other domain codes as well, but as I don't have any documentation I'm just
putting in what I need right now. It can be extended later.
Signed-off-by: Bruno Randolf <br1@einfach.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r-- | drivers/net/wireless/ath/regd.c | 7 | ||||
-rw-r--r-- | drivers/net/wireless/ath/regd.h | 1 |
2 files changed, 8 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/regd.c b/drivers/net/wireless/ath/regd.c index 2b14775e6bc6..f828f294ba89 100644 --- a/drivers/net/wireless/ath/regd.c +++ b/drivers/net/wireless/ath/regd.c | |||
@@ -158,6 +158,13 @@ ieee80211_regdomain *ath_world_regdomain(struct ath_regulatory *reg) | |||
158 | } | 158 | } |
159 | } | 159 | } |
160 | 160 | ||
161 | bool ath_is_49ghz_allowed(u16 regdomain) | ||
162 | { | ||
163 | /* possibly more */ | ||
164 | return regdomain == MKK9_MKKC; | ||
165 | } | ||
166 | EXPORT_SYMBOL(ath_is_49ghz_allowed); | ||
167 | |||
161 | /* Frequency is one where radar detection is required */ | 168 | /* Frequency is one where radar detection is required */ |
162 | static bool ath_is_radar_freq(u16 center_freq) | 169 | static bool ath_is_radar_freq(u16 center_freq) |
163 | { | 170 | { |
diff --git a/drivers/net/wireless/ath/regd.h b/drivers/net/wireless/ath/regd.h index 345dd9721b41..172f63f671cf 100644 --- a/drivers/net/wireless/ath/regd.h +++ b/drivers/net/wireless/ath/regd.h | |||
@@ -250,6 +250,7 @@ enum CountryCode { | |||
250 | }; | 250 | }; |
251 | 251 | ||
252 | bool ath_is_world_regd(struct ath_regulatory *reg); | 252 | bool ath_is_world_regd(struct ath_regulatory *reg); |
253 | bool ath_is_49ghz_allowed(u16 redomain); | ||
253 | int ath_regd_init(struct ath_regulatory *reg, struct wiphy *wiphy, | 254 | int ath_regd_init(struct ath_regulatory *reg, struct wiphy *wiphy, |
254 | int (*reg_notifier)(struct wiphy *wiphy, | 255 | int (*reg_notifier)(struct wiphy *wiphy, |
255 | struct regulatory_request *request)); | 256 | struct regulatory_request *request)); |