Linux Kernel
3.7.1
|
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/pci.h>
#include <linux/pci-aspm.h>
#include <linux/slab.h>
#include <linux/dma-mapping.h>
#include <linux/delay.h>
#include <linux/sched.h>
#include <linux/skbuff.h>
#include <linux/netdevice.h>
#include <linux/firmware.h>
#include <linux/etherdevice.h>
#include <linux/if_arp.h>
#include <net/mac80211.h>
#include <asm/div64.h>
#include "common.h"
#include "4965.h"
Go to the source code of this file.
Data Structures | |
struct | il4965_firmware_pieces |
Macros | |
#define | pr_fmt(fmt) KBUILD_MODNAME ": " fmt |
#define | DRV_NAME "iwl4965" |
#define | DRV_DESCRIPTION "Intel(R) Wireless WiFi 4965 driver for Linux" |
#define | VD |
#define | DRV_VERSION IWLWIFI_VERSION VD |
#define | IL_TX_QUEUE_MSK 0xfffff |
#define | IL_NUM_RX_CHAINS_MULTIPLE 3 |
#define | IL_NUM_RX_CHAINS_SINGLE 2 |
#define | IL_NUM_IDLE_CHAINS_DUAL 2 |
#define | IL_NUM_IDLE_CHAINS_SINGLE 1 |
#define | ERROR_START_OFFSET (1 * sizeof(u32)) |
#define | ERROR_ELEM_SIZE (7 * sizeof(u32)) |
#define | IL_MASK(lo, hi) ((1 << (hi)) | ((1 << (hi)) - (1 << (lo)))) |
#define | MAX_HW_RESTARTS 5 |
#define | UCODE_READY_TIMEOUT (4 * HZ) |
#define | CHK(test, flag) |
Variables | |
struct il_mod_params | il4965_mod_params |
struct ieee80211_ops | il4965_mac_ops |
Definition at line 65 of file 4965-mac.c.
#define DRV_NAME "iwl4965" |
Definition at line 51 of file 4965-mac.c.
#define DRV_VERSION IWLWIFI_VERSION VD |
Definition at line 73 of file 4965-mac.c.
Definition at line 5056 of file 4965-mac.c.
Definition at line 5055 of file 4965-mac.c.
Definition at line 5140 of file 4965-mac.c.
#define IL_NUM_IDLE_CHAINS_DUAL 2 |
Definition at line 1064 of file 4965-mac.c.
#define IL_NUM_IDLE_CHAINS_SINGLE 1 |
Definition at line 1065 of file 4965-mac.c.
#define IL_NUM_RX_CHAINS_MULTIPLE 3 |
Definition at line 1062 of file 4965-mac.c.
#define IL_NUM_RX_CHAINS_SINGLE 2 |
Definition at line 1063 of file 4965-mac.c.
#define IL_TX_QUEUE_MSK 0xfffff |
Definition at line 1053 of file 4965-mac.c.
#define MAX_HW_RESTARTS 5 |
Definition at line 5488 of file 4965-mac.c.
Definition at line 30 of file 4965-mac.c.
#define UCODE_READY_TIMEOUT (4 * HZ) |
Definition at line 5697 of file 4965-mac.c.
#define VD |
Definition at line 70 of file 4965-mac.c.
Definition at line 3053 of file 4965-mac.c.
Definition at line 82 of file 4965-mac.c.
void il4965_configure_filter | ( | struct ieee80211_hw * | hw, |
unsigned int | changed_flags, | ||
unsigned int * | total_flags, | ||
u64 | multicast | ||
) |
Definition at line 6112 of file 4965-mac.c.
Definition at line 1195 of file 4965-mac.c.
Definition at line 5059 of file 4965-mac.c.
Definition at line 1040 of file 4965-mac.c.
Definition at line 1389 of file 4965-mac.c.
il4965_hdl_compressed_ba - Handler for N_COMPRESSED_BA
Handles block-acknowledge notification from device, which reports success of frames sent via aggregation.
Definition at line 2879 of file 4965-mac.c.
Definition at line 1240 of file 4965-mac.c.
N_RX and N_RX_MPDU are handled differently. N_RX: physical layer info is in this buffer N_RX_MPDU: physical layer info was sent in separate command and cached in il->last_phy_res
Here we set up local variables depending on which command is received.
Definition at line 613 of file 4965-mac.c.
Definition at line 735 of file 4965-mac.c.
Definition at line 1347 of file 4965-mac.c.
Definition at line 196 of file 4965-mac.c.
int il4965_hw_tx_queue_init | ( | struct il_priv * | il, |
struct il_tx_queue * | txq | ||
) |
Definition at line 3973 of file 4965-mac.c.
int il4965_hw_txq_attach_buf_to_tfd | ( | struct il_priv * | il, |
struct il_tx_queue * | txq, | ||
dma_addr_t | addr, | ||
u16 | len, | ||
u8 | reset, | ||
u8 | pad | ||
) |
Definition at line 3933 of file 4965-mac.c.
il4965_hw_txq_ctx_free - Free TXQ Context
Destroy all TX DMA queues and structures
Definition at line 1928 of file 4965-mac.c.
void il4965_hw_txq_free_tfd | ( | struct il_priv * | il, |
struct il_tx_queue * | txq | ||
) |
il4965_hw_txq_free_tfd - Free all chunks referenced by TFD [txq->q.read_ptr] - driver ilate data - tx queue
Does NOT advance any TFD circular buffer read/write idxes Does NOT free the TFD itself (which is within circular buffer)
Definition at line 3888 of file 4965-mac.c.
int il4965_hwrate_to_mac80211_idx | ( | u32 | rate_n_flags, |
enum ieee80211_band | band | ||
) |
Definition at line 458 of file 4965-mac.c.
void il4965_hwrate_to_tx_control | ( | struct il_priv * | il, |
u32 | rate_n_flags, | ||
struct ieee80211_tx_info * | info | ||
) |
translate ucode response to mac80211 tx status control values
Definition at line 2852 of file 4965-mac.c.
int il4965_mac_ampdu_action | ( | struct ieee80211_hw * | hw, |
struct ieee80211_vif * | vif, | ||
enum ieee80211_ampdu_mlme_action | action, | ||
struct ieee80211_sta * | sta, | ||
u16 | tid, | ||
u16 * | ssn, | ||
u8 | buf_size | ||
) |
Definition at line 5941 of file 4965-mac.c.
void il4965_mac_channel_switch | ( | struct ieee80211_hw * | hw, |
struct ieee80211_channel_switch * | ch_switch | ||
) |
Definition at line 6023 of file 4965-mac.c.
int il4965_mac_set_key | ( | struct ieee80211_hw * | hw, |
enum set_key_cmd | cmd, | ||
struct ieee80211_vif * | vif, | ||
struct ieee80211_sta * | sta, | ||
struct ieee80211_key_conf * | key | ||
) |
Definition at line 5865 of file 4965-mac.c.
int il4965_mac_sta_add | ( | struct ieee80211_hw * | hw, |
struct ieee80211_vif * | vif, | ||
struct ieee80211_sta * | sta | ||
) |
Definition at line 5987 of file 4965-mac.c.
int il4965_mac_start | ( | struct ieee80211_hw * | hw | ) |
Definition at line 5767 of file 4965-mac.c.
void il4965_mac_stop | ( | struct ieee80211_hw * | hw | ) |
Definition at line 5809 of file 4965-mac.c.
void il4965_mac_tx | ( | struct ieee80211_hw * | hw, |
struct ieee80211_tx_control * | control, | ||
struct sk_buff * | skb | ||
) |
Definition at line 5833 of file 4965-mac.c.
void il4965_mac_update_tkip_key | ( | struct ieee80211_hw * | hw, |
struct ieee80211_vif * | vif, | ||
struct ieee80211_key_conf * | keyconf, | ||
struct ieee80211_sta * | sta, | ||
u32 | iv32, | ||
u16 * | phase1key | ||
) |
Definition at line 5851 of file 4965-mac.c.
Definition at line 1027 of file 4965-mac.c.
int il4965_remove_default_wep_key | ( | struct il_priv * | il, |
struct ieee80211_key_conf * | keyconf | ||
) |
Definition at line 3150 of file 4965-mac.c.
int il4965_remove_dynamic_key | ( | struct il_priv * | il, |
struct ieee80211_key_conf * | keyconf, | ||
u8 | sta_id | ||
) |
Definition at line 3382 of file 4965-mac.c.
int il4965_request_scan | ( | struct il_priv * | il, |
struct ieee80211_vif * | vif | ||
) |
Definition at line 838 of file 4965-mac.c.
Definition at line 3142 of file 4965-mac.c.
il4965_rx_handle - Main entry function for receiving responses from uCode
Uses the il->handlers callback function array to invoke the appropriate handlers, including command responses, frame-received notifications, and other notifications.
Definition at line 4183 of file 4965-mac.c.
int il4965_rx_init | ( | struct il_priv * | il, |
struct il_rx_queue * | rxq | ||
) |
Definition at line 134 of file 4965-mac.c.
void il4965_rx_queue_free | ( | struct il_priv * | il, |
struct il_rx_queue * | rxq | ||
) |
Definition at line 420 of file 4965-mac.c.
void il4965_rx_queue_reset | ( | struct il_priv * | il, |
struct il_rx_queue * | rxq | ||
) |
Definition at line 101 of file 4965-mac.c.
il4965_rx_queue_restock - refill RX queue from pre-allocated pool
If there are slots in the RX queue that need to be restocked, and we have free pre-allocated buffers, fill the ranks as much as we can, pulling from rx_free.
This moves the 'write' idx forward to catch up with 'processed', and also updates the memory address in the firmware to reference the new target buffer.
Definition at line 266 of file 4965-mac.c.
Definition at line 395 of file 4965-mac.c.
Definition at line 407 of file 4965-mac.c.
Definition at line 442 of file 4965-mac.c.
Definition at line 3809 of file 4965-mac.c.
int il4965_set_default_wep_key | ( | struct il_priv * | il, |
struct ieee80211_key_conf * | keyconf | ||
) |
Definition at line 3173 of file 4965-mac.c.
Definition at line 3443 of file 4965-mac.c.
il4965_set_rxon_chain - Set up Rx chain usage in "staging" RXON image
Selects how many and which Rx receivers/antennas/chains to use. This should not be used for scan command ... it puts data in wrong place.
Definition at line 1126 of file 4965-mac.c.
Definition at line 6260 of file 4965-mac.c.
Definition at line 3633 of file 4965-mac.c.
Definition at line 3579 of file 4965-mac.c.
Definition at line 3606 of file 4965-mac.c.
il4965_sta_tx_modify_enable_tid - Enable Tx for this TID in station table
Definition at line 3559 of file 4965-mac.c.
int il4965_tx_agg_start | ( | struct il_priv * | il, |
struct ieee80211_vif * | vif, | ||
struct ieee80211_sta * | sta, | ||
u16 | tid, | ||
u16 * | ssn | ||
) |
Definition at line 2203 of file 4965-mac.c.
int il4965_tx_agg_stop | ( | struct il_priv * | il, |
struct ieee80211_vif * | vif, | ||
struct ieee80211_sta * | sta, | ||
u16 | tid | ||
) |
Definition at line 2299 of file 4965-mac.c.
Definition at line 2442 of file 4965-mac.c.
void il4965_tx_queue_set_status | ( | struct il_priv * | il, |
struct il_tx_queue * | txq, | ||
int | tx_fifo_id, | ||
int | scd_retry | ||
) |
il4965_tx_queue_set_status - (optionally) start Tx/Cmd queue : Tx DMA/FIFO channel (range 0-7) that the queue will feed : (1) Indicates queue will be used in aggregation mode
NOTE: Acquire il->lock before calling this function !
Definition at line 6267 of file 4965-mac.c.
Definition at line 1634 of file 4965-mac.c.
Definition at line 2377 of file 4965-mac.c.
il4965_txq_ctx_alloc - allocate TX queue context Allocate all Tx DMA structures and initialize them
il |
Definition at line 1956 of file 4965-mac.c.
Definition at line 2014 of file 4965-mac.c.
il4965_txq_ctx_stop - Stop all Tx DMA channels
Definition at line 2053 of file 4965-mac.c.
Definition at line 2034 of file 4965-mac.c.
Definition at line 6752 of file 4965-mac.c.
Definition at line 3550 of file 4965-mac.c.
Definition at line 3650 of file 4965-mac.c.
void il4965_update_tkip_key | ( | struct il_priv * | il, |
struct ieee80211_key_conf * | keyconf, | ||
struct ieee80211_sta * | sta, | ||
u32 | iv32, | ||
u16 * | phase1key | ||
) |
Definition at line 3348 of file 4965-mac.c.
MODULE_ALIAS | ( | "iwl4965" | ) |
MODULE_AUTHOR | ( | DRV_COPYRIGHT" " | DRV_AUTHOR | ) |
MODULE_DESCRIPTION | ( | DRV_DESCRIPTION | ) |
MODULE_DEVICE_TABLE | ( | pci | , |
il4965_hw_card_ids | |||
) |
module_exit | ( | il4965_exit | ) |
module_init | ( | il4965_init | ) |
MODULE_LICENSE | ( | "GPL" | ) |
MODULE_PARM_DESC | ( | queues_num | , |
"number of hw queues." | |||
) |
MODULE_PARM_DESC | ( | 11n_disable | , |
"disable 11n functionality" | |||
) |
MODULE_PARM_DESC | ( | amsdu_size_8K | , |
"enable 8K amsdu size" | |||
) |
MODULE_VERSION | ( | DRV_VERSION | ) |
struct ieee80211_ops il4965_mac_ops |
Definition at line 6289 of file 4965-mac.c.
struct il_mod_params il4965_mod_params |
Definition at line 94 of file 4965-mac.c.
char* name |
Definition at line 5017 of file 4965-mac.c.
u8 num |
Definition at line 5018 of file 4965-mac.c.