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.