diff options
author | Tomas Winkler <tomas.winkler@intel.com> | 2008-11-07 12:58:40 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-11-21 11:07:23 -0500 |
commit | 4ddbb7d060061e584cb2137f4c7e41e502a560b4 (patch) | |
tree | cb6a78a622df2660411786e73c2bbd33b187d173 /drivers/net/wireless/iwlwifi/iwl-dev.h | |
parent | 8d86422a83d79e3d3241cf0f269fca0c2640bcee (diff) |
iwlwifi: revamp tx scheduler byte count tables handling
This moves byte count tables to tx domain removing completely
ambivalent shared data. Changes handling of allocation
byte count tables and keep warm consistent memory
Moves general tx scheduler definitions from iwl-4956-hw.h
to iwl-fh.h
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-dev.h')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-dev.h | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h index 55590a55198d..c36096069bfd 100644 --- a/drivers/net/wireless/iwlwifi/iwl-dev.h +++ b/drivers/net/wireless/iwlwifi/iwl-dev.h | |||
@@ -507,6 +507,7 @@ struct iwl_sensitivity_ranges { | |||
507 | /** | 507 | /** |
508 | * struct iwl_hw_params | 508 | * struct iwl_hw_params |
509 | * @max_txq_num: Max # Tx queues supported | 509 | * @max_txq_num: Max # Tx queues supported |
510 | * @scd_bc_tbls_size: size of scheduler byte count tables | ||
510 | * @tx/rx_chains_num: Number of TX/RX chains | 511 | * @tx/rx_chains_num: Number of TX/RX chains |
511 | * @valid_tx/rx_ant: usable antennas | 512 | * @valid_tx/rx_ant: usable antennas |
512 | * @max_rxq_size: Max # Rx frames in Rx queue (must be power-of-2) | 513 | * @max_rxq_size: Max # Rx frames in Rx queue (must be power-of-2) |
@@ -524,6 +525,7 @@ struct iwl_sensitivity_ranges { | |||
524 | */ | 525 | */ |
525 | struct iwl_hw_params { | 526 | struct iwl_hw_params { |
526 | u16 max_txq_num; | 527 | u16 max_txq_num; |
528 | u16 scd_bc_tbls_size; | ||
527 | u8 tx_chains_num; | 529 | u8 tx_chains_num; |
528 | u8 rx_chains_num; | 530 | u8 rx_chains_num; |
529 | u8 valid_tx_ant; | 531 | u8 valid_tx_ant; |
@@ -605,13 +607,9 @@ static inline u8 get_cmd_index(struct iwl_queue *q, u32 index, int is_huge) | |||
605 | struct iwl_priv; | 607 | struct iwl_priv; |
606 | 608 | ||
607 | 609 | ||
608 | /* Structures, enum, and defines specific to the 4965 */ | 610 | struct iwl_dma_ptr { |
609 | 611 | dma_addr_t dma; | |
610 | #define IWL_KW_SIZE 0x1000 /*4k */ | 612 | void *addr; |
611 | |||
612 | struct iwl_kw { | ||
613 | dma_addr_t dma_addr; | ||
614 | void *v_addr; | ||
615 | size_t size; | 613 | size_t size; |
616 | }; | 614 | }; |
617 | 615 | ||
@@ -907,7 +905,9 @@ struct iwl_priv { | |||
907 | struct iwl_rx_queue rxq; | 905 | struct iwl_rx_queue rxq; |
908 | struct iwl_tx_queue txq[IWL_MAX_NUM_QUEUES]; | 906 | struct iwl_tx_queue txq[IWL_MAX_NUM_QUEUES]; |
909 | unsigned long txq_ctx_active_msk; | 907 | unsigned long txq_ctx_active_msk; |
910 | struct iwl_kw kw; /* keep warm address */ | 908 | struct iwl_dma_ptr kw; /* keep warm address */ |
909 | struct iwl_dma_ptr scd_bc_tbls; | ||
910 | |||
911 | u32 scd_base_addr; /* scheduler sram base address */ | 911 | u32 scd_base_addr; /* scheduler sram base address */ |
912 | 912 | ||
913 | unsigned long status; | 913 | unsigned long status; |
@@ -967,10 +967,7 @@ struct iwl_priv { | |||
967 | struct ieee80211_vif *vif; | 967 | struct ieee80211_vif *vif; |
968 | 968 | ||
969 | struct iwl_hw_params hw_params; | 969 | struct iwl_hw_params hw_params; |
970 | /* driver/uCode shared Tx Byte Counts */ | 970 | |
971 | void *shared_virt; | ||
972 | /* Physical Pointer to Tx Byte Counts */ | ||
973 | dma_addr_t shared_phys; | ||
974 | 971 | ||
975 | /* Current association information needed to configure the | 972 | /* Current association information needed to configure the |
976 | * hardware */ | 973 | * hardware */ |