#include <linux/moduleparam.h>
#include <linux/if_arp.h>
#include <linux/etherdevice.h>
#include <linux/rtnetlink.h>
#include "wil6210.h"
#include "txrx.h"
#include "txrx_edma.h"
#include "wmi.h"
#include "boot_loader.h"
#define WAIT_FOR_HALP_VOTE_MS …
#define WAIT_FOR_SCAN_ABORT_MS …
#define WIL_DEFAULT_NUM_RX_STATUS_RINGS …
#define WIL_BOARD_FILE_MAX_NAMELEN …
bool debug_fw;
module_param(debug_fw, bool, 0444);
MODULE_PARM_DESC(…) …;
static u8 oob_mode;
module_param(oob_mode, byte, 0444);
MODULE_PARM_DESC(…) …;
bool no_fw_recovery;
module_param(no_fw_recovery, bool, 0644);
MODULE_PARM_DESC(…) …;
unsigned short rx_ring_overflow_thrsh = …;
module_param(rx_ring_overflow_thrsh, ushort, 0444);
MODULE_PARM_DESC(…) …;
unsigned int mtu_max = …;
static int mtu_max_set(const char *val, const struct kernel_param *kp)
{ … }
static const struct kernel_param_ops mtu_max_ops = …;
module_param_cb(…);
MODULE_PARM_DESC(…) …;
static uint rx_ring_order;
static uint tx_ring_order = …;
static uint bcast_ring_order = …;
static int ring_order_set(const char *val, const struct kernel_param *kp)
{ … }
static const struct kernel_param_ops ring_order_ops = …;
module_param_cb(…);
MODULE_PARM_DESC(…) …;
module_param_cb(…);
MODULE_PARM_DESC(…) …;
module_param_cb(…);
MODULE_PARM_DESC(…) …;
enum { … };
enum { … };
#define RST_DELAY …
#define RST_COUNT …
#define PMU_READY_DELAY_MS …
#define OTP_HW_DELAY …
#define OTP_HW_COUNT …
void wil_memcpy_fromio_32(void *dst, const volatile void __iomem *src,
size_t count)
{ … }
void wil_memcpy_toio_32(volatile void __iomem *dst, const void *src,
size_t count)
{ … }
int wil_mem_access_lock(struct wil6210_priv *wil)
{ … }
void wil_mem_access_unlock(struct wil6210_priv *wil)
{ … }
static void wil_ring_fini_tx(struct wil6210_priv *wil, int id)
{ … }
static bool wil_vif_is_connected(struct wil6210_priv *wil, u8 mid)
{ … }
static void wil_disconnect_cid_complete(struct wil6210_vif *vif, int cid,
u16 reason_code)
__acquires(&sta->tid_rx_lock) __releases(&sta->tid_rx_lock)
{ … }
static void _wil6210_disconnect_complete(struct wil6210_vif *vif,
const u8 *bssid, u16 reason_code)
{ … }
static int wil_disconnect_cid(struct wil6210_vif *vif, int cid,
u16 reason_code)
{ … }
static void _wil6210_disconnect(struct wil6210_vif *vif, const u8 *bssid,
u16 reason_code)
{ … }
void wil_disconnect_worker(struct work_struct *work)
{ … }
static int wil_wait_for_recovery(struct wil6210_priv *wil)
{ … }
void wil_set_recovery_state(struct wil6210_priv *wil, int state)
{ … }
bool wil_is_recovery_blocked(struct wil6210_priv *wil)
{ … }
static void wil_fw_error_worker(struct work_struct *work)
{ … }
static int wil_find_free_ring(struct wil6210_priv *wil)
{ … }
int wil_ring_init_tx(struct wil6210_vif *vif, int cid)
{ … }
int wil_bcast_init(struct wil6210_vif *vif)
{ … }
void wil_bcast_fini(struct wil6210_vif *vif)
{ … }
void wil_bcast_fini_all(struct wil6210_priv *wil)
{ … }
int wil_priv_init(struct wil6210_priv *wil)
{ … }
void wil6210_bus_request(struct wil6210_priv *wil, u32 kbps)
{ … }
void wil6210_disconnect(struct wil6210_vif *vif, const u8 *bssid,
u16 reason_code)
{ … }
void wil6210_disconnect_complete(struct wil6210_vif *vif, const u8 *bssid,
u16 reason_code)
{ … }
void wil_priv_deinit(struct wil6210_priv *wil)
{ … }
static void wil_shutdown_bl(struct wil6210_priv *wil)
{ … }
static inline u32 ARC_me_imm32(u32 d)
{ … }
#define ARC_IRQ_VECTOR_OFFSET(N) …
#define ARC_JAL_INST …
static void wil_freeze_bl(struct wil6210_priv *wil)
{ … }
static void wil_bl_prepare_halt(struct wil6210_priv *wil)
{ … }
static inline void wil_halt_cpu(struct wil6210_priv *wil)
{ … }
static inline void wil_release_cpu(struct wil6210_priv *wil)
{ … }
static void wil_set_oob_mode(struct wil6210_priv *wil, u8 mode)
{ … }
static int wil_wait_device_ready(struct wil6210_priv *wil, int no_flash)
{ … }
static int wil_wait_device_ready_talyn_mb(struct wil6210_priv *wil)
{ … }
static int wil_target_reset(struct wil6210_priv *wil, int no_flash)
{ … }
static void wil_collect_fw_info(struct wil6210_priv *wil)
{ … }
void wil_refresh_fw_capabilities(struct wil6210_priv *wil)
{ … }
void wil_mbox_ring_le2cpus(struct wil6210_mbox_ring *r)
{ … }
void wil_get_board_file(struct wil6210_priv *wil, char *buf, size_t len)
{ … }
static int wil_get_bl_info(struct wil6210_priv *wil)
{ … }
static void wil_bl_crash_info(struct wil6210_priv *wil, bool is_err)
{ … }
static int wil_get_otp_info(struct wil6210_priv *wil)
{ … }
static int wil_wait_for_fw_ready(struct wil6210_priv *wil)
{ … }
void wil_abort_scan(struct wil6210_vif *vif, bool sync)
{ … }
void wil_abort_scan_all_vifs(struct wil6210_priv *wil, bool sync)
{ … }
int wil_ps_update(struct wil6210_priv *wil, enum wmi_ps_profile_type ps_profile)
{ … }
static void wil_pre_fw_config(struct wil6210_priv *wil)
{ … }
static int wil_restore_vifs(struct wil6210_priv *wil)
{ … }
void wil_clear_fw_log_addr(struct wil6210_priv *wil)
{ … }
int wil_reset(struct wil6210_priv *wil, bool load_fw)
{ … }
void wil_fw_error_recovery(struct wil6210_priv *wil)
{ … }
int __wil_up(struct wil6210_priv *wil)
{ … }
int wil_up(struct wil6210_priv *wil)
{ … }
int __wil_down(struct wil6210_priv *wil)
{ … }
int wil_down(struct wil6210_priv *wil)
{ … }
int wil_find_cid(struct wil6210_priv *wil, u8 mid, const u8 *mac)
{ … }
void wil_halp_vote(struct wil6210_priv *wil)
{ … }
void wil_halp_unvote(struct wil6210_priv *wil)
{ … }
void wil_init_txrx_ops(struct wil6210_priv *wil)
{ … }