#include <linux/module.h>
#include <linux/firmware.h>
#include <linux/of.h>
#include <linux/property.h>
#include <linux/dmi.h>
#include <linux/ctype.h>
#include <linux/pm_qos.h>
#include <linux/nvmem-consumer.h>
#include <asm/byteorder.h>
#include "core.h"
#include "mac.h"
#include "htc.h"
#include "hif.h"
#include "wmi.h"
#include "bmi.h"
#include "debug.h"
#include "htt.h"
#include "testmode.h"
#include "wmi-ops.h"
#include "coredump.h"
#include "leds.h"
unsigned int ath10k_debug_mask;
EXPORT_SYMBOL(…);
static unsigned int ath10k_cryptmode_param;
static bool uart_print;
static bool skip_otp;
static bool fw_diag_log;
unsigned int ath10k_frame_mode = …;
unsigned long ath10k_coredump_mask = …;
module_param_named(debug_mask, ath10k_debug_mask, uint, 0644);
module_param_named(cryptmode, ath10k_cryptmode_param, uint, 0644);
module_param(uart_print, bool, 0644);
module_param(skip_otp, bool, 0644);
module_param(fw_diag_log, bool, 0644);
module_param_named(frame_mode, ath10k_frame_mode, uint, 0644);
module_param_named(coredump_mask, ath10k_coredump_mask, ulong, 0444);
MODULE_PARM_DESC(…) …;
MODULE_PARM_DESC(…) …;
MODULE_PARM_DESC(…) …;
MODULE_PARM_DESC(…) …;
MODULE_PARM_DESC(…) …;
MODULE_PARM_DESC(…) …;
MODULE_PARM_DESC(…) …;
static const struct ath10k_hw_params ath10k_hw_params_list[] = …;
static const char *const ath10k_core_fw_feature_str[] = …;
static unsigned int ath10k_core_get_fw_feature_str(char *buf,
size_t buf_len,
enum ath10k_fw_features feat)
{ … }
void ath10k_core_get_fw_features_str(struct ath10k *ar,
char *buf,
size_t buf_len)
{ … }
static void ath10k_send_suspend_complete(struct ath10k *ar)
{ … }
static int ath10k_init_sdio(struct ath10k *ar, enum ath10k_firmware_mode mode)
{ … }
static int ath10k_init_configure_target(struct ath10k *ar)
{ … }
static const struct firmware *ath10k_fetch_fw_file(struct ath10k *ar,
const char *dir,
const char *file)
{ … }
static int ath10k_push_board_ext_data(struct ath10k *ar, const void *data,
size_t data_len)
{ … }
static int ath10k_core_get_board_id_from_otp(struct ath10k *ar)
{ … }
static void ath10k_core_check_bdfext(const struct dmi_header *hdr, void *data)
{ … }
static int ath10k_core_check_smbios(struct ath10k *ar)
{ … }
int ath10k_core_check_dt(struct ath10k *ar)
{ … }
EXPORT_SYMBOL(…);
static int ath10k_download_fw(struct ath10k *ar)
{ … }
void ath10k_core_free_board_files(struct ath10k *ar)
{ … }
EXPORT_SYMBOL(…);
static void ath10k_core_free_firmware_files(struct ath10k *ar)
{ … }
static int ath10k_fetch_cal_file(struct ath10k *ar)
{ … }
static int ath10k_core_fetch_board_data_api_1(struct ath10k *ar, int bd_ie_type)
{ … }
static int ath10k_core_parse_bd_ie_board(struct ath10k *ar,
const void *buf, size_t buf_len,
const char *boardname,
int bd_ie_type)
{ … }
static int ath10k_core_search_bd(struct ath10k *ar,
const char *boardname,
const u8 *data,
size_t len)
{ … }
static int ath10k_core_fetch_board_data_api_n(struct ath10k *ar,
const char *boardname,
const char *fallback_boardname1,
const char *fallback_boardname2,
const char *filename)
{ … }
static int ath10k_core_create_board_name(struct ath10k *ar, char *name,
size_t name_len, bool with_variant,
bool with_chip_id)
{ … }
static int ath10k_core_create_eboard_name(struct ath10k *ar, char *name,
size_t name_len)
{ … }
int ath10k_core_fetch_board_file(struct ath10k *ar, int bd_ie_type)
{ … }
EXPORT_SYMBOL(…);
static int ath10k_core_get_ext_board_id_from_otp(struct ath10k *ar)
{ … }
static int ath10k_download_board_data(struct ath10k *ar, const void *data,
size_t data_len)
{ … }
static int ath10k_download_and_run_otp(struct ath10k *ar)
{ … }
static int ath10k_download_cal_file(struct ath10k *ar,
const struct firmware *file)
{ … }
static int ath10k_download_cal_dt(struct ath10k *ar, const char *dt_name)
{ … }
static int ath10k_download_cal_eeprom(struct ath10k *ar)
{ … }
static int ath10k_download_cal_nvmem(struct ath10k *ar, const char *cell_name)
{ … }
int ath10k_core_fetch_firmware_api_n(struct ath10k *ar, const char *name,
struct ath10k_fw_file *fw_file)
{ … }
static void ath10k_core_get_fw_name(struct ath10k *ar, char *fw_name,
size_t fw_name_len, int fw_api)
{ … }
static int ath10k_core_fetch_firmware_files(struct ath10k *ar)
{ … }
static int ath10k_core_pre_cal_download(struct ath10k *ar)
{ … }
static int ath10k_core_pre_cal_config(struct ath10k *ar)
{ … }
static int ath10k_download_cal_data(struct ath10k *ar)
{ … }
static void ath10k_core_fetch_btcoex_dt(struct ath10k *ar)
{ … }
static int ath10k_init_uart(struct ath10k *ar)
{ … }
static int ath10k_init_hw_params(struct ath10k *ar)
{ … }
void ath10k_core_start_recovery(struct ath10k *ar)
{ … }
EXPORT_SYMBOL(…);
void ath10k_core_napi_enable(struct ath10k *ar)
{ … }
EXPORT_SYMBOL(…);
void ath10k_core_napi_sync_disable(struct ath10k *ar)
{ … }
EXPORT_SYMBOL(…);
static void ath10k_core_restart(struct work_struct *work)
{ … }
static void ath10k_core_set_coverage_class_work(struct work_struct *work)
{ … }
static int ath10k_core_init_firmware_features(struct ath10k *ar)
{ … }
static int ath10k_core_reset_rx_filter(struct ath10k *ar)
{ … }
static int ath10k_core_compat_services(struct ath10k *ar)
{ … }
#define TGT_IRAM_READ_PER_ITR …
static int ath10k_core_copy_target_iram(struct ath10k *ar)
{ … }
int ath10k_core_start(struct ath10k *ar, enum ath10k_firmware_mode mode,
const struct ath10k_fw_components *fw)
{ … }
EXPORT_SYMBOL(…);
int ath10k_wait_for_suspend(struct ath10k *ar, u32 suspend_opt)
{ … }
void ath10k_core_stop(struct ath10k *ar)
{ … }
EXPORT_SYMBOL(…);
static int ath10k_core_probe_fw(struct ath10k *ar)
{ … }
static void ath10k_core_register_work(struct work_struct *work)
{ … }
int ath10k_core_register(struct ath10k *ar,
const struct ath10k_bus_params *bus_params)
{ … }
EXPORT_SYMBOL(…);
void ath10k_core_unregister(struct ath10k *ar)
{ … }
EXPORT_SYMBOL(…);
struct ath10k *ath10k_core_create(size_t priv_size, struct device *dev,
enum ath10k_bus bus,
enum ath10k_hw_rev hw_rev,
const struct ath10k_hif_ops *hif_ops)
{ … }
EXPORT_SYMBOL(…);
void ath10k_core_destroy(struct ath10k *ar)
{ … }
EXPORT_SYMBOL(…);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;