Go back –> iwl3945 kerneldoc

struct iwl3945_tx_queue - Tx Queue for DMA

struct iwl3945_tx_queue {
    struct iwl3945_queue q;
    struct iwl3945_tfd_frame * bd;
    struct iwl3945_cmd * cmd;
    dma_addr_t dma_addr_cmd;
    struct iwl3945_tx_info * txb;
    int need_update;
};

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

Description

A Tx queue consists of circular buffer of BDs (a.k.a. TFDs, transmit frame descriptors) and required locking structures.

struct iwl3945_cmd -

struct iwl3945_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 iwl3945_rx_queue - Rx queue

struct iwl3945_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 iwl3945_rx_mem_buffers

struct iwl3945_driver_hw_info -

struct iwl3945_driver_hw_info {
    u16 max_txq_num;
    u16 tx_cmd_len;
    u16 tx_ant_num;
    u16 max_rxq_size;
    u16 max_rxq_log;
    void * shared_virt;
    dma_addr_t shared_phys;
};

Members

max_txq_num
Max # Tx queues supported
tx_cmd_len
Size of Tx command (but not including frame itself)
tx_ant_num
Number of TX antennas
max_rxq_size
Max # Rx frames in Rx queue (must be power-of-2)
max_rxq_log
Log-base-2 of max_rxq_size
shared_virt
Pointer to driver/uCode shared Tx Byte Counts and Rx status
shared_phys
Physical Pointer to Tx Byte Counts and Rx status

iwl3945_hw_find_station - Find station id for a given BSSID

u8 iwl3945_hw_find_station (struct iwl3945_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.