#define pr_fmt(fmt) …
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/delay.h>
#include <linux/sched.h>
#include <linux/skbuff.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <linux/if_arp.h>
#include <net/mac80211.h>
#include <asm/div64.h>
#include "iwl-nvm-utils.h"
#include "iwl-io.h"
#include "iwl-trans.h"
#include "iwl-op-mode.h"
#include "iwl-drv.h"
#include "iwl-modparams.h"
#include "iwl-prph.h"
#include "dev.h"
#include "calib.h"
#include "agn.h"
#define DRV_DESCRIPTION …
MODULE_DESCRIPTION(…);
MODULE_LICENSE(…) …;
MODULE_IMPORT_NS(…);
static const struct iwl_hcmd_names iwl_dvm_cmd_names[] = …;
static const struct iwl_hcmd_arr iwl_dvm_groups[] = …;
static const struct iwl_op_mode_ops iwl_dvm_ops;
void iwl_update_chain_flags(struct iwl_priv *priv)
{ … }
static void iwl_set_beacon_tim(struct iwl_priv *priv,
struct iwl_tx_beacon_cmd *tx_beacon_cmd,
u8 *beacon, u32 frame_size)
{ … }
int iwlagn_send_beacon_cmd(struct iwl_priv *priv)
{ … }
static void iwl_bg_beacon_update(struct work_struct *work)
{ … }
static void iwl_bg_bt_runtime_config(struct work_struct *work)
{ … }
static void iwl_bg_bt_full_concurrency(struct work_struct *work)
{ … }
int iwl_send_statistics_request(struct iwl_priv *priv, u8 flags, bool clear)
{ … }
static void iwl_bg_statistics_periodic(struct timer_list *t)
{ … }
static void iwl_print_cont_event_trace(struct iwl_priv *priv, u32 base,
u32 start_idx, u32 num_events,
u32 capacity, u32 mode)
{ … }
static void iwl_continuous_event_trace(struct iwl_priv *priv)
{ … }
static void iwl_bg_ucode_trace(struct timer_list *t)
{ … }
static void iwl_bg_tx_flush(struct work_struct *work)
{ … }
static const u8 iwlagn_bss_ac_to_fifo[] = …;
static const u8 iwlagn_bss_ac_to_queue[] = …;
static const u8 iwlagn_pan_ac_to_fifo[] = …;
static const u8 iwlagn_pan_ac_to_queue[] = …;
static void iwl_init_context(struct iwl_priv *priv, u32 ucode_flags)
{ … }
static void iwl_rf_kill_ct_config(struct iwl_priv *priv)
{ … }
static int iwlagn_send_calib_cfg_rt(struct iwl_priv *priv, u32 cfg)
{ … }
static int iwlagn_send_tx_ant_config(struct iwl_priv *priv, u8 valid_tx_ant)
{ … }
static void iwl_send_bt_config(struct iwl_priv *priv)
{ … }
int iwl_alive_start(struct iwl_priv *priv)
{ … }
static void iwl_clear_driver_stations(struct iwl_priv *priv)
{ … }
void iwl_down(struct iwl_priv *priv)
{ … }
static void iwl_bg_run_time_calib_work(struct work_struct *work)
{ … }
void iwlagn_prepare_restart(struct iwl_priv *priv)
{ … }
static void iwl_bg_restart(struct work_struct *data)
{ … }
static void iwl_setup_deferred_work(struct iwl_priv *priv)
{ … }
void iwl_cancel_deferred_work(struct iwl_priv *priv)
{ … }
static int iwl_init_drv(struct iwl_priv *priv)
{ … }
static void iwl_uninit_drv(struct iwl_priv *priv)
{ … }
static void iwl_set_hw_params(struct iwl_priv *priv)
{ … }
static void iwl_option_config(struct iwl_priv *priv)
{ … }
static int iwl_eeprom_init_hw_params(struct iwl_priv *priv)
{ … }
static int iwl_nvm_check_version(struct iwl_nvm_data *data,
struct iwl_trans *trans)
{ … }
static struct iwl_op_mode *iwl_op_mode_dvm_start(struct iwl_trans *trans,
const struct iwl_cfg *cfg,
const struct iwl_fw *fw,
struct dentry *dbgfs_dir)
{ … }
static void iwl_op_mode_dvm_stop(struct iwl_op_mode *op_mode)
{ … }
static const char * const desc_lookup_text[] = …;
static struct { … } advanced_lookup[] = …;
static const char *desc_lookup(u32 num)
{ … }
#define ERROR_START_OFFSET …
#define ERROR_ELEM_SIZE …
static void iwl_dump_nic_error_log(struct iwl_priv *priv)
{ … }
#define EVENT_START_OFFSET …
static int iwl_print_event_log(struct iwl_priv *priv, u32 start_idx,
u32 num_events, u32 mode,
int pos, char **buf, size_t bufsz)
{ … }
static int iwl_print_last_event_logs(struct iwl_priv *priv, u32 capacity,
u32 num_wraps, u32 next_entry,
u32 size, u32 mode,
int pos, char **buf, size_t bufsz)
{ … }
#define DEFAULT_DUMP_EVENT_LOG_ENTRIES …
int iwl_dump_nic_event_log(struct iwl_priv *priv, bool full_log,
char **buf)
{ … }
static void iwlagn_fw_error(struct iwl_priv *priv, bool ondemand)
{ … }
static void iwl_nic_error(struct iwl_op_mode *op_mode, bool sync)
{ … }
static void iwl_cmd_queue_full(struct iwl_op_mode *op_mode)
{ … }
#define EEPROM_RF_CONFIG_TYPE_MAX …
static void iwl_nic_config(struct iwl_op_mode *op_mode)
{ … }
static void iwl_wimax_active(struct iwl_op_mode *op_mode)
{ … }
static void iwl_stop_sw_queue(struct iwl_op_mode *op_mode, int queue)
{ … }
static void iwl_wake_sw_queue(struct iwl_op_mode *op_mode, int queue)
{ … }
void iwlagn_lift_passive_no_rx(struct iwl_priv *priv)
{ … }
static void iwl_free_skb(struct iwl_op_mode *op_mode, struct sk_buff *skb)
{ … }
static bool iwl_set_hw_rfkill_state(struct iwl_op_mode *op_mode, bool state)
{ … }
static const struct iwl_op_mode_ops iwl_dvm_ops = …;
static int __init iwl_init(void)
{ … }
module_init(…) …;
static void __exit iwl_exit(void)
{ … }
module_exit(iwl_exit);