diff options
author | adrian <adrian@FreeBSD.org> | 2011-01-21 05:21:00 +0000 |
---|---|---|
committer | adrian <adrian@FreeBSD.org> | 2011-01-21 05:21:00 +0000 |
commit | 88a17f226bbf21660de0c815f9433399dab761a8 (patch) | |
tree | 471d690735a8f1296c58743a6e8277448714ceb4 /sys/dev/ath/ath_hal/ar5211 | |
parent | 3a9a1dbc226a41b7eb22b9cdb8d162830ca2fb2a (diff) | |
download | FreeBSD-src-88a17f226bbf21660de0c815f9433399dab761a8.zip FreeBSD-src-88a17f226bbf21660de0c815f9433399dab761a8.tar.gz |
ANI changes #1 - split out the ANI polling from the RxMonitor hook.
The rxmonitor hook is called on each received packet. This can get very,
very busy as the tx/rx/chanbusy registers are thus read each time a packet
is received.
Instead, shuffle out the true per-packet processing which is needed and move
the rest of the ANI processing into a periodic event which runs every 100ms
by default.
Diffstat (limited to 'sys/dev/ath/ath_hal/ar5211')
-rw-r--r-- | sys/dev/ath/ath_hal/ar5211/ar5211.h | 3 | ||||
-rw-r--r-- | sys/dev/ath/ath_hal/ar5211/ar5211_attach.c | 3 | ||||
-rw-r--r-- | sys/dev/ath/ath_hal/ar5211/ar5211_misc.c | 7 |
3 files changed, 10 insertions, 3 deletions
diff --git a/sys/dev/ath/ath_hal/ar5211/ar5211.h b/sys/dev/ath/ath_hal/ar5211/ar5211.h index cbd218c..0057ba4 100644 --- a/sys/dev/ath/ath_hal/ar5211/ar5211.h +++ b/sys/dev/ath/ath_hal/ar5211/ar5211.h @@ -305,7 +305,8 @@ extern HAL_INT ar5211SetInterrupts(struct ath_hal *, HAL_INT ints); extern const HAL_RATE_TABLE *ar5211GetRateTable(struct ath_hal *, u_int mode); extern HAL_BOOL ar5211AniControl(struct ath_hal *, HAL_ANI_CMD, int ); -extern void ar5211AniPoll(struct ath_hal *, const HAL_NODE_STATS *, +extern void ar5211RxMonitor(struct ath_hal *, const HAL_NODE_STATS *, const struct ieee80211_channel *); +extern void ar5211AniPoll(struct ath_hal *, const struct ieee80211_channel *); extern void ar5211MibEvent(struct ath_hal *, const HAL_NODE_STATS *); #endif /* _ATH_AR5211_H_ */ diff --git a/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c b/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c index 82b42df..fe87fce 100644 --- a/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c +++ b/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c @@ -89,7 +89,8 @@ static const struct ath_hal_private ar5211hal = {{ .ah_setRxFilter = ar5211SetRxFilter, .ah_setupRxDesc = ar5211SetupRxDesc, .ah_procRxDesc = ar5211ProcRxDesc, - .ah_rxMonitor = ar5211AniPoll, + .ah_rxMonitor = ar5211RxMonitor, + .ah_aniPoll = ar5211AniPoll, .ah_procMibEvent = ar5211MibEvent, /* Misc Functions */ diff --git a/sys/dev/ath/ath_hal/ar5211/ar5211_misc.c b/sys/dev/ath/ath_hal/ar5211/ar5211_misc.c index 33b9e21..3b27062 100644 --- a/sys/dev/ath/ath_hal/ar5211/ar5211_misc.c +++ b/sys/dev/ath/ath_hal/ar5211/ar5211_misc.c @@ -564,7 +564,12 @@ ar5211AniControl(struct ath_hal *ah, HAL_ANI_CMD cmd, int param) } void -ar5211AniPoll(struct ath_hal *ah, const HAL_NODE_STATS *stats, +ar5211AniPoll(struct ath_hal *ah, const struct ieee80211_channel *chan) +{ +} + +void +ar5211RxMonitor(struct ath_hal *ah, const HAL_NODE_STATS *stats, const struct ieee80211_channel *chan) { } |