diff options
author | Michael Buesch <mb@bu3sch.de> | 2008-03-05 15:18:49 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-03-07 16:02:59 -0500 |
commit | e6f5b934fba8c44c87c551e066aa7ca6fde2939e (patch) | |
tree | b3fabd1b35a044fe0f50d1ab16ca0dd697c3f59a /drivers/net/wireless/b43/b43.h | |
parent | e5f98f2df903af627a9b9ac55b9352fd54fc431a (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.h | 37 |
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 | ||
636 | enum { | ||
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. */ | ||
648 | struct 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 | |||
624 | struct b43_wldev; | 655 | struct 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. */ |