summaryrefslogtreecommitdiffstats
path: root/sys/dev/ath/ath_hal/ar5211
diff options
context:
space:
mode:
authoradrian <adrian@FreeBSD.org>2011-01-21 05:21:00 +0000
committeradrian <adrian@FreeBSD.org>2011-01-21 05:21:00 +0000
commit88a17f226bbf21660de0c815f9433399dab761a8 (patch)
tree471d690735a8f1296c58743a6e8277448714ceb4 /sys/dev/ath/ath_hal/ar5211
parent3a9a1dbc226a41b7eb22b9cdb8d162830ca2fb2a (diff)
downloadFreeBSD-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.h3
-rw-r--r--sys/dev/ath/ath_hal/ar5211/ar5211_attach.c3
-rw-r--r--sys/dev/ath/ath_hal/ar5211/ar5211_misc.c7
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)
{
}
OpenPOWER on IntegriCloud