#include <linux/netdevice.h>
#include <linux/module.h>
#include <brcm_hw_ids.h>
#include <brcmu_wifi.h>
#include "core.h"
#include "bus.h"
#include "debug.h"
#include "fwil.h"
#include "fwil_types.h"
#include "fwvid.h"
#include "feature.h"
#include "common.h"
#define BRCMF_FW_UNSUPPORTED …
#define BRCMF_FEAT_DEF …
static const char *brcmf_feat_names[] = …;
#undef BRCMF_FEAT_DEF
struct brcmf_feat_fwcap { … };
static const struct brcmf_feat_fwcap brcmf_fwcap_map[] = …;
#ifdef DEBUG
#define BRCMF_QUIRK_DEF …
static const char * const brcmf_quirk_names[] = …;
#undef BRCMF_QUIRK_DEF
static int brcmf_feat_debugfs_read(struct seq_file *seq, void *data)
{ … }
#else
static int brcmf_feat_debugfs_read(struct seq_file *seq, void *data)
{
return 0;
}
#endif
struct brcmf_feat_fwfeat { … };
static const struct brcmf_feat_fwfeat brcmf_feat_fwfeat_map[] = …;
static void brcmf_feat_firmware_overrides(struct brcmf_pub *drv)
{ … }
struct brcmf_feat_wlcfeat { … };
static const struct brcmf_feat_wlcfeat brcmf_feat_wlcfeat_map[] = …;
static void brcmf_feat_wlc_version_overrides(struct brcmf_pub *drv)
{ … }
static void brcmf_feat_iovar_int_get(struct brcmf_if *ifp,
enum brcmf_feat_id id, char *name)
{ … }
static void brcmf_feat_iovar_data_set(struct brcmf_if *ifp,
enum brcmf_feat_id id, char *name,
const void *data, size_t len)
{ … }
#define MAX_CAPS_BUFFER_SIZE …
static void brcmf_feat_firmware_capabilities(struct brcmf_if *ifp)
{ … }
static int brcmf_feat_fwcap_debugfs_read(struct seq_file *seq, void *data)
{ … }
void brcmf_feat_attach(struct brcmf_pub *drvr)
{ … }
void brcmf_feat_debugfs_create(struct brcmf_pub *drvr)
{ … }
bool brcmf_feat_is_enabled(struct brcmf_if *ifp, enum brcmf_feat_id id)
{ … }
bool brcmf_feat_is_quirk_enabled(struct brcmf_if *ifp,
enum brcmf_feat_quirk quirk)
{ … }