#include <linux/slab.h>
#include <net/mac80211.h>
#include "types.h"
#include "main.h"
#include "phy_shim.h"
#include "antsel.h"
#include "debug.h"
#define ANT_SELCFG_AUTO …
#define ANT_SELCFG_MASK …
#define ANT_SELCFG_TX_UNICAST …
#define ANT_SELCFG_RX_UNICAST …
#define ANT_SELCFG_TX_DEF …
#define ANT_SELCFG_RX_DEF …
#define BRCMS_ANTSEL_11N_0(ant) …
#define BRCMS_ANTSEL_11N_1(ant) …
#define BRCMS_ANTIDX_11N(ant) …
#define BRCMS_ANT_ISAUTO_11N(ant) …
#define BRCMS_ANTSEL_11N(ant) …
#define ANT_SELCFG_DEF_2x2 …
#define ANT_SELCFG_NUM_2x3 …
#define ANT_SELCFG_DEF_2x3 …
#define ANT_SELCFG_NUM_2x4 …
#define ANT_SELCFG_DEF_2x4 …
static const u16 mimo_2x4_div_antselpat_tbl[] = …;
static const u8 mimo_2x4_div_antselid_tbl[16] = …;
static const u16 mimo_2x3_div_antselpat_tbl[] = …;
static const u8 mimo_2x3_div_antselid_tbl[16] = …;
static void
brcms_c_antsel_init_cfg(struct antsel_info *asi, struct brcms_antselcfg *antsel,
bool auto_sel)
{ … }
struct antsel_info *brcms_c_antsel_attach(struct brcms_c_info *wlc)
{ … }
void brcms_c_antsel_detach(struct antsel_info *asi)
{ … }
static u16 brcms_c_antsel_antcfg2antsel(struct antsel_info *asi, u8 ant_cfg)
{ … }
static int brcms_c_antsel_cfgupd(struct antsel_info *asi,
struct brcms_antselcfg *antsel)
{ … }
void brcms_c_antsel_init(struct antsel_info *asi)
{ … }
static u8 brcms_c_antsel_id2antcfg(struct antsel_info *asi, u8 id)
{ … }
void
brcms_c_antsel_antcfg_get(struct antsel_info *asi, bool usedef, bool sel,
u8 antselid, u8 fbantselid, u8 *antcfg,
u8 *fbantcfg)
{ … }
u8 brcms_c_antsel_antsel2id(struct antsel_info *asi, u16 antsel)
{ … }