Go back –> iwl4965 kerneldoc
struct iwl4965_tx_queue - Tx Queue for DMA
struct iwl4965_tx_queue {struct iwl4965_queue q;
struct iwl4965_tfd_frame * bd;
struct iwl_cmd * cmd;
dma_addr_t dma_addr_cmd;
struct iwl4965_tx_info * txb;
int need_update;
int sched_retry;
};
Members
- q
- generic Rx/Tx queue descriptor
- 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
Description
A Tx queue consists of circular buffer of BDs (a.k.a. TFDs, transmit frame descriptors) and required locking structures.
struct iwl_cmd -
struct iwl_cmd {};
Members
Description
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_rx_queue - Rx queue
struct iwl4965_rx_queue {u32 processed;
u32 read;
u32 write;
u32 free_count;
struct list_head rx_free;
struct list_head rx_used;
int need_update;
};
Members
- processed
- Internal index to last handled Rx packet
- read
- Shared index to newest available Rx buffer
- write
- Shared index to oldest written Rx packet
- free_count
- Number of pre-allocated buffers in rx_free
- rx_free
- list of free SKBs for use
- rx_used
- List of Rx buffers with no SKB
- need_update
- flag to indicate we need to update read/write index
NOTE
rx_free and rx_used are used as a FIFO for iwl4965_rx_mem_buffers
struct iwl4965_ht_agg - - aggregation status while waiting for block-ack
struct iwl4965_ht_agg {u16 txq_id;
u16 frame_count;
u16 wait_for_ba;
u16 start_idx;
u32 rate_n_flags;
#define IWL_AGG_OFF 0
#define IWL_AGG_ON 1
#define IWL_EMPTYING_HW_QUEUE_ADDBA 2
#define IWL_EMPTYING_HW_QUEUE_DELBA 3
};
Members
- 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
- rate_n_flags
- Rate at which Tx was attempted
Description
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 iwl_hw_params -
struct iwl_hw_params {u16 max_txq_num;
u16 tx_cmd_len;
u16 max_rxq_size;
u16 max_rxq_log;
};
Members
- max_txq_num
- Max # Tx queues supported
- 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)
- max_rxq_log
- Log-base-2 of max_rxq_size
iwl4965_hw_find_station - Find station id for a given BSSID
u8 iwl4965_hw_find_station (struct iwl_priv * priv, const u8 * bssid)Arguments
- bssid
- MAC address of station ID to find
NOTE
This should not be hardware specific but the code has not yet been merged into a single common layer for managing the station tables.