Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions | Variables
mwl8k.c File Reference
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/spinlock.h>
#include <linux/list.h>
#include <linux/pci.h>
#include <linux/delay.h>
#include <linux/completion.h>
#include <linux/etherdevice.h>
#include <linux/slab.h>
#include <net/mac80211.h>
#include <linux/moduleparam.h>
#include <linux/firmware.h>
#include <linux/workqueue.h>

Go to the source code of this file.

Data Structures

struct  rxd_ops
 
struct  mwl8k_device_info
 
struct  mwl8k_rx_queue
 
struct  mwl8k_tx_queue
 
struct  mwl8k_ampdu_stream
 
struct  mwl8k_priv
 
struct  mwl8k_vif
 
struct  tx_traffic_info
 
struct  mwl8k_sta
 
struct  mwl8k_cmd_pkt
 
struct  mwl8k_dma_data
 
struct  mwl8k_rxd_8366_ap
 
struct  mwl8k_rxd_sta
 
struct  mwl8k_tx_desc
 
struct  mwl8k_cmd_get_hw_spec_sta
 
struct  mwl8k_cmd_get_hw_spec_ap
 
struct  mwl8k_cmd_set_hw_spec
 
struct  mwl8k_cmd_mac_multicast_adr
 
struct  mwl8k_cmd_get_stat
 
struct  mwl8k_cmd_radio_control
 
struct  mwl8k_cmd_rf_tx_power
 
struct  mwl8k_cmd_tx_power
 
struct  mwl8k_cmd_rf_antenna
 
struct  mwl8k_cmd_set_beacon
 
struct  mwl8k_cmd_set_pre_scan
 
struct  mwl8k_cmd_set_post_scan
 
struct  mwl8k_cmd_set_rf_channel
 
struct  mwl8k_cmd_update_set_aid
 
struct  mwl8k_cmd_set_rate
 
struct  mwl8k_cmd_finalize_join
 
struct  mwl8k_cmd_set_rts_threshold
 
struct  mwl8k_cmd_set_slot
 
struct  mwl8k_cmd_set_edca_params
 
struct  mwl8k_cmd_set_wmm_mode
 
struct  mwl8k_cmd_mimo_config
 
struct  mwl8k_cmd_use_fixed_rate_sta
 
struct  mwl8k_cmd_use_fixed_rate_ap
 
struct  mwl8k_cmd_use_fixed_rate_ap::mwl8k_rate_entry_ap
 
struct  mwl8k_cmd_enable_sniffer
 
struct  mwl8k_cmd_update_mac_addr
 
struct  mwl8k_cmd_set_rate_adapt_mode
 
struct  mwl8k_cmd_get_watchdog_bitmap
 
struct  mwl8k_cmd_bss_start
 
struct  mwl8k_create_ba_stream
 
struct  mwl8k_destroy_ba_stream
 
struct  mwl8k_cmd_bastream
 
struct  mwl8k_cmd_set_new_stn
 
struct  mwl8k_cmd_update_encryption
 
struct  mwl8k_cmd_set_key
 
struct  ewc_ht_info
 
struct  peer_capability_info
 
struct  mwl8k_cmd_update_stadb
 

Macros

#define MWL8K_DESC   "Marvell TOPDOG(R) 802.11 Wireless Network Driver"
 
#define MWL8K_NAME   KBUILD_MODNAME
 
#define MWL8K_VERSION   "0.13"
 
#define MWL8K_HIU_GEN_PTR   0x00000c10
 
#define MWL8K_MODE_STA   0x0000005a
 
#define MWL8K_MODE_AP   0x000000a5
 
#define MWL8K_HIU_INT_CODE   0x00000c14
 
#define MWL8K_FWSTA_READY   0xf0f1f2f4
 
#define MWL8K_FWAP_READY   0xf1f2f4a5
 
#define MWL8K_INT_CODE_CMD_FINISHED   0x00000005
 
#define MWL8K_HIU_SCRATCH   0x00000c40
 
#define MWL8K_HIU_H2A_INTERRUPT_EVENTS   0x00000c18
 
#define MWL8K_HIU_H2A_INTERRUPT_STATUS   0x00000c1c
 
#define MWL8K_HIU_H2A_INTERRUPT_MASK   0x00000c20
 
#define MWL8K_HIU_H2A_INTERRUPT_CLEAR_SEL   0x00000c24
 
#define MWL8K_HIU_H2A_INTERRUPT_STATUS_MASK   0x00000c28
 
#define MWL8K_H2A_INT_DUMMY   (1 << 20)
 
#define MWL8K_H2A_INT_RESET   (1 << 15)
 
#define MWL8K_H2A_INT_DOORBELL   (1 << 1)
 
#define MWL8K_H2A_INT_PPA_READY   (1 << 0)
 
#define MWL8K_HIU_A2H_INTERRUPT_EVENTS   0x00000c2c
 
#define MWL8K_HIU_A2H_INTERRUPT_STATUS   0x00000c30
 
#define MWL8K_HIU_A2H_INTERRUPT_MASK   0x00000c34
 
#define MWL8K_HIU_A2H_INTERRUPT_CLEAR_SEL   0x00000c38
 
#define MWL8K_HIU_A2H_INTERRUPT_STATUS_MASK   0x00000c3c
 
#define MWL8K_A2H_INT_DUMMY   (1 << 20)
 
#define MWL8K_A2H_INT_BA_WATCHDOG   (1 << 14)
 
#define MWL8K_A2H_INT_CHNL_SWITCHED   (1 << 11)
 
#define MWL8K_A2H_INT_QUEUE_EMPTY   (1 << 10)
 
#define MWL8K_A2H_INT_RADAR_DETECT   (1 << 7)
 
#define MWL8K_A2H_INT_RADIO_ON   (1 << 6)
 
#define MWL8K_A2H_INT_RADIO_OFF   (1 << 5)
 
#define MWL8K_A2H_INT_MAC_EVENT   (1 << 3)
 
#define MWL8K_A2H_INT_OPC_DONE   (1 << 2)
 
#define MWL8K_A2H_INT_RX_READY   (1 << 1)
 
#define MWL8K_A2H_INT_TX_DONE   (1 << 0)
 
#define MWL8K_HW_TIMER_REGISTER   0x0000a600
 
#define MWL8K_A2H_EVENTS
 
#define MWL8K_RX_QUEUES   1
 
#define MWL8K_TX_WMM_QUEUES   4
 
#define MWL8K_MAX_AMPDU_QUEUES   8
 
#define MWL8K_MAX_TX_QUEUES   (MWL8K_TX_WMM_QUEUES + MWL8K_MAX_AMPDU_QUEUES)
 
#define mwl8k_tx_queues(priv)   (MWL8K_TX_WMM_QUEUES + (priv)->num_ampdu_queues)
 
#define MAX_WEP_KEY_LEN   13
 
#define NUM_WEP_KEYS   4
 
#define MWL8K_VIF(_vif)   ((struct mwl8k_vif *)&((_vif)->drv_priv))
 
#define IEEE80211_KEY_CONF(_u8)   ((struct ieee80211_key_conf *)(_u8))
 
#define MWL8K_MAX_TID   8
 
#define MWL8K_STA(_sta)   ((struct mwl8k_sta *)&((_sta)->drv_priv))
 
#define MWL8K_CMD_GET   0x0000
 
#define MWL8K_CMD_SET   0x0001
 
#define MWL8K_CMD_SET_LIST   0x0002
 
#define MWL8K_CMD_CODE_DNLD   0x0001
 
#define MWL8K_CMD_GET_HW_SPEC   0x0003
 
#define MWL8K_CMD_SET_HW_SPEC   0x0004
 
#define MWL8K_CMD_MAC_MULTICAST_ADR   0x0010
 
#define MWL8K_CMD_GET_STAT   0x0014
 
#define MWL8K_CMD_RADIO_CONTROL   0x001c
 
#define MWL8K_CMD_RF_TX_POWER   0x001e
 
#define MWL8K_CMD_TX_POWER   0x001f
 
#define MWL8K_CMD_RF_ANTENNA   0x0020
 
#define MWL8K_CMD_SET_BEACON   0x0100 /* per-vif */
 
#define MWL8K_CMD_SET_PRE_SCAN   0x0107
 
#define MWL8K_CMD_SET_POST_SCAN   0x0108
 
#define MWL8K_CMD_SET_RF_CHANNEL   0x010a
 
#define MWL8K_CMD_SET_AID   0x010d
 
#define MWL8K_CMD_SET_RATE   0x0110
 
#define MWL8K_CMD_SET_FINALIZE_JOIN   0x0111
 
#define MWL8K_CMD_RTS_THRESHOLD   0x0113
 
#define MWL8K_CMD_SET_SLOT   0x0114
 
#define MWL8K_CMD_SET_EDCA_PARAMS   0x0115
 
#define MWL8K_CMD_SET_WMM_MODE   0x0123
 
#define MWL8K_CMD_MIMO_CONFIG   0x0125
 
#define MWL8K_CMD_USE_FIXED_RATE   0x0126
 
#define MWL8K_CMD_ENABLE_SNIFFER   0x0150
 
#define MWL8K_CMD_SET_MAC_ADDR   0x0202 /* per-vif */
 
#define MWL8K_CMD_SET_RATEADAPT_MODE   0x0203
 
#define MWL8K_CMD_GET_WATCHDOG_BITMAP   0x0205
 
#define MWL8K_CMD_DEL_MAC_ADDR   0x0206 /* per-vif */
 
#define MWL8K_CMD_BSS_START   0x1100 /* per-vif */
 
#define MWL8K_CMD_SET_NEW_STN   0x1111 /* per-vif */
 
#define MWL8K_CMD_UPDATE_ENCRYPTION   0x1122 /* per-vif */
 
#define MWL8K_CMD_UPDATE_STADB   0x1123
 
#define MWL8K_CMD_BASTREAM   0x1125
 
#define MWL8K_CMDNAME(x)
 
#define REDUCED_TX_HEADROOM   8
 
#define MWL8K_8366_AP_RATE_INFO_MCS_FORMAT   0x80
 
#define MWL8K_8366_AP_RATE_INFO_40MHZ   0x40
 
#define MWL8K_8366_AP_RATE_INFO_RATEID(x)   ((x) & 0x3f)
 
#define MWL8K_8366_AP_RX_CTRL_OWNED_BY_HOST   0x80
 
#define MWL8K_8366_AP_RXSTAT_DECRYPT_ERR_MASK   0x80
 
#define MWL8K_8366_AP_RXSTAT_GENERAL_DECRYPT_ERR   0xFF
 
#define MWL8K_8366_AP_RXSTAT_TKIP_DECRYPT_MIC_ERR   0x02
 
#define MWL8K_8366_AP_RXSTAT_WEP_DECRYPT_ICV_ERR   0x04
 
#define MWL8K_8366_AP_RXSTAT_TKIP_DECRYPT_ICV_ERR   0x08
 
#define MWL8K_STA_RATE_INFO_SHORTPRE   0x8000
 
#define MWL8K_STA_RATE_INFO_ANTSELECT(x)   (((x) >> 11) & 0x3)
 
#define MWL8K_STA_RATE_INFO_RATEID(x)   (((x) >> 3) & 0x3f)
 
#define MWL8K_STA_RATE_INFO_40MHZ   0x0004
 
#define MWL8K_STA_RATE_INFO_SHORTGI   0x0002
 
#define MWL8K_STA_RATE_INFO_MCS_FORMAT   0x0001
 
#define MWL8K_STA_RX_CTRL_OWNED_BY_HOST   0x02
 
#define MWL8K_STA_RX_CTRL_DECRYPT_ERROR   0x04
 
#define MWL8K_STA_RX_CTRL_DEC_ERR_TYPE   0x08
 
#define MWL8K_STA_RX_CTRL_KEY_INDEX   0x30
 
#define MWL8K_RX_DESCS   256
 
#define MWL8K_RX_MAXSZ   3800
 
#define MWL8K_TXD_STATUS_OK   0x00000001
 
#define MWL8K_TXD_STATUS_OK_RETRY   0x00000002
 
#define MWL8K_TXD_STATUS_OK_MORE_RETRY   0x00000004
 
#define MWL8K_TXD_STATUS_MULTICAST_TX   0x00000008
 
#define MWL8K_TXD_STATUS_FW_OWNED   0x80000000
 
#define MWL8K_QOS_QLEN_UNSPEC   0xff00
 
#define MWL8K_QOS_ACK_POLICY_MASK   0x0060
 
#define MWL8K_QOS_ACK_POLICY_NORMAL   0x0000
 
#define MWL8K_QOS_ACK_POLICY_BLOCKACK   0x0060
 
#define MWL8K_QOS_EOSP   0x0010
 
#define MWL8K_TX_DESCS   128
 
#define MWL8K_TX_WAIT_TIMEOUT_MS   5000
 
#define MWL8K_TXD_SUCCESS(status)
 
#define RI_FORMAT(a)   (a & 0x0001)
 
#define RI_RATE_ID_MCS(a)   ((a & 0x01f8) >> 3)
 
#define MWL8K_AMPDU_PACKET_THRESHOLD   64
 
#define MWL8K_CMD_TIMEOUT_MS   10000
 
#define MWL8K_CAP_MAX_AMSDU   0x20000000
 
#define MWL8K_CAP_GREENFIELD   0x08000000
 
#define MWL8K_CAP_AMPDU   0x04000000
 
#define MWL8K_CAP_RX_STBC   0x01000000
 
#define MWL8K_CAP_TX_STBC   0x00800000
 
#define MWL8K_CAP_SHORTGI_40MHZ   0x00400000
 
#define MWL8K_CAP_SHORTGI_20MHZ   0x00200000
 
#define MWL8K_CAP_RX_ANTENNA_MASK   0x000e0000
 
#define MWL8K_CAP_TX_ANTENNA_MASK   0x0001c000
 
#define MWL8K_CAP_DELAY_BA   0x00003000
 
#define MWL8K_CAP_MIMO   0x00000200
 
#define MWL8K_CAP_40MHZ   0x00000100
 
#define MWL8K_CAP_BAND_MASK   0x00000007
 
#define MWL8K_CAP_5GHZ   0x00000004
 
#define MWL8K_CAP_2GHZ4   0x00000001
 
#define MWL8K_SET_HW_SPEC_FLAG_ENABLE_LIFE_TIME_EXPIRY   0x00000400
 
#define MWL8K_SET_HW_SPEC_FLAG_GENERATE_CCMP_HDR   0x00000200
 
#define MWL8K_SET_HW_SPEC_FLAG_HOST_DECR_MGMT   0x00000080
 
#define MWL8K_SET_HW_SPEC_FLAG_HOSTFORM_PROBERESP   0x00000020
 
#define MWL8K_SET_HW_SPEC_FLAG_HOSTFORM_BEACON   0x00000010
 
#define MWL8K_ENABLE_RX_DIRECTED   0x0001
 
#define MWL8K_ENABLE_RX_MULTICAST   0x0002
 
#define MWL8K_ENABLE_RX_ALL_MULTICAST   0x0004
 
#define MWL8K_ENABLE_RX_BROADCAST   0x0008
 
#define MWL8K_STAT_ACK_FAILURE   9
 
#define MWL8K_STAT_RTS_FAILURE   12
 
#define MWL8K_STAT_FCS_ERROR   24
 
#define MWL8K_STAT_RTS_SUCCESS   11
 
#define MWL8K_RF_TX_POWER_LEVEL_TOTAL   8
 
#define MWL8K_TX_POWER_LEVEL_TOTAL   12
 
#define MWL8K_RF_ANTENNA_RX   1
 
#define MWL8K_RF_ANTENNA_TX   2
 
#define MWL8K_FRAME_PROT_DISABLED   0x00
 
#define MWL8K_FRAME_PROT_11G   0x07
 
#define MWL8K_FRAME_PROT_11N_HT_40MHZ_ONLY   0x02
 
#define MWL8K_FRAME_PROT_11N_HT_ALL   0x06
 
#define MWL8K_FJ_BEACON_MAXLEN   128
 
#define MWL8K_SET_EDCA_CW   0x01
 
#define MWL8K_SET_EDCA_TXOP   0x02
 
#define MWL8K_SET_EDCA_AIFS   0x04
 
#define MWL8K_SET_EDCA_ALL
 
#define MWL8K_USE_AUTO_RATE   0x0002
 
#define MWL8K_UCAST_RATE   0
 
#define MWL8K_MAC_TYPE_PRIMARY_CLIENT   0
 
#define MWL8K_MAC_TYPE_SECONDARY_CLIENT   1
 
#define MWL8K_MAC_TYPE_PRIMARY_AP   2
 
#define MWL8K_MAC_TYPE_SECONDARY_AP   3
 
#define INVALID_BA   0xAA
 
#define BASTREAM_FLAG_DIRECTION_UPSTREAM   0x00
 
#define BASTREAM_FLAG_IMMEDIATE_TYPE   0x01
 
#define MWL8K_STA_ACTION_ADD   0
 
#define MWL8K_STA_ACTION_REMOVE   2
 
#define MAX_ENCR_KEY_LENGTH   16
 
#define MIC_KEY_LENGTH   8
 
#define MWL8K_UPDATE_ENCRYPTION_TYPE_WEP   0
 
#define MWL8K_UPDATE_ENCRYPTION_TYPE_DISABLE   1
 
#define MWL8K_UPDATE_ENCRYPTION_TYPE_TKIP   4
 
#define MWL8K_UPDATE_ENCRYPTION_TYPE_MIXED   7
 
#define MWL8K_UPDATE_ENCRYPTION_TYPE_AES   8
 
#define MWL8K_KEY_FLAG_TXGROUPKEY   0x00000004
 
#define MWL8K_KEY_FLAG_PAIRWISE   0x00000008
 
#define MWL8K_KEY_FLAG_TSC_VALID   0x00000040
 
#define MWL8K_KEY_FLAG_WEP_TXKEY   0x01000000
 
#define MWL8K_KEY_FLAG_MICKEY_VALID   0x02000000
 
#define MWL8K_STA_DB_MODIFY_ENTRY   1
 
#define MWL8K_STA_DB_DEL_ENTRY   2
 
#define MWL8K_PEER_TYPE_ACCESSPOINT   2
 
#define MAX_AMPDU_ATTEMPTS   5
 
#define MWL8K_8366_AP_FW_API   2
 
#define _MWL8K_8366_AP_FW(api)   "mwl8k/fmimage_8366_ap-" #api ".fw"
 
#define MWL8K_8366_AP_FW(api)   _MWL8K_8366_AP_FW(api)
 
#define MAX_RESTART_ATTEMPTS   1
 

Enumerations

enum  { AMPDU_NO_STREAM, AMPDU_STREAM_NEW, AMPDU_STREAM_IN_PROGRESS, AMPDU_STREAM_ACTIVE }
 
enum  { FW_STATE_INIT = 0, FW_STATE_LOADING_PREF, FW_STATE_LOADING_ALT, FW_STATE_ERROR }
 
enum  ba_stream_action_type {
  MWL8K_BA_CREATE, MWL8K_BA_UPDATE, MWL8K_BA_DESTROY, MWL8K_BA_FLUSH,
  MWL8K_BA_CHECK
}
 
enum  { MWL8K_ENCR_ENABLE, MWL8K_ENCR_SET_KEY, MWL8K_ENCR_REMOVE_KEY, MWL8K_ENCR_SET_GROUP_KEY }
 
enum  { MWL8K_ALG_WEP, MWL8K_ALG_TKIP, MWL8K_ALG_CCMP }
 
enum  { MWL8363 = 0, MWL8687, MWL8366 }
 

Functions

 module_param (ap_mode_default, bool, 0)
 
 MODULE_PARM_DESC (ap_mode_default,"Set to 1 to make ap mode the default instead of sta mode")
 
 MODULE_FIRMWARE ("mwl8k/helper_8363.fw")
 
 MODULE_FIRMWARE ("mwl8k/fmimage_8363.fw")
 
 MODULE_FIRMWARE ("mwl8k/helper_8687.fw")
 
 MODULE_FIRMWARE ("mwl8k/fmimage_8687.fw")
 
 MODULE_FIRMWARE ("mwl8k/helper_8366.fw")
 
 MODULE_FIRMWARE ("mwl8k/fmimage_8366.fw")
 
 MODULE_FIRMWARE (MWL8K_8366_AP_FW(MWL8K_8366_AP_FW_API))
 
 MODULE_DEVICE_TABLE (pci, mwl8k_pci_id_table)
 
 module_pci_driver (mwl8k_driver)
 
 MODULE_DESCRIPTION (MWL8K_DESC)
 
 MODULE_VERSION (MWL8K_VERSION)
 
 MODULE_AUTHOR ("Lennert Buytenhek <[email protected]>")
 
 MODULE_LICENSE ("GPL")
 

Variables

struct mwl8k_cmd_pkt __packed
 

Macro Definition Documentation

#define _MWL8K_8366_AP_FW (   api)    "mwl8k/fmimage_8366_ap-" #api ".fw"

Definition at line 5240 of file mwl8k.c.

#define BASTREAM_FLAG_DIRECTION_UPSTREAM   0x00

Definition at line 3639 of file mwl8k.c.

#define BASTREAM_FLAG_IMMEDIATE_TYPE   0x01

Definition at line 3640 of file mwl8k.c.

#define IEEE80211_KEY_CONF (   _u8)    ((struct ieee80211_key_conf *)(_u8))

Definition at line 304 of file mwl8k.c.

#define INVALID_BA   0xAA

Definition at line 3574 of file mwl8k.c.

#define MAX_AMPDU_ATTEMPTS   5

Definition at line 5075 of file mwl8k.c.

#define MAX_ENCR_KEY_LENGTH   16

Definition at line 3891 of file mwl8k.c.

#define MAX_RESTART_ATTEMPTS   1

Definition at line 5375 of file mwl8k.c.

#define MAX_WEP_KEY_LEN   13

Definition at line 277 of file mwl8k.c.

#define MIC_KEY_LENGTH   8

Definition at line 3892 of file mwl8k.c.

#define MWL8K_8366_AP_FW (   api)    _MWL8K_8366_AP_FW(api)

Definition at line 5241 of file mwl8k.c.

#define MWL8K_8366_AP_FW_API   2

Definition at line 5239 of file mwl8k.c.

#define MWL8K_8366_AP_RATE_INFO_40MHZ   0x40

Definition at line 916 of file mwl8k.c.

#define MWL8K_8366_AP_RATE_INFO_MCS_FORMAT   0x80

Definition at line 915 of file mwl8k.c.

#define MWL8K_8366_AP_RATE_INFO_RATEID (   x)    ((x) & 0x3f)

Definition at line 917 of file mwl8k.c.

#define MWL8K_8366_AP_RX_CTRL_OWNED_BY_HOST   0x80

Definition at line 919 of file mwl8k.c.

#define MWL8K_8366_AP_RXSTAT_DECRYPT_ERR_MASK   0x80

Definition at line 922 of file mwl8k.c.

#define MWL8K_8366_AP_RXSTAT_GENERAL_DECRYPT_ERR   0xFF

Definition at line 923 of file mwl8k.c.

#define MWL8K_8366_AP_RXSTAT_TKIP_DECRYPT_ICV_ERR   0x08

Definition at line 926 of file mwl8k.c.

#define MWL8K_8366_AP_RXSTAT_TKIP_DECRYPT_MIC_ERR   0x02

Definition at line 924 of file mwl8k.c.

#define MWL8K_8366_AP_RXSTAT_WEP_DECRYPT_ICV_ERR   0x04

Definition at line 925 of file mwl8k.c.

#define MWL8K_A2H_EVENTS
Value:
MWL8K_A2H_INT_CHNL_SWITCHED | \
MWL8K_A2H_INT_QUEUE_EMPTY | \
MWL8K_A2H_INT_RADAR_DETECT | \
MWL8K_A2H_INT_RADIO_ON | \
MWL8K_A2H_INT_RADIO_OFF | \
MWL8K_A2H_INT_MAC_EVENT | \
MWL8K_A2H_INT_OPC_DONE | \
MWL8K_A2H_INT_RX_READY | \
MWL8K_A2H_INT_TX_DONE | \
MWL8K_A2H_INT_BA_WATCHDOG)

Definition at line 86 of file mwl8k.c.

#define MWL8K_A2H_INT_BA_WATCHDOG   (1 << 14)

Definition at line 67 of file mwl8k.c.

#define MWL8K_A2H_INT_CHNL_SWITCHED   (1 << 11)

Definition at line 68 of file mwl8k.c.

#define MWL8K_A2H_INT_DUMMY   (1 << 20)

Definition at line 66 of file mwl8k.c.

#define MWL8K_A2H_INT_MAC_EVENT   (1 << 3)

Definition at line 73 of file mwl8k.c.

#define MWL8K_A2H_INT_OPC_DONE   (1 << 2)

Definition at line 74 of file mwl8k.c.

#define MWL8K_A2H_INT_QUEUE_EMPTY   (1 << 10)

Definition at line 69 of file mwl8k.c.

#define MWL8K_A2H_INT_RADAR_DETECT   (1 << 7)

Definition at line 70 of file mwl8k.c.

#define MWL8K_A2H_INT_RADIO_OFF   (1 << 5)

Definition at line 72 of file mwl8k.c.

#define MWL8K_A2H_INT_RADIO_ON   (1 << 6)

Definition at line 71 of file mwl8k.c.

#define MWL8K_A2H_INT_RX_READY   (1 << 1)

Definition at line 75 of file mwl8k.c.

#define MWL8K_A2H_INT_TX_DONE   (1 << 0)

Definition at line 76 of file mwl8k.c.

#define MWL8K_AMPDU_PACKET_THRESHOLD   64

Definition at line 1797 of file mwl8k.c.

#define MWL8K_CAP_2GHZ4   0x00000001

Definition at line 2274 of file mwl8k.c.

#define MWL8K_CAP_40MHZ   0x00000100

Definition at line 2271 of file mwl8k.c.

#define MWL8K_CAP_5GHZ   0x00000004

Definition at line 2273 of file mwl8k.c.

#define MWL8K_CAP_AMPDU   0x04000000

Definition at line 2262 of file mwl8k.c.

#define MWL8K_CAP_BAND_MASK   0x00000007

Definition at line 2272 of file mwl8k.c.

#define MWL8K_CAP_DELAY_BA   0x00003000

Definition at line 2269 of file mwl8k.c.

#define MWL8K_CAP_GREENFIELD   0x08000000

Definition at line 2261 of file mwl8k.c.

#define MWL8K_CAP_MAX_AMSDU   0x20000000

Definition at line 2260 of file mwl8k.c.

#define MWL8K_CAP_MIMO   0x00000200

Definition at line 2270 of file mwl8k.c.

#define MWL8K_CAP_RX_ANTENNA_MASK   0x000e0000

Definition at line 2267 of file mwl8k.c.

#define MWL8K_CAP_RX_STBC   0x01000000

Definition at line 2263 of file mwl8k.c.

#define MWL8K_CAP_SHORTGI_20MHZ   0x00200000

Definition at line 2266 of file mwl8k.c.

#define MWL8K_CAP_SHORTGI_40MHZ   0x00400000

Definition at line 2265 of file mwl8k.c.

#define MWL8K_CAP_TX_ANTENNA_MASK   0x0001c000

Definition at line 2268 of file mwl8k.c.

#define MWL8K_CAP_TX_STBC   0x00800000

Definition at line 2264 of file mwl8k.c.

#define MWL8K_CMD_BASTREAM   0x1125

Definition at line 410 of file mwl8k.c.

#define MWL8K_CMD_BSS_START   0x1100 /* per-vif */

Definition at line 406 of file mwl8k.c.

#define MWL8K_CMD_CODE_DNLD   0x0001

Definition at line 379 of file mwl8k.c.

#define MWL8K_CMD_DEL_MAC_ADDR   0x0206 /* per-vif */

Definition at line 405 of file mwl8k.c.

#define MWL8K_CMD_ENABLE_SNIFFER   0x0150

Definition at line 401 of file mwl8k.c.

#define MWL8K_CMD_GET   0x0000

Definition at line 374 of file mwl8k.c.

#define MWL8K_CMD_GET_HW_SPEC   0x0003

Definition at line 380 of file mwl8k.c.

#define MWL8K_CMD_GET_STAT   0x0014

Definition at line 383 of file mwl8k.c.

#define MWL8K_CMD_GET_WATCHDOG_BITMAP   0x0205

Definition at line 404 of file mwl8k.c.

#define MWL8K_CMD_MAC_MULTICAST_ADR   0x0010

Definition at line 382 of file mwl8k.c.

#define MWL8K_CMD_MIMO_CONFIG   0x0125

Definition at line 399 of file mwl8k.c.

#define MWL8K_CMD_RADIO_CONTROL   0x001c

Definition at line 384 of file mwl8k.c.

#define MWL8K_CMD_RF_ANTENNA   0x0020

Definition at line 387 of file mwl8k.c.

#define MWL8K_CMD_RF_TX_POWER   0x001e

Definition at line 385 of file mwl8k.c.

#define MWL8K_CMD_RTS_THRESHOLD   0x0113

Definition at line 395 of file mwl8k.c.

#define MWL8K_CMD_SET   0x0001

Definition at line 375 of file mwl8k.c.

#define MWL8K_CMD_SET_AID   0x010d

Definition at line 392 of file mwl8k.c.

#define MWL8K_CMD_SET_BEACON   0x0100 /* per-vif */

Definition at line 388 of file mwl8k.c.

#define MWL8K_CMD_SET_EDCA_PARAMS   0x0115

Definition at line 397 of file mwl8k.c.

#define MWL8K_CMD_SET_FINALIZE_JOIN   0x0111

Definition at line 394 of file mwl8k.c.

#define MWL8K_CMD_SET_HW_SPEC   0x0004

Definition at line 381 of file mwl8k.c.

#define MWL8K_CMD_SET_LIST   0x0002

Definition at line 376 of file mwl8k.c.

#define MWL8K_CMD_SET_MAC_ADDR   0x0202 /* per-vif */

Definition at line 402 of file mwl8k.c.

#define MWL8K_CMD_SET_NEW_STN   0x1111 /* per-vif */

Definition at line 407 of file mwl8k.c.

#define MWL8K_CMD_SET_POST_SCAN   0x0108

Definition at line 390 of file mwl8k.c.

#define MWL8K_CMD_SET_PRE_SCAN   0x0107

Definition at line 389 of file mwl8k.c.

#define MWL8K_CMD_SET_RATE   0x0110

Definition at line 393 of file mwl8k.c.

#define MWL8K_CMD_SET_RATEADAPT_MODE   0x0203

Definition at line 403 of file mwl8k.c.

#define MWL8K_CMD_SET_RF_CHANNEL   0x010a

Definition at line 391 of file mwl8k.c.

#define MWL8K_CMD_SET_SLOT   0x0114

Definition at line 396 of file mwl8k.c.

#define MWL8K_CMD_SET_WMM_MODE   0x0123

Definition at line 398 of file mwl8k.c.

#define MWL8K_CMD_TIMEOUT_MS   10000

Definition at line 2119 of file mwl8k.c.

#define MWL8K_CMD_TX_POWER   0x001f

Definition at line 386 of file mwl8k.c.

#define MWL8K_CMD_UPDATE_ENCRYPTION   0x1122 /* per-vif */

Definition at line 408 of file mwl8k.c.

#define MWL8K_CMD_UPDATE_STADB   0x1123

Definition at line 409 of file mwl8k.c.

#define MWL8K_CMD_USE_FIXED_RATE   0x0126

Definition at line 400 of file mwl8k.c.

#define MWL8K_CMDNAME (   x)
Value:
case MWL8K_CMD_##x: do {\
snprintf(buf, bufsize, "%s", #x);\
return buf;\
} while (0)
#define MWL8K_DESC   "Marvell TOPDOG(R) 802.11 Wireless Network Driver"

Definition at line 29 of file mwl8k.c.

#define MWL8K_ENABLE_RX_ALL_MULTICAST   0x0004

Definition at line 2565 of file mwl8k.c.

#define MWL8K_ENABLE_RX_BROADCAST   0x0008

Definition at line 2566 of file mwl8k.c.

#define MWL8K_ENABLE_RX_DIRECTED   0x0001

Definition at line 2563 of file mwl8k.c.

#define MWL8K_ENABLE_RX_MULTICAST   0x0002

Definition at line 2564 of file mwl8k.c.

#define MWL8K_FJ_BEACON_MAXLEN   128

Definition at line 3083 of file mwl8k.c.

#define MWL8K_FRAME_PROT_11G   0x07

Definition at line 2973 of file mwl8k.c.

#define MWL8K_FRAME_PROT_11N_HT_40MHZ_ONLY   0x02

Definition at line 2974 of file mwl8k.c.

#define MWL8K_FRAME_PROT_11N_HT_ALL   0x06

Definition at line 2975 of file mwl8k.c.

#define MWL8K_FRAME_PROT_DISABLED   0x00

Definition at line 2972 of file mwl8k.c.

#define MWL8K_FWAP_READY   0xf1f2f4a5

Definition at line 45 of file mwl8k.c.

#define MWL8K_FWSTA_READY   0xf0f1f2f4

Definition at line 44 of file mwl8k.c.

#define MWL8K_H2A_INT_DOORBELL   (1 << 1)

Definition at line 57 of file mwl8k.c.

#define MWL8K_H2A_INT_DUMMY   (1 << 20)

Definition at line 55 of file mwl8k.c.

#define MWL8K_H2A_INT_PPA_READY   (1 << 0)

Definition at line 58 of file mwl8k.c.

#define MWL8K_H2A_INT_RESET   (1 << 15)

Definition at line 56 of file mwl8k.c.

#define MWL8K_HIU_A2H_INTERRUPT_CLEAR_SEL   0x00000c38

Definition at line 64 of file mwl8k.c.

#define MWL8K_HIU_A2H_INTERRUPT_EVENTS   0x00000c2c

Definition at line 61 of file mwl8k.c.

#define MWL8K_HIU_A2H_INTERRUPT_MASK   0x00000c34

Definition at line 63 of file mwl8k.c.

#define MWL8K_HIU_A2H_INTERRUPT_STATUS   0x00000c30

Definition at line 62 of file mwl8k.c.

#define MWL8K_HIU_A2H_INTERRUPT_STATUS_MASK   0x00000c3c

Definition at line 65 of file mwl8k.c.

#define MWL8K_HIU_GEN_PTR   0x00000c10

Definition at line 40 of file mwl8k.c.

#define MWL8K_HIU_H2A_INTERRUPT_CLEAR_SEL   0x00000c24

Definition at line 53 of file mwl8k.c.

#define MWL8K_HIU_H2A_INTERRUPT_EVENTS   0x00000c18

Definition at line 50 of file mwl8k.c.

#define MWL8K_HIU_H2A_INTERRUPT_MASK   0x00000c20

Definition at line 52 of file mwl8k.c.

#define MWL8K_HIU_H2A_INTERRUPT_STATUS   0x00000c1c

Definition at line 51 of file mwl8k.c.

#define MWL8K_HIU_H2A_INTERRUPT_STATUS_MASK   0x00000c28

Definition at line 54 of file mwl8k.c.

#define MWL8K_HIU_INT_CODE   0x00000c14

Definition at line 43 of file mwl8k.c.

#define MWL8K_HIU_SCRATCH   0x00000c40

Definition at line 47 of file mwl8k.c.

#define MWL8K_HW_TIMER_REGISTER   0x0000a600

Definition at line 84 of file mwl8k.c.

#define MWL8K_INT_CODE_CMD_FINISHED   0x00000005

Definition at line 46 of file mwl8k.c.

#define MWL8K_KEY_FLAG_MICKEY_VALID   0x02000000

Definition at line 3947 of file mwl8k.c.

#define MWL8K_KEY_FLAG_PAIRWISE   0x00000008

Definition at line 3944 of file mwl8k.c.

#define MWL8K_KEY_FLAG_TSC_VALID   0x00000040

Definition at line 3945 of file mwl8k.c.

#define MWL8K_KEY_FLAG_TXGROUPKEY   0x00000004

Definition at line 3943 of file mwl8k.c.

#define MWL8K_KEY_FLAG_WEP_TXKEY   0x01000000

Definition at line 3946 of file mwl8k.c.

#define MWL8K_MAC_TYPE_PRIMARY_AP   2

Definition at line 3450 of file mwl8k.c.

#define MWL8K_MAC_TYPE_PRIMARY_CLIENT   0

Definition at line 3448 of file mwl8k.c.

#define MWL8K_MAC_TYPE_SECONDARY_AP   3

Definition at line 3451 of file mwl8k.c.

#define MWL8K_MAC_TYPE_SECONDARY_CLIENT   1

Definition at line 3449 of file mwl8k.c.

#define MWL8K_MAX_AMPDU_QUEUES   8

Definition at line 100 of file mwl8k.c.

#define MWL8K_MAX_TID   8

Definition at line 311 of file mwl8k.c.

#define MWL8K_MAX_TX_QUEUES   (MWL8K_TX_WMM_QUEUES + MWL8K_MAX_AMPDU_QUEUES)

Definition at line 101 of file mwl8k.c.

#define MWL8K_MODE_AP   0x000000a5

Definition at line 42 of file mwl8k.c.

#define MWL8K_MODE_STA   0x0000005a

Definition at line 41 of file mwl8k.c.

#define MWL8K_NAME   KBUILD_MODNAME

Definition at line 30 of file mwl8k.c.

#define MWL8K_PEER_TYPE_ACCESSPOINT   2

Definition at line 4208 of file mwl8k.c.

#define MWL8K_QOS_ACK_POLICY_BLOCKACK   0x0060

Definition at line 1387 of file mwl8k.c.

#define MWL8K_QOS_ACK_POLICY_MASK   0x0060

Definition at line 1385 of file mwl8k.c.

#define MWL8K_QOS_ACK_POLICY_NORMAL   0x0000

Definition at line 1386 of file mwl8k.c.

#define MWL8K_QOS_EOSP   0x0010

Definition at line 1388 of file mwl8k.c.

#define MWL8K_QOS_QLEN_UNSPEC   0xff00

Definition at line 1384 of file mwl8k.c.

#define MWL8K_RF_ANTENNA_RX   1

Definition at line 2815 of file mwl8k.c.

#define MWL8K_RF_ANTENNA_TX   2

Definition at line 2816 of file mwl8k.c.

#define MWL8K_RF_TX_POWER_LEVEL_TOTAL   8

Definition at line 2716 of file mwl8k.c.

#define MWL8K_RX_DESCS   256

Definition at line 1111 of file mwl8k.c.

#define MWL8K_RX_MAXSZ   3800

Definition at line 1112 of file mwl8k.c.

#define MWL8K_RX_QUEUES   1

Definition at line 98 of file mwl8k.c.

#define MWL8K_SET_EDCA_AIFS   0x04

Definition at line 3224 of file mwl8k.c.

#define MWL8K_SET_EDCA_ALL
Value:
MWL8K_SET_EDCA_TXOP | \
MWL8K_SET_EDCA_AIFS)

Definition at line 3226 of file mwl8k.c.

#define MWL8K_SET_EDCA_CW   0x01

Definition at line 3222 of file mwl8k.c.

#define MWL8K_SET_EDCA_TXOP   0x02

Definition at line 3223 of file mwl8k.c.

#define MWL8K_SET_HW_SPEC_FLAG_ENABLE_LIFE_TIME_EXPIRY   0x00000400

Definition at line 2504 of file mwl8k.c.

#define MWL8K_SET_HW_SPEC_FLAG_GENERATE_CCMP_HDR   0x00000200

Definition at line 2505 of file mwl8k.c.

#define MWL8K_SET_HW_SPEC_FLAG_HOST_DECR_MGMT   0x00000080

Definition at line 2506 of file mwl8k.c.

#define MWL8K_SET_HW_SPEC_FLAG_HOSTFORM_BEACON   0x00000010

Definition at line 2508 of file mwl8k.c.

#define MWL8K_SET_HW_SPEC_FLAG_HOSTFORM_PROBERESP   0x00000020

Definition at line 2507 of file mwl8k.c.

#define MWL8K_STA (   _sta)    ((struct mwl8k_sta *)&((_sta)->drv_priv))

Definition at line 318 of file mwl8k.c.

#define MWL8K_STA_ACTION_ADD   0

Definition at line 3803 of file mwl8k.c.

#define MWL8K_STA_ACTION_REMOVE   2

Definition at line 3804 of file mwl8k.c.

#define MWL8K_STA_DB_DEL_ENTRY   2

Definition at line 4205 of file mwl8k.c.

#define MWL8K_STA_DB_MODIFY_ENTRY   1

Definition at line 4204 of file mwl8k.c.

#define MWL8K_STA_RATE_INFO_40MHZ   0x0004

Definition at line 1027 of file mwl8k.c.

#define MWL8K_STA_RATE_INFO_ANTSELECT (   x)    (((x) >> 11) & 0x3)

Definition at line 1025 of file mwl8k.c.

#define MWL8K_STA_RATE_INFO_MCS_FORMAT   0x0001

Definition at line 1029 of file mwl8k.c.

#define MWL8K_STA_RATE_INFO_RATEID (   x)    (((x) >> 3) & 0x3f)

Definition at line 1026 of file mwl8k.c.

#define MWL8K_STA_RATE_INFO_SHORTGI   0x0002

Definition at line 1028 of file mwl8k.c.

#define MWL8K_STA_RATE_INFO_SHORTPRE   0x8000

Definition at line 1024 of file mwl8k.c.

#define MWL8K_STA_RX_CTRL_DEC_ERR_TYPE   0x08

Definition at line 1034 of file mwl8k.c.

#define MWL8K_STA_RX_CTRL_DECRYPT_ERROR   0x04

Definition at line 1032 of file mwl8k.c.

#define MWL8K_STA_RX_CTRL_KEY_INDEX   0x30

Definition at line 1036 of file mwl8k.c.

#define MWL8K_STA_RX_CTRL_OWNED_BY_HOST   0x02

Definition at line 1031 of file mwl8k.c.

#define MWL8K_STAT_ACK_FAILURE   9

Definition at line 2620 of file mwl8k.c.

#define MWL8K_STAT_FCS_ERROR   24

Definition at line 2622 of file mwl8k.c.

#define MWL8K_STAT_RTS_FAILURE   12

Definition at line 2621 of file mwl8k.c.

#define MWL8K_STAT_RTS_SUCCESS   11

Definition at line 2623 of file mwl8k.c.

#define MWL8K_TX_DESCS   128

Definition at line 1405 of file mwl8k.c.

#define MWL8K_TX_POWER_LEVEL_TOTAL   12

Definition at line 2750 of file mwl8k.c.

#define mwl8k_tx_queues (   priv)    (MWL8K_TX_WMM_QUEUES + (priv)->num_ampdu_queues)

Definition at line 102 of file mwl8k.c.

#define MWL8K_TX_WAIT_TIMEOUT_MS   5000

Definition at line 1496 of file mwl8k.c.

#define MWL8K_TX_WMM_QUEUES   4

Definition at line 99 of file mwl8k.c.

#define MWL8K_TXD_STATUS_FW_OWNED   0x80000000

Definition at line 1382 of file mwl8k.c.

#define MWL8K_TXD_STATUS_MULTICAST_TX   0x00000008

Definition at line 1381 of file mwl8k.c.

#define MWL8K_TXD_STATUS_OK   0x00000001

Definition at line 1378 of file mwl8k.c.

#define MWL8K_TXD_STATUS_OK_MORE_RETRY   0x00000004

Definition at line 1380 of file mwl8k.c.

#define MWL8K_TXD_STATUS_OK_RETRY   0x00000002

Definition at line 1379 of file mwl8k.c.

#define MWL8K_TXD_SUCCESS (   status)
#define MWL8K_UCAST_RATE   0

Definition at line 3347 of file mwl8k.c.

#define MWL8K_UPDATE_ENCRYPTION_TYPE_AES   8

Definition at line 3935 of file mwl8k.c.

#define MWL8K_UPDATE_ENCRYPTION_TYPE_DISABLE   1

Definition at line 3932 of file mwl8k.c.

#define MWL8K_UPDATE_ENCRYPTION_TYPE_MIXED   7

Definition at line 3934 of file mwl8k.c.

#define MWL8K_UPDATE_ENCRYPTION_TYPE_TKIP   4

Definition at line 3933 of file mwl8k.c.

#define MWL8K_UPDATE_ENCRYPTION_TYPE_WEP   0

Definition at line 3931 of file mwl8k.c.

#define MWL8K_USE_AUTO_RATE   0x0002

Definition at line 3346 of file mwl8k.c.

#define MWL8K_VERSION   "0.13"

Definition at line 31 of file mwl8k.c.

#define MWL8K_VIF (   _vif)    ((struct mwl8k_vif *)&((_vif)->drv_priv))

Definition at line 303 of file mwl8k.c.

#define NUM_WEP_KEYS   4

Definition at line 278 of file mwl8k.c.

#define REDUCED_TX_HEADROOM   8

Definition at line 791 of file mwl8k.c.

#define RI_FORMAT (   a)    (a & 0x0001)

Definition at line 1609 of file mwl8k.c.

#define RI_RATE_ID_MCS (   a)    ((a & 0x01f8) >> 3)

Definition at line 1610 of file mwl8k.c.

Enumeration Type Documentation

anonymous enum
Enumerator:
AMPDU_NO_STREAM 
AMPDU_STREAM_NEW 
AMPDU_STREAM_IN_PROGRESS 
AMPDU_STREAM_ACTIVE 

Definition at line 151 of file mwl8k.c.

anonymous enum
Enumerator:
FW_STATE_INIT 
FW_STATE_LOADING_PREF 
FW_STATE_LOADING_ALT 
FW_STATE_ERROR 

Definition at line 487 of file mwl8k.c.

anonymous enum
Enumerator:
MWL8K_ENCR_ENABLE 
MWL8K_ENCR_SET_KEY 
MWL8K_ENCR_REMOVE_KEY 
MWL8K_ENCR_SET_GROUP_KEY 

Definition at line 3924 of file mwl8k.c.

anonymous enum
Enumerator:
MWL8K_ALG_WEP 
MWL8K_ALG_TKIP 
MWL8K_ALG_CCMP 

Definition at line 3937 of file mwl8k.c.

anonymous enum
Enumerator:
MWL8363 
MWL8687 
MWL8366 

Definition at line 5233 of file mwl8k.c.

Enumerator:
MWL8K_BA_CREATE 
MWL8K_BA_UPDATE 
MWL8K_BA_DESTROY 
MWL8K_BA_FLUSH 
MWL8K_BA_CHECK 

Definition at line 3642 of file mwl8k.c.

Function Documentation

MODULE_AUTHOR ( "Lennert Buytenhek <[email protected]>"  )
MODULE_DESCRIPTION ( MWL8K_DESC  )
MODULE_DEVICE_TABLE ( pci  ,
mwl8k_pci_id_table   
)
MODULE_FIRMWARE ( "mwl8k/helper_8363.fw )
MODULE_FIRMWARE ( "mwl8k/fmimage_8363.fw )
MODULE_FIRMWARE ( "mwl8k/helper_8687.fw )
MODULE_FIRMWARE ( "mwl8k/fmimage_8687.fw )
MODULE_FIRMWARE ( "mwl8k/helper_8366.fw )
MODULE_FIRMWARE ( "mwl8k/fmimage_8366.fw )
MODULE_FIRMWARE ( MWL8K_8366_AP_FW(MWL8K_8366_AP_FW_API )
MODULE_LICENSE ( "GPL"  )
module_param ( ap_mode_default  ,
bool  ,
 
)
MODULE_PARM_DESC ( ap_mode_default  ,
"Set to 1 to make ap mode the default instead of sta mode  
)
module_pci_driver ( mwl8k_driver  )
MODULE_VERSION ( MWL8K_VERSION  )

Variable Documentation