Commit bc47279f authored by Ben Cahill's avatar Ben Cahill Committed by David S. Miller

iwlwifi: Add comments to some driver data structures

Add comments to some driver data structures

Remove unused "sched_retry" member from struct iwl3945_tx_queue
Signed-off-by: default avatarBen Cahill <ben.m.cahill@intel.com>
Signed-off-by: default avatarZhu Yi <yi.zhu@intel.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 81cd110d
...@@ -130,6 +130,7 @@ struct iwl3945_queue { ...@@ -130,6 +130,7 @@ struct iwl3945_queue {
#define MAX_NUM_OF_TBS (20) #define MAX_NUM_OF_TBS (20)
/* One for each TFD */
struct iwl3945_tx_info { struct iwl3945_tx_info {
struct ieee80211_tx_status status; struct ieee80211_tx_status status;
struct sk_buff *skb[MAX_NUM_OF_TBS]; struct sk_buff *skb[MAX_NUM_OF_TBS];
...@@ -137,10 +138,15 @@ struct iwl3945_tx_info { ...@@ -137,10 +138,15 @@ struct iwl3945_tx_info {
/** /**
* struct iwl3945_tx_queue - Tx Queue for DMA * struct iwl3945_tx_queue - Tx Queue for DMA
* @need_update: need to update read/write index * @q: generic Rx/Tx queue descriptor
* @shed_retry: queue is HT AGG enabled * @bd: base of circular buffer of TFDs
* @cmd: array of command/Tx buffers
* @dma_addr_cmd: physical address of cmd/tx buffer array
* @txb: array of per-TFD driver data
* @need_update: indicates need to update read/write index
* *
* Queue consists of circular buffer of BD's and required locking structures. * A Tx queue consists of circular buffer of BDs (a.k.a. TFDs, transmit frame
* descriptors) and required locking structures.
*/ */
struct iwl3945_tx_queue { struct iwl3945_tx_queue {
struct iwl3945_queue q; struct iwl3945_queue q;
...@@ -149,7 +155,6 @@ struct iwl3945_tx_queue { ...@@ -149,7 +155,6 @@ struct iwl3945_tx_queue {
dma_addr_t dma_addr_cmd; dma_addr_t dma_addr_cmd;
struct iwl3945_tx_info *txb; struct iwl3945_tx_info *txb;
int need_update; int need_update;
int sched_retry;
int active; int active;
}; };
...@@ -325,6 +330,13 @@ struct iwl3945_cmd_meta { ...@@ -325,6 +330,13 @@ struct iwl3945_cmd_meta {
} __attribute__ ((packed)); } __attribute__ ((packed));
/**
* struct iwl3945_cmd
*
* For allocation of the command and tx queues, this establishes the overall
* size of the largest command we send to uCode, except for a scan command
* (which is relatively huge; space is allocated separately).
*/
struct iwl3945_cmd { struct iwl3945_cmd {
struct iwl3945_cmd_meta meta; struct iwl3945_cmd_meta meta;
struct iwl3945_cmd_header hdr; struct iwl3945_cmd_header hdr;
...@@ -522,6 +534,19 @@ struct iwl3945_ibss_seq { ...@@ -522,6 +534,19 @@ struct iwl3945_ibss_seq {
struct list_head list; struct list_head list;
}; };
/**
* struct iwl4965_driver_hw_info
* @max_txq_num: Max # Tx queues supported
* @ac_queue_count: # Tx queues for EDCA Access Categories (AC)
* @tx_cmd_len: Size of Tx command (but not including frame itself)
* @max_rxq_size: Max # Rx frames in Rx queue (must be power-of-2)
* @rx_buffer_size:
* @max_rxq_log: Log-base-2 of max_rxq_size
* @max_stations:
* @bcast_sta_id:
* @shared_virt: Pointer to driver/uCode shared Tx Byte Counts and Rx status
* @shared_phys: Physical Pointer to Tx Byte Counts and Rx status
*/
struct iwl3945_driver_hw_info { struct iwl3945_driver_hw_info {
u16 max_txq_num; u16 max_txq_num;
u16 ac_queue_count; u16 ac_queue_count;
...@@ -857,6 +882,8 @@ struct iwl3945_priv { ...@@ -857,6 +882,8 @@ struct iwl3945_priv {
u16 last_seq_num; u16 last_seq_num;
u16 last_frag_num; u16 last_frag_num;
unsigned long last_packet_time; unsigned long last_packet_time;
/* Hash table for finding stations in IBSS network */
struct list_head ibss_mac_hash[IWL_IBSS_MAC_HASH_SIZE]; struct list_head ibss_mac_hash[IWL_IBSS_MAC_HASH_SIZE];
/* eeprom */ /* eeprom */
......
...@@ -129,6 +129,7 @@ struct iwl4965_queue { ...@@ -129,6 +129,7 @@ struct iwl4965_queue {
#define MAX_NUM_OF_TBS (20) #define MAX_NUM_OF_TBS (20)
/* One for each TFD */
struct iwl4965_tx_info { struct iwl4965_tx_info {
struct ieee80211_tx_status status; struct ieee80211_tx_status status;
struct sk_buff *skb[MAX_NUM_OF_TBS]; struct sk_buff *skb[MAX_NUM_OF_TBS];
...@@ -136,10 +137,16 @@ struct iwl4965_tx_info { ...@@ -136,10 +137,16 @@ struct iwl4965_tx_info {
/** /**
* struct iwl4965_tx_queue - Tx Queue for DMA * struct iwl4965_tx_queue - Tx Queue for DMA
* @need_update: need to update read/write index * @q: generic Rx/Tx queue descriptor
* @shed_retry: queue is HT AGG enabled * @bd: base of circular buffer of TFDs
* @cmd: array of command/Tx buffers
* @dma_addr_cmd: physical address of cmd/tx buffer array
* @txb: array of per-TFD driver data
* @need_update: indicates need to update read/write index
* @sched_retry: indicates queue is high-throughput aggregation (HT AGG) enabled
* *
* Queue consists of circular buffer of BD's and required locking structures. * A Tx queue consists of circular buffer of BDs (a.k.a. TFDs, transmit frame
* descriptors) and required locking structures.
*/ */
struct iwl4965_tx_queue { struct iwl4965_tx_queue {
struct iwl4965_queue q; struct iwl4965_queue q;
...@@ -332,9 +339,16 @@ struct iwl4965_cmd_meta { ...@@ -332,9 +339,16 @@ struct iwl4965_cmd_meta {
} __attribute__ ((packed)); } __attribute__ ((packed));
/**
* struct iwl4965_cmd
*
* For allocation of the command and tx queues, this establishes the overall
* size of the largest command we send to uCode, except for a scan command
* (which is relatively huge; space is allocated separately).
*/
struct iwl4965_cmd { struct iwl4965_cmd {
struct iwl4965_cmd_meta meta; struct iwl4965_cmd_meta meta; /* driver data */
struct iwl4965_cmd_header hdr; struct iwl4965_cmd_header hdr; /* uCode API */
union { union {
struct iwl4965_addsta_cmd addsta; struct iwl4965_addsta_cmd addsta;
struct iwl4965_led_cmd led; struct iwl4965_led_cmd led;
...@@ -436,6 +450,20 @@ struct iwl4965_rx_queue { ...@@ -436,6 +450,20 @@ struct iwl4965_rx_queue {
#ifdef CONFIG_IWL4965_HT #ifdef CONFIG_IWL4965_HT
#ifdef CONFIG_IWL4965_HT_AGG #ifdef CONFIG_IWL4965_HT_AGG
/**
* struct iwl4965_ht_agg -- aggregation status while waiting for block-ack
* @txq_id: Tx queue used for Tx attempt
* @frame_count: # frames attempted by Tx command
* @wait_for_ba: Expect block-ack before next Tx reply
* @start_idx: Index of 1st Transmit Frame Descriptor (TFD) in Tx window
* @bitmap0: Low order bitmap, one bit for each frame pending ACK in Tx window
* @bitmap1: High order, one bit for each frame pending ACK in Tx window
* @rate_n_flags: Rate at which Tx was attempted
*
* If REPLY_TX indicates that aggregation was attempted, driver must wait
* for block ack (REPLY_COMPRESSED_BA). This struct stores tx reply info
* until block ack arrives.
*/
struct iwl4965_ht_agg { struct iwl4965_ht_agg {
u16 txq_id; u16 txq_id;
u16 frame_count; u16 frame_count;
...@@ -566,6 +594,19 @@ struct iwl4965_ibss_seq { ...@@ -566,6 +594,19 @@ struct iwl4965_ibss_seq {
struct list_head list; struct list_head list;
}; };
/**
* struct iwl4965_driver_hw_info
* @max_txq_num: Max # Tx queues supported
* @ac_queue_count: # Tx queues for EDCA Access Categories (AC)
* @tx_cmd_len: Size of Tx command (but not including frame itself)
* @max_rxq_size: Max # Rx frames in Rx queue (must be power-of-2)
* @rx_buffer_size:
* @max_rxq_log: Log-base-2 of max_rxq_size
* @max_stations:
* @bcast_sta_id:
* @shared_virt: Pointer to driver/uCode shared Tx Byte Counts and Rx status
* @shared_phys: Physical Pointer to Tx Byte Counts and Rx status
*/
struct iwl4965_driver_hw_info { struct iwl4965_driver_hw_info {
u16 max_txq_num; u16 max_txq_num;
u16 ac_queue_count; u16 ac_queue_count;
...@@ -1149,10 +1190,11 @@ struct iwl4965_priv { ...@@ -1149,10 +1190,11 @@ struct iwl4965_priv {
u8 call_post_assoc_from_beacon; u8 call_post_assoc_from_beacon;
u8 assoc_station_added; u8 assoc_station_added;
u8 use_ant_b_for_management_frame; /* Tx antenna selection */ u8 use_ant_b_for_management_frame; /* Tx antenna selection */
/* HT variables */
/* High Throughput (HT) variables */
u8 is_dup; u8 is_dup;
u8 is_ht_enabled; u8 is_ht_enabled;
u8 channel_width; /* 0=20MHZ, 1=40MHZ */ u8 channel_width; /* 0=20MHZ, 1=40MHZ supported */
u8 current_channel_width; u8 current_channel_width;
u8 valid_antenna; /* Bit mask of antennas actually connected */ u8 valid_antenna; /* Bit mask of antennas actually connected */
#ifdef CONFIG_IWL4965_SENSITIVITY #ifdef CONFIG_IWL4965_SENSITIVITY
...@@ -1229,6 +1271,8 @@ struct iwl4965_priv { ...@@ -1229,6 +1271,8 @@ struct iwl4965_priv {
u16 last_seq_num; u16 last_seq_num;
u16 last_frag_num; u16 last_frag_num;
unsigned long last_packet_time; unsigned long last_packet_time;
/* Hash table for finding stations in IBSS network */
struct list_head ibss_mac_hash[IWL_IBSS_MAC_HASH_SIZE]; struct list_head ibss_mac_hash[IWL_IBSS_MAC_HASH_SIZE];
/* eeprom */ /* eeprom */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment