summaryrefslogtreecommitdiffstats
path: root/sys/dev/ath
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2005-01-18 19:10:17 +0000
committersam <sam@FreeBSD.org>2005-01-18 19:10:17 +0000
commit0232e8f553c7fe7d0de295bb518f791ce21524d1 (patch)
tree017ea64fc1d34de2276f935d491a0935862d7dba /sys/dev/ath
parentd12b3b981d45a311299e6096f82c5ed42014ae89 (diff)
downloadFreeBSD-src-0232e8f553c7fe7d0de295bb518f791ce21524d1.zip
FreeBSD-src-0232e8f553c7fe7d0de295bb518f791ce21524d1.tar.gz
setup the beacon xmit queue to not interrupt; we don't use them and
they make the led's flash unnecessarily in adhoc mode
Diffstat (limited to 'sys/dev/ath')
-rw-r--r--sys/dev/ath/if_ath.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c
index c2afb3c..239907b 100644
--- a/sys/dev/ath/if_ath.c
+++ b/sys/dev/ath/if_ath.c
@@ -122,6 +122,7 @@ static void ath_key_update_end(struct ieee80211com *);
static void ath_mode_init(struct ath_softc *);
static void ath_setslottime(struct ath_softc *);
static void ath_updateslot(struct ifnet *);
+static int ath_beaconq_setup(struct ath_hal *);
static int ath_beacon_alloc(struct ath_softc *, struct ieee80211_node *);
static void ath_beacon_setup(struct ath_softc *, struct ath_buf *);
static void ath_beacon_proc(void *, int);
@@ -379,7 +380,7 @@ ath_attach(u_int16_t devid, struct ath_softc *sc)
*
* XXX PS-Poll
*/
- sc->sc_bhalq = ath_hal_setuptxqueue(ah, HAL_TX_QUEUE_BEACON, NULL);
+ sc->sc_bhalq = ath_beaconq_setup(ah);
if (sc->sc_bhalq == (u_int) -1) {
if_printf(ifp, "unable to setup a beacon xmit queue!\n");
error = EIO;
@@ -1689,6 +1690,22 @@ ath_updateslot(struct ifnet *ifp)
}
/*
+ * Setup a h/w transmit queue for beacons.
+ */
+static int
+ath_beaconq_setup(struct ath_hal *ah)
+{
+ HAL_TXQ_INFO qi;
+
+ memset(&qi, 0, sizeof(qi));
+ qi.tqi_aifs = HAL_TXQ_USEDEFAULT;
+ qi.tqi_cwmin = HAL_TXQ_USEDEFAULT;
+ qi.tqi_cwmax = HAL_TXQ_USEDEFAULT;
+ /* NB: don't enable any interrupts */
+ return ath_hal_setuptxqueue(ah, HAL_TX_QUEUE_BEACON, &qi);
+}
+
+/*
* Allocate and setup an initial beacon frame.
*/
static int
OpenPOWER on IntegriCloud