#define pr_fmt(fmt) …
#include <linux/dma-mapping.h>
#include <linux/slab.h>
#include <linux/ath9k_platform.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/of_net.h>
#include <linux/nvmem-consumer.h>
#include <linux/relay.h>
#include <linux/dmi.h>
#include <net/ieee80211_radiotap.h>
#include "ath9k.h"
struct ath9k_eeprom_ctx { … };
static char *dev_info = …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
static unsigned int ath9k_debug = …;
module_param_named(debug, ath9k_debug, uint, 0);
MODULE_PARM_DESC(…) …;
int ath9k_modparam_nohwcrypt;
module_param_named(nohwcrypt, ath9k_modparam_nohwcrypt, int, 0444);
MODULE_PARM_DESC(…) …;
int ath9k_led_blink;
module_param_named(blink, ath9k_led_blink, int, 0444);
MODULE_PARM_DESC(…) …;
static int ath9k_led_active_high = …;
module_param_named(led_active_high, ath9k_led_active_high, int, 0444);
MODULE_PARM_DESC(…) …;
static int ath9k_btcoex_enable;
module_param_named(btcoex_enable, ath9k_btcoex_enable, int, 0444);
MODULE_PARM_DESC(…) …;
static int ath9k_bt_ant_diversity;
module_param_named(bt_ant_diversity, ath9k_bt_ant_diversity, int, 0444);
MODULE_PARM_DESC(…) …;
static int ath9k_ps_enable;
module_param_named(ps_enable, ath9k_ps_enable, int, 0444);
MODULE_PARM_DESC(…) …;
#ifdef CONFIG_ATH9K_CHANNEL_CONTEXT
int ath9k_use_chanctx;
module_param_named(use_chanctx, ath9k_use_chanctx, int, 0444);
MODULE_PARM_DESC(…) …;
#endif
int ath9k_use_msi;
module_param_named(use_msi, ath9k_use_msi, int, 0444);
MODULE_PARM_DESC(…) …;
bool is_ath9k_unloaded;
#ifdef CONFIG_MAC80211_LEDS
static const struct ieee80211_tpt_blink ath9k_tpt_blink[] = …;
#endif
static int __init set_use_msi(const struct dmi_system_id *dmi)
{ … }
static const struct dmi_system_id ath9k_quirks[] __initconst = …;
static void ath9k_deinit_softc(struct ath_softc *sc);
static void ath9k_op_ps_wakeup(struct ath_common *common)
{ … }
static void ath9k_op_ps_restore(struct ath_common *common)
{ … }
static const struct ath_ps_ops ath9k_ps_ops = …;
static void ath9k_iowrite32(void *hw_priv, u32 val, u32 reg_offset)
{ … }
static unsigned int ath9k_ioread32(void *hw_priv, u32 reg_offset)
{ … }
static void ath9k_multi_ioread32(void *hw_priv, u32 *addr,
u32 *val, u16 count)
{ … }
static unsigned int __ath9k_reg_rmw(struct ath_softc *sc, u32 reg_offset,
u32 set, u32 clr)
{ … }
static unsigned int ath9k_reg_rmw(void *hw_priv, u32 reg_offset, u32 set, u32 clr)
{ … }
static void ath9k_reg_notifier(struct wiphy *wiphy,
struct regulatory_request *request)
{ … }
int ath_descdma_setup(struct ath_softc *sc, struct ath_descdma *dd,
struct list_head *head, const char *name,
int nbuf, int ndesc, bool is_tx)
{ … }
static int ath9k_init_queues(struct ath_softc *sc)
{ … }
static void ath9k_init_misc(struct ath_softc *sc)
{ … }
static void ath9k_init_pcoem_platform(struct ath_softc *sc)
{ … }
static void ath9k_eeprom_request_cb(const struct firmware *eeprom_blob,
void *ctx)
{ … }
static int ath9k_eeprom_request(struct ath_softc *sc, const char *name)
{ … }
static void ath9k_eeprom_release(struct ath_softc *sc)
{ … }
static int ath9k_nvmem_request_eeprom(struct ath_softc *sc)
{ … }
static int ath9k_init_platform(struct ath_softc *sc)
{ … }
static int ath9k_of_init(struct ath_softc *sc)
{ … }
static int ath9k_init_softc(u16 devid, struct ath_softc *sc,
const struct ath_bus_ops *bus_ops)
{ … }
static void ath9k_init_band_txpower(struct ath_softc *sc, int band)
{ … }
static void ath9k_init_txpower_limits(struct ath_softc *sc)
{ … }
static const struct ieee80211_iface_limit if_limits[] = …;
#ifdef CONFIG_ATH9K_CHANNEL_CONTEXT
static const struct ieee80211_iface_limit if_limits_multi[] = …;
static const struct ieee80211_iface_combination if_comb_multi[] = …;
#endif
static const struct ieee80211_iface_combination if_comb[] = …;
#ifdef CONFIG_ATH9K_CHANNEL_CONTEXT
static void ath9k_set_mcc_capab(struct ath_softc *sc, struct ieee80211_hw *hw)
{ … }
#endif
static void ath9k_set_hw_capab(struct ath_softc *sc, struct ieee80211_hw *hw)
{ … }
int ath9k_init_device(u16 devid, struct ath_softc *sc,
const struct ath_bus_ops *bus_ops)
{ … }
static void ath9k_deinit_softc(struct ath_softc *sc)
{ … }
void ath9k_deinit_device(struct ath_softc *sc)
{ … }
static int __init ath9k_init(void)
{ … }
module_init(…) …;
static void __exit ath9k_exit(void)
{ … }
module_exit(ath9k_exit);