aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-trans-int-pcie.h
diff options
context:
space:
mode:
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>2011-08-26 02:11:24 -0400
committerJohn W. Linville <linville@tuxdriver.com>2011-08-29 15:30:32 -0400
commite13c0c59e0ec38558ac853d56555e915b4dc7dc2 (patch)
treedba6f63fa8da99af7375cc4eeaab05ff586e28b7 /drivers/net/wireless/iwlwifi/iwl-trans-int-pcie.h
parentdfa2bdbab70901ddda3ec41f2e55f8396af9095f (diff)
iwlagn: move the mapping ac to queue / fifo to transport
This mapping is transport related. This allows us to remove the notion of tx queue from the tx path in the upper layer. iwl_wake_any_queue moved to transport layer since it needs to access these mappings. The TX API is nicer now: int (*tx)(struct iwl_trans *trans, struct sk_buff *skb, struct iwl_device_cmd *dev_cmd, u8 ctx, u8 sta_id); Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-trans-int-pcie.h')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-trans-int-pcie.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-trans-int-pcie.h b/drivers/net/wireless/iwlwifi/iwl-trans-int-pcie.h
index f443c106291a..d73ebefa7d05 100644
--- a/drivers/net/wireless/iwlwifi/iwl-trans-int-pcie.h
+++ b/drivers/net/wireless/iwlwifi/iwl-trans-int-pcie.h
@@ -107,6 +107,13 @@ struct iwl_dma_ptr {
107 size_t size; 107 size_t size;
108}; 108};
109 109
110/*
111 * This queue number is required for proper operation
112 * because the ucode will stop/start the scheduler as
113 * required.
114 */
115#define IWL_IPAN_MCAST_QUEUE 8
116
110/** 117/**
111 * struct iwl_trans_pcie - PCIe transport specific data 118 * struct iwl_trans_pcie - PCIe transport specific data
112 * @rxq: all the RX queue data 119 * @rxq: all the RX queue data
@@ -115,6 +122,9 @@ struct iwl_dma_ptr {
115 * @scd_base_addr: scheduler sram base address in SRAM 122 * @scd_base_addr: scheduler sram base address in SRAM
116 * @scd_bc_tbls: pointer to the byte count table of the scheduler 123 * @scd_bc_tbls: pointer to the byte count table of the scheduler
117 * @kw: keep warm address 124 * @kw: keep warm address
125 * @ac_to_fifo: to what fifo is a specifc AC mapped ?
126 * @ac_to_queue: to what tx queue is a specifc AC mapped ?
127 * @mcast_queue:
118 */ 128 */
119struct iwl_trans_pcie { 129struct iwl_trans_pcie {
120 struct iwl_rx_queue rxq; 130 struct iwl_rx_queue rxq;
@@ -136,6 +146,10 @@ struct iwl_trans_pcie {
136 u32 scd_base_addr; 146 u32 scd_base_addr;
137 struct iwl_dma_ptr scd_bc_tbls; 147 struct iwl_dma_ptr scd_bc_tbls;
138 struct iwl_dma_ptr kw; 148 struct iwl_dma_ptr kw;
149
150 const u8 *ac_to_fifo[NUM_IWL_RXON_CTX];
151 const u8 *ac_to_queue[NUM_IWL_RXON_CTX];
152 u8 mcast_queue[NUM_IWL_RXON_CTX];
139}; 153};
140 154
141#define IWL_TRANS_GET_PCIE_TRANS(_iwl_trans) \ 155#define IWL_TRANS_GET_PCIE_TRANS(_iwl_trans) \