aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/b43/b43.h
diff options
context:
space:
mode:
authorMichael Buesch <mb@bu3sch.de>2008-03-05 15:18:49 -0500
committerJohn W. Linville <linville@tuxdriver.com>2008-03-07 16:02:59 -0500
commite6f5b934fba8c44c87c551e066aa7ca6fde2939e (patch)
treeb3fabd1b35a044fe0f50d1ab16ca0dd697c3f59a /drivers/net/wireless/b43/b43.h
parente5f98f2df903af627a9b9ac55b9352fd54fc431a (diff)
b43: Add QOS support
This adds QOS support to the b43 driver. QOS can be disabled on driver level with a module parameter for debugging purposes. Signed-off-by: Michael Buesch <mb@bu3sch.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/b43/b43.h')
-rw-r--r--drivers/net/wireless/b43/b43.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/drivers/net/wireless/b43/b43.h b/drivers/net/wireless/b43/b43.h
index 33459d61a717..55031463c396 100644
--- a/drivers/net/wireless/b43/b43.h
+++ b/drivers/net/wireless/b43/b43.h
@@ -99,6 +99,8 @@
99#define B43_MMIO_TSF_2 0x636 /* core rev < 3 only */ 99#define B43_MMIO_TSF_2 0x636 /* core rev < 3 only */
100#define B43_MMIO_TSF_3 0x638 /* core rev < 3 only */ 100#define B43_MMIO_TSF_3 0x638 /* core rev < 3 only */
101#define B43_MMIO_RNG 0x65A 101#define B43_MMIO_RNG 0x65A
102#define B43_MMIO_IFSCTL 0x688 /* Interframe space control */
103#define B43_MMIO_IFSCTL_USE_EDCF 0x0004
102#define B43_MMIO_POWERUP_DELAY 0x6A8 104#define B43_MMIO_POWERUP_DELAY 0x6A8
103 105
104/* SPROM boardflags_lo values */ 106/* SPROM boardflags_lo values */
@@ -621,6 +623,35 @@ struct b43_key {
621 u8 algorithm; 623 u8 algorithm;
622}; 624};
623 625
626/* SHM offsets to the QOS data structures for the 4 different queues. */
627#define B43_QOS_PARAMS(queue) (B43_SHM_SH_EDCFQ + \
628 (B43_NR_QOSPARAMS * sizeof(u16) * (queue)))
629#define B43_QOS_BACKGROUND B43_QOS_PARAMS(0)
630#define B43_QOS_BESTEFFORT B43_QOS_PARAMS(1)
631#define B43_QOS_VIDEO B43_QOS_PARAMS(2)
632#define B43_QOS_VOICE B43_QOS_PARAMS(3)
633
634/* QOS parameter hardware data structure offsets. */
635#define B43_NR_QOSPARAMS 22
636enum {
637 B43_QOSPARAM_TXOP = 0,
638 B43_QOSPARAM_CWMIN,
639 B43_QOSPARAM_CWMAX,
640 B43_QOSPARAM_CWCUR,
641 B43_QOSPARAM_AIFS,
642 B43_QOSPARAM_BSLOTS,
643 B43_QOSPARAM_REGGAP,
644 B43_QOSPARAM_STATUS,
645};
646
647/* QOS parameters for a queue. */
648struct b43_qos_params {
649 /* The QOS parameters */
650 struct ieee80211_tx_queue_params p;
651 /* Does this need to get uploaded to hardware? */
652 bool need_hw_update;
653};
654
624struct b43_wldev; 655struct b43_wldev;
625 656
626/* Data structure for the WLAN parts (802.11 cores) of the b43 chip. */ 657/* Data structure for the WLAN parts (802.11 cores) of the b43 chip. */
@@ -673,6 +704,12 @@ struct b43_wl {
673 struct sk_buff *current_beacon; 704 struct sk_buff *current_beacon;
674 bool beacon0_uploaded; 705 bool beacon0_uploaded;
675 bool beacon1_uploaded; 706 bool beacon1_uploaded;
707
708 /* The current QOS parameters for the 4 queues.
709 * This is protected by the irq_lock. */
710 struct b43_qos_params qos_params[4];
711 /* Workqueue for updating QOS parameters in hardware. */
712 struct work_struct qos_update_work;
676}; 713};
677 714
678/* In-memory representation of a cached microcode file. */ 715/* In-memory representation of a cached microcode file. */