Linux Kernel
3.7.1
|
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/pci.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 <asm/unaligned.h>
#include <net/mac80211.h>
#include "common.h"
#include "3945.h"
Go to the source code of this file.
Macros | |
#define | IL_DECLARE_RATE_INFO(r, ip, in, rp, rn, pp, np) |
#define | IL_EVT_DISABLE (0) |
#define | IL_EVT_DISABLE_SIZE (1532/32) |
#define | IL_DELAY_NEXT_SCAN_AFTER_ASSOC (HZ*6) |
#define | IL_TEMPERATURE_LIMIT_TIMER 6 |
#define | IL_MAX_GAIN_ENTRIES 78 |
#define | IL_CCK_FROM_OFDM_POWER_DIFF -5 |
#define | IL_CCK_FROM_OFDM_IDX_DIFF (10) |
#define | REG_RECALIB_PERIOD (60) |
Variables | |
struct il3945_rate_info | il3945_rates [RATE_COUNT_3945] |
struct il_ops | il3945_ops |
DEFINE_PCI_DEVICE_TABLE | ( | il3945_hw_card_ids | ) |
il3945_commit_rxon - commit staging_rxon to hardware
The RXON command in staging_rxon is committed to the hardware and the active_rxon structure is updated with the new data. This function correctly transitions out of the RXON_ASSOC_MSK state if a HW tune is required based on the RXON structure changes.
il3945_disable_events - Disable selected events in uCode event log
Disable an event by writing "1"s into "disable" bitmap in SRAM. Bit position corresponds to Event # (id/type). Default values of 0 enable uCode events to be logged. Use for only special debugging. This function is just a placeholder as-is, you'll need to provide the special bits! ... ... and set IL_EVT_DISABLE to 1.
void il3945_hw_build_tx_cmd_rate | ( | struct il_priv * | il, |
struct il_device_cmd * | cmd, | ||
struct ieee80211_tx_info * | info, | ||
struct ieee80211_hdr * | hdr, | ||
int | sta_id | ||
) |
int il3945_hw_tx_queue_init | ( | struct il_priv * | il, |
struct il_tx_queue * | txq | ||
) |
int il3945_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 | ||
) |
void il3945_hw_txq_free_tfd | ( | struct il_priv * | il, |
struct il_tx_queue * | txq | ||
) |
il3945_reg_txpower_periodic - called when time to check our temperature.
– reset periodic timer – see if temp has changed enough to warrant re-calibration ... if so: – correct coeffs for temp (can reset temp timer) – save this temp as "last", – send new set of gain settings to NIC NOTE: This should continue working, even when we're not associated, so we can keep our internal table of scan powers current.
il3945_txpower_set_from_eeprom - Set channel power info based on EEPROM
Second pass (during init) to set up il->channel_info
Set up Tx-power settings in our channel info database for each VALID (for this geo/SKU) channel, at all Tx data rates, based on eeprom values and current temperature.
Since this is based on current temperature (at init time), these values may not be valid for very long, but it gives us a starting/default point, and allows us to active (i.e. using Tx) scan.
This does not write values to NIC, just sets up our internal table.
MODULE_DEVICE_TABLE | ( | pci | , |
il3945_hw_card_ids | |||
) |
struct il3945_rate_info il3945_rates[RATE_COUNT_3945] |