#include <linux/module.h>
#include <linux/interrupt.h>
#include <linux/firmware.h>
#include <linux/delay.h>
#include <linux/irq.h>
#include <linux/crc32.h>
#include <linux/etherdevice.h>
#include <linux/vmalloc.h>
#include <linux/slab.h>
#include <linux/netdevice.h>
#include "wl1251.h"
#include "wl12xx_80211.h"
#include "reg.h"
#include "io.h"
#include "cmd.h"
#include "event.h"
#include "tx.h"
#include "rx.h"
#include "ps.h"
#include "init.h"
#include "debugfs.h"
#include "boot.h"
void wl1251_enable_interrupts(struct wl1251 *wl)
{ … }
void wl1251_disable_interrupts(struct wl1251 *wl)
{ … }
static int wl1251_power_off(struct wl1251 *wl)
{ … }
static int wl1251_power_on(struct wl1251 *wl)
{ … }
static int wl1251_fetch_firmware(struct wl1251 *wl)
{ … }
static int wl1251_fetch_nvs(struct wl1251 *wl)
{ … }
static void wl1251_fw_wakeup(struct wl1251 *wl)
{ … }
static int wl1251_chip_wakeup(struct wl1251 *wl)
{ … }
#define WL1251_IRQ_LOOP_COUNT …
static void wl1251_irq_work(struct work_struct *work)
{ … }
static int wl1251_join(struct wl1251 *wl, u8 bss_type, u8 channel,
u16 beacon_interval, u8 dtim_period)
{ … }
static void wl1251_op_tx(struct ieee80211_hw *hw,
struct ieee80211_tx_control *control,
struct sk_buff *skb)
{ … }
static int wl1251_op_start(struct ieee80211_hw *hw)
{ … }
static void wl1251_op_stop(struct ieee80211_hw *hw, bool suspend)
{ … }
static int wl1251_op_add_interface(struct ieee80211_hw *hw,
struct ieee80211_vif *vif)
{ … }
static void wl1251_op_remove_interface(struct ieee80211_hw *hw,
struct ieee80211_vif *vif)
{ … }
static int wl1251_build_null_data(struct wl1251 *wl)
{ … }
static int wl1251_build_qos_null_data(struct wl1251 *wl)
{ … }
static bool wl1251_can_do_pm(struct ieee80211_conf *conf, struct wl1251 *wl)
{ … }
static int wl1251_op_config(struct ieee80211_hw *hw, u32 changed)
{ … }
struct wl1251_filter_params { … };
static u64 wl1251_op_prepare_multicast(struct ieee80211_hw *hw,
struct netdev_hw_addr_list *mc_list)
{ … }
#define WL1251_SUPPORTED_FILTERS …
static void wl1251_op_configure_filter(struct ieee80211_hw *hw,
unsigned int changed,
unsigned int *total, u64 multicast)
{ … }
static int wl1251_set_key_type(struct wl1251 *wl,
struct wl1251_cmd_set_keys *key,
enum set_key_cmd cmd,
struct ieee80211_key_conf *mac80211_key,
const u8 *addr)
{ … }
static int wl1251_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
struct ieee80211_vif *vif,
struct ieee80211_sta *sta,
struct ieee80211_key_conf *key)
{ … }
static int wl1251_op_hw_scan(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
struct ieee80211_scan_request *hw_req)
{ … }
static int wl1251_op_set_rts_threshold(struct ieee80211_hw *hw, u32 value)
{ … }
static void wl1251_op_bss_info_changed(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
struct ieee80211_bss_conf *bss_conf,
u64 changed)
{ … }
static struct ieee80211_rate wl1251_rates[] = …;
static struct ieee80211_channel wl1251_channels[] = …;
static int wl1251_op_conf_tx(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
unsigned int link_id, u16 queue,
const struct ieee80211_tx_queue_params *params)
{ … }
static int wl1251_op_get_survey(struct ieee80211_hw *hw, int idx,
struct survey_info *survey)
{ … }
static struct ieee80211_supported_band wl1251_band_2ghz = …;
static const struct ieee80211_ops wl1251_ops = …;
static int wl1251_read_eeprom_byte(struct wl1251 *wl, off_t offset, u8 *data)
{ … }
static int wl1251_read_eeprom(struct wl1251 *wl, off_t offset,
u8 *data, size_t len)
{ … }
static int wl1251_read_eeprom_mac(struct wl1251 *wl)
{ … }
#define NVS_OFF_MAC_LEN …
#define NVS_OFF_MAC_ADDR_LO …
#define NVS_OFF_MAC_ADDR_HI …
#define NVS_OFF_MAC_DATA …
static int wl1251_check_nvs_mac(struct wl1251 *wl)
{ … }
static int wl1251_read_nvs_mac(struct wl1251 *wl)
{ … }
static int wl1251_write_nvs_mac(struct wl1251 *wl)
{ … }
static int wl1251_register_hw(struct wl1251 *wl)
{ … }
int wl1251_init_ieee80211(struct wl1251 *wl)
{ … }
EXPORT_SYMBOL_GPL(…);
struct ieee80211_hw *wl1251_alloc_hw(void)
{ … }
EXPORT_SYMBOL_GPL(…);
int wl1251_free_hw(struct wl1251 *wl)
{ … }
EXPORT_SYMBOL_GPL(…);
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_AUTHOR(…) …;
MODULE_FIRMWARE(…);
MODULE_FIRMWARE(…);