Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions | Variables
rt2x00lib.h File Reference

Go to the source code of this file.

Data Structures

struct  rt2x00_rate
 

Macros

#define WATCHDOG_INTERVAL   round_jiffies_relative(HZ)
 
#define LINK_TUNE_INTERVAL   round_jiffies_relative(HZ)
 
#define AGC_INTERVAL   round_jiffies_relative(4 * HZ)
 
#define VCO_INTERVAL   round_jiffies_relative(10 * HZ) /* 10 sec */
 
#define DEV_RATE_CCK   0x0001
 
#define DEV_RATE_OFDM   0x0002
 
#define DEV_RATE_SHORT_PREAMBLE   0x0004
 
#define RATE_MCS(__mode, __mcs)   ((((__mode) & 0x00ff) << 8) | ((__mcs) & 0x00ff))
 

Functions

int rt2x00lib_enable_radio (struct rt2x00_dev *rt2x00dev)
 
void rt2x00lib_disable_radio (struct rt2x00_dev *rt2x00dev)
 
int rt2x00lib_start (struct rt2x00_dev *rt2x00dev)
 
void rt2x00lib_stop (struct rt2x00_dev *rt2x00dev)
 
void rt2x00lib_config_intf (struct rt2x00_dev *rt2x00dev, struct rt2x00_intf *intf, enum nl80211_iftype type, const u8 *mac, const u8 *bssid)
 
void rt2x00lib_config_erp (struct rt2x00_dev *rt2x00dev, struct rt2x00_intf *intf, struct ieee80211_bss_conf *conf, u32 changed)
 
void rt2x00lib_config_antenna (struct rt2x00_dev *rt2x00dev, struct antenna_setup ant)
 
void rt2x00lib_config (struct rt2x00_dev *rt2x00dev, struct ieee80211_conf *conf, const unsigned int changed_flags)
 
struct sk_buffrt2x00queue_alloc_rxskb (struct queue_entry *entry, gfp_t gfp)
 
void rt2x00queue_free_skb (struct queue_entry *entry)
 
void rt2x00queue_align_frame (struct sk_buff *skb)
 
void rt2x00queue_insert_l2pad (struct sk_buff *skb, unsigned int header_length)
 
void rt2x00queue_remove_l2pad (struct sk_buff *skb, unsigned int header_length)
 
int rt2x00queue_write_tx_frame (struct data_queue *queue, struct sk_buff *skb, bool local)
 
int rt2x00queue_update_beacon (struct rt2x00_dev *rt2x00dev, struct ieee80211_vif *vif)
 
int rt2x00queue_update_beacon_locked (struct rt2x00_dev *rt2x00dev, struct ieee80211_vif *vif)
 
int rt2x00queue_clear_beacon (struct rt2x00_dev *rt2x00dev, struct ieee80211_vif *vif)
 
void rt2x00queue_index_inc (struct queue_entry *entry, enum queue_index index)
 
void rt2x00queue_init_queues (struct rt2x00_dev *rt2x00dev)
 
int rt2x00queue_initialize (struct rt2x00_dev *rt2x00dev)
 
void rt2x00queue_uninitialize (struct rt2x00_dev *rt2x00dev)
 
int rt2x00queue_allocate (struct rt2x00_dev *rt2x00dev)
 
void rt2x00queue_free (struct rt2x00_dev *rt2x00dev)
 
void rt2x00link_update_stats (struct rt2x00_dev *rt2x00dev, struct sk_buff *skb, struct rxdone_entry_desc *rxdesc)
 
void rt2x00link_start_tuner (struct rt2x00_dev *rt2x00dev)
 
void rt2x00link_stop_tuner (struct rt2x00_dev *rt2x00dev)
 
void rt2x00link_reset_tuner (struct rt2x00_dev *rt2x00dev, bool antenna)
 
void rt2x00link_start_watchdog (struct rt2x00_dev *rt2x00dev)
 
void rt2x00link_stop_watchdog (struct rt2x00_dev *rt2x00dev)
 
void rt2x00link_start_agc (struct rt2x00_dev *rt2x00dev)
 
void rt2x00link_start_vcocal (struct rt2x00_dev *rt2x00dev)
 
void rt2x00link_stop_agc (struct rt2x00_dev *rt2x00dev)
 
void rt2x00link_stop_vcocal (struct rt2x00_dev *rt2x00dev)
 
void rt2x00link_register (struct rt2x00_dev *rt2x00dev)
 

Variables

struct rt2x00_rate rt2x00_supported_rates [12]
 

Macro Definition Documentation

#define AGC_INTERVAL   round_jiffies_relative(4 * HZ)

Definition at line 35 of file rt2x00lib.h.

#define DEV_RATE_CCK   0x0001

Definition at line 43 of file rt2x00lib.h.

#define DEV_RATE_OFDM   0x0002

Definition at line 44 of file rt2x00lib.h.

#define DEV_RATE_SHORT_PREAMBLE   0x0004

Definition at line 45 of file rt2x00lib.h.

#define LINK_TUNE_INTERVAL   round_jiffies_relative(HZ)

Definition at line 34 of file rt2x00lib.h.

#define RATE_MCS (   __mode,
  __mcs 
)    ((((__mode) & 0x00ff) << 8) | ((__mcs) & 0x00ff))

Definition at line 61 of file rt2x00lib.h.

#define VCO_INTERVAL   round_jiffies_relative(10 * HZ) /* 10 sec */

Definition at line 36 of file rt2x00lib.h.

#define WATCHDOG_INTERVAL   round_jiffies_relative(HZ)

Definition at line 33 of file rt2x00lib.h.

Function Documentation

void rt2x00lib_config ( struct rt2x00_dev rt2x00dev,
struct ieee80211_conf conf,
const unsigned int  changed_flags 
)

Definition at line 205 of file rt2x00config.c.

void rt2x00lib_config_antenna ( struct rt2x00_dev rt2x00dev,
struct antenna_setup  ant 
)

Definition at line 116 of file rt2x00config.c.

void rt2x00lib_config_erp ( struct rt2x00_dev rt2x00dev,
struct rt2x00_intf intf,
struct ieee80211_bss_conf conf,
u32  changed 
)

Definition at line 82 of file rt2x00config.c.

void rt2x00lib_config_intf ( struct rt2x00_dev rt2x00dev,
struct rt2x00_intf intf,
enum nl80211_iftype  type,
const u8 mac,
const u8 bssid 
)

Definition at line 32 of file rt2x00config.c.

void rt2x00lib_disable_radio ( struct rt2x00_dev rt2x00dev)

Definition at line 102 of file rt2x00dev.c.

int rt2x00lib_enable_radio ( struct rt2x00_dev rt2x00dev)

Definition at line 54 of file rt2x00dev.c.

int rt2x00lib_start ( struct rt2x00_dev rt2x00dev)

Definition at line 1069 of file rt2x00dev.c.

void rt2x00lib_stop ( struct rt2x00_dev rt2x00dev)

Definition at line 1105 of file rt2x00dev.c.

void rt2x00link_register ( struct rt2x00_dev rt2x00dev)

rt2x00link_register - Initialize link tuning & watchdog functionality : Pointer to &struct rt2x00_dev.

Initialize work structure and all link tuning and watchdog related parameters. This will not start the periodic work itself.

Definition at line 513 of file rt2x00link.c.

void rt2x00link_reset_tuner ( struct rt2x00_dev rt2x00dev,
bool  antenna 
)

rt2x00link_reset_tuner - Reset periodic link tuner work : Pointer to &struct rt2x00_dev. : Should the antenna tuning also be reset

The VGC limit configured in the hardware will be reset to 0 which forces the driver to rediscover the correct value for the current association. This is needed when configuration options have changed which could drastically change the SNR level or link quality (i.e. changing the antenna setting).

Resetting the link tuner will also cause the periodic work counter to be reset. Any driver which has a fixed limit on the number of rounds the link tuner is supposed to work will accept the tuner actions again if this limit was previously reached.

If is set to true a the software antenna diversity tuning will also be reset.

Definition at line 294 of file rt2x00link.c.

void rt2x00link_start_agc ( struct rt2x00_dev rt2x00dev)

rt2x00link_start_agc - Start periodic gain calibration : Pointer to &struct rt2x00_dev.

Definition at line 439 of file rt2x00link.c.

void rt2x00link_start_tuner ( struct rt2x00_dev rt2x00dev)

rt2x00link_start_tuner - Start periodic link tuner work : Pointer to &struct rt2x00_dev.

This start the link tuner periodic work, this work will be executed periodically until &rt2x00link_stop_tuner has been called.

While scanning, link tuning is disabled. By default the most sensitive settings will be used to make sure that all beacons and probe responses will be received during the scan.

Definition at line 260 of file rt2x00link.c.

void rt2x00link_start_vcocal ( struct rt2x00_dev rt2x00dev)

rt2x00link_start_vcocal - Start periodic VCO calibration : Pointer to &struct rt2x00_dev.

Definition at line 450 of file rt2x00link.c.

void rt2x00link_start_watchdog ( struct rt2x00_dev rt2x00dev)

rt2x00link_start_watchdog - Start periodic watchdog monitoring : Pointer to &struct rt2x00_dev.

This start the watchdog periodic work, this work will *be executed periodically until &rt2x00link_stop_watchdog has been called.

Definition at line 402 of file rt2x00link.c.

void rt2x00link_stop_agc ( struct rt2x00_dev rt2x00dev)

rt2x00link_stop_agc - Stop periodic gain calibration : Pointer to &struct rt2x00_dev.

Definition at line 461 of file rt2x00link.c.

void rt2x00link_stop_tuner ( struct rt2x00_dev rt2x00dev)

rt2x00link_stop_tuner - Stop periodic link tuner work : Pointer to &struct rt2x00_dev.

After this function completed the link tuner will not be running until &rt2x00link_start_tuner is called.

Definition at line 289 of file rt2x00link.c.

void rt2x00link_stop_vcocal ( struct rt2x00_dev rt2x00dev)

rt2x00link_stop_vcocal - Stop periodic VCO calibration : Pointer to &struct rt2x00_dev.

Definition at line 466 of file rt2x00link.c.

void rt2x00link_stop_watchdog ( struct rt2x00_dev rt2x00dev)

rt2x00link_stop_watchdog - Stop periodic watchdog monitoring : Pointer to &struct rt2x00_dev.

After this function completed the watchdog monitoring will not be running until &rt2x00link_start_watchdog is called.

Definition at line 413 of file rt2x00link.c.

void rt2x00link_update_stats ( struct rt2x00_dev rt2x00dev,
struct sk_buff skb,
struct rxdone_entry_desc rxdesc 
)

rt2x00link_update_stats - Update link statistics from RX frame : Pointer to &struct rt2x00_dev. : Received frame : Received frame descriptor

Update link statistics based on the information from the received frame descriptor.

Definition at line 219 of file rt2x00link.c.

void rt2x00queue_align_frame ( struct sk_buff skb)

rt2x00queue_align_frame - Align 802.11 frame to 4-byte boundary : The skb to align

Align the start of the 802.11 frame to a 4-byte boundary, this could mean the payload is not aligned properly though.

Definition at line 138 of file rt2x00queue.c.

struct sk_buff* rt2x00queue_alloc_rxskb ( struct queue_entry *  entry,
gfp_t  gfp 
)
read

DOC: Queue handlers rt2x00queue_alloc_rxskb - allocate a skb for RX purposes. : The entry for which the skb will be applicable.

Definition at line 36 of file rt2x00queue.c.

int rt2x00queue_allocate ( struct rt2x00_dev rt2x00dev)

Definition at line 1241 of file rt2x00queue.c.

int rt2x00queue_clear_beacon ( struct rt2x00_dev rt2x00dev,
struct ieee80211_vif vif 
)

rt2x00queue_clear_beacon - Clear beacon in hardware : Pointer to &struct rt2x00_dev. : Interface for which the beacon should be updated.

Definition at line 694 of file rt2x00queue.c.

void rt2x00queue_free ( struct rt2x00_dev rt2x00dev)

Definition at line 1293 of file rt2x00queue.c.

void rt2x00queue_free_skb ( struct queue_entry *  entry)

rt2x00queue_free_skb - free a skb : The entry for which the skb will be applicable.

Definition at line 128 of file rt2x00queue.c.

void rt2x00queue_index_inc ( struct queue_entry *  entry,
enum queue_index  index 
)

rt2x00queue_index_inc - Index incrementation function : Queue entry (&struct queue_entry) to perform the action on. : Index type (&enum queue_index) to perform the action on.

This function will increase the requested index on the entry's queue, it will grab the appropriate locks and handle queue overflow events by resetting the index to the start of the queue.

Definition at line 851 of file rt2x00queue.c.

void rt2x00queue_init_queues ( struct rt2x00_dev rt2x00dev)

rt2x00queue_init_queues - Initialize all data queues : Pointer to &struct rt2x00_dev.

This function will loop through all available queues to clear all index numbers and set the queue entry to the correct initialization state.

Definition at line 1091 of file rt2x00queue.c.

int rt2x00queue_initialize ( struct rt2x00_dev rt2x00dev)

Definition at line 1174 of file rt2x00queue.c.

void rt2x00queue_insert_l2pad ( struct sk_buff skb,
unsigned int  header_length 
)

rt2x00queue_insert_l2pad - Align 802.11 header & payload to 4-byte boundary : The skb to align : Length of 802.11 header

Apply L2 padding to align both header and payload to 4-byte boundary

Definition at line 151 of file rt2x00queue.c.

void rt2x00queue_remove_l2pad ( struct sk_buff skb,
unsigned int  header_length 
)

rt2x00queue_insert_l2pad - Remove L2 padding from 802.11 frame : The skb to align : Length of 802.11 header

Remove L2 padding used to align both header and payload to 4-byte boundary, by removing the L2 padding the header will no longer be 4-byte aligned.

Definition at line 187 of file rt2x00queue.c.

void rt2x00queue_uninitialize ( struct rt2x00_dev rt2x00dev)

Definition at line 1214 of file rt2x00queue.c.

int rt2x00queue_update_beacon ( struct rt2x00_dev rt2x00dev,
struct ieee80211_vif vif 
)

rt2x00queue_update_beacon - Send new beacon from mac80211 to hardware. Handles locking by itself (mutex). : Pointer to &struct rt2x00_dev. : Interface for which the beacon should be updated.

Definition at line 763 of file rt2x00queue.c.

int rt2x00queue_update_beacon_locked ( struct rt2x00_dev rt2x00dev,
struct ieee80211_vif vif 
)

rt2x00queue_update_beacon_locked - Send new beacon from mac80211 to hardware. Caller needs to ensure locking. : Pointer to &struct rt2x00_dev. : Interface for which the beacon should be updated.

Definition at line 721 of file rt2x00queue.c.

int rt2x00queue_write_tx_frame ( struct data_queue queue,
struct sk_buff skb,
bool  local 
)

rt2x00queue_write_tx_frame - Write TX frame to hardware : Queue over which the frame should be send : The skb to send : frame is not from mac80211

Definition at line 585 of file rt2x00queue.c.

Variable Documentation

struct rt2x00_rate rt2x00_supported_rates[12]

Definition at line 716 of file rt2x00dev.c.