diff options
author | Adrian Chadd <adrian@FreeBSD.org> | 2011-08-08 16:22:42 +0000 |
---|---|---|
committer | Adrian Chadd <adrian@FreeBSD.org> | 2011-08-08 16:22:42 +0000 |
commit | 8db87e40794dfde6de6db1db14820bfe3d7d010c (patch) | |
tree | bf1809a8640b9e4393c109b6ca08bac5a3942fd1 /sys/dev/ath/if_ath.c | |
parent | 6bd78ef4033efbab2b9123719e020ba57d11eabb (diff) | |
download | src-8db87e40794dfde6de6db1db14820bfe3d7d010c.tar.gz src-8db87e40794dfde6de6db1db14820bfe3d7d010c.zip |
Introduce some more DFS related hooks, inspired both by local work
and the Atheros reference code.
The radar detection code needs to know what the current DFS domain is.
Since net80211 doesn't currently know this information, it's extracted
from the HAL regulatory domain information.
The specifics:
* add a new ath_dfs API hook, ath_dfs_init_radar_filters(), which
updates the radar filters whenever the regulatory domain changes.
* add HAL_DFS_DOMAIN which describes the currently configured DFS domain .
* add a new HAL internal variable which tracks the currently configured
HAL DFS domain.
* add a new HAL capability, HAL_CAP_DFS_DMN, which returns the currently
configured HAL DFS domain setting.
* update the HAL DFS domain setting whenever the channel setting is
updated.
Since this isn't currently used by any radar code, these should all
be no-ops for existing users.
Obtained from: Atheros
Submitted by: KBC Networks, sibridge
Approved by: re (kib, blanket)
Notes
Notes:
svn path=/head/; revision=224716
Diffstat (limited to 'sys/dev/ath/if_ath.c')
-rw-r--r-- | sys/dev/ath/if_ath.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c index 782b790a3a00..1208f1d44dbe 100644 --- a/sys/dev/ath/if_ath.c +++ b/sys/dev/ath/if_ath.c @@ -5031,6 +5031,13 @@ ath_setregdomain(struct ieee80211com *ic, struct ieee80211_regdomain *reg, __func__, status); return EINVAL; /* XXX */ } + + /* + * Setting country code might change the DFS domain + * so initialize the DFS Radar filters + */ + ath_dfs_init_radar_filters(sc); + return 0; } |