#include <linux/netdevice.h>
#include <linux/gcd.h>
#include <net/cfg80211.h>
#include "core.h"
#include "debug.h"
#include "fwil.h"
#include "fwil_types.h"
#include "cfg80211.h"
#include "pno.h"
#define BRCMF_PNO_VERSION …
#define BRCMF_PNO_REPEAT …
#define BRCMF_PNO_FREQ_EXPO_MAX …
#define BRCMF_PNO_IMMEDIATE_SCAN_BIT …
#define BRCMF_PNO_ENABLE_BD_SCAN_BIT …
#define BRCMF_PNO_ENABLE_ADAPTSCAN_BIT …
#define BRCMF_PNO_REPORT_SEPARATELY_BIT …
#define BRCMF_PNO_SCAN_INCOMPLETE …
#define BRCMF_PNO_WPA_AUTH_ANY …
#define BRCMF_PNO_HIDDEN_BIT …
#define BRCMF_PNO_SCHED_SCAN_PERIOD …
#define BRCMF_PNO_MAX_BUCKETS …
#define GSCAN_BATCH_NO_THR_SET …
#define GSCAN_RETRY_THRESHOLD …
struct brcmf_pno_info { … };
#define ifp_to_pno(_ifp) …
static int brcmf_pno_store_request(struct brcmf_pno_info *pi,
struct cfg80211_sched_scan_request *req)
{ … }
static int brcmf_pno_remove_request(struct brcmf_pno_info *pi, u64 reqid)
{ … }
static int brcmf_pno_channel_config(struct brcmf_if *ifp,
struct brcmf_pno_config_le *cfg)
{ … }
static int brcmf_pno_config(struct brcmf_if *ifp, u32 scan_freq,
u32 mscan, u32 bestn)
{ … }
static int brcmf_pno_set_random(struct brcmf_if *ifp, struct brcmf_pno_info *pi)
{ … }
static int brcmf_pno_add_ssid(struct brcmf_if *ifp, struct cfg80211_ssid *ssid,
bool active)
{ … }
static int brcmf_pno_add_bssid(struct brcmf_if *ifp, const u8 *bssid)
{ … }
static bool brcmf_is_ssid_active(struct cfg80211_ssid *ssid,
struct cfg80211_sched_scan_request *req)
{ … }
static int brcmf_pno_clean(struct brcmf_if *ifp)
{ … }
static int brcmf_pno_get_bucket_channels(struct cfg80211_sched_scan_request *r,
struct brcmf_pno_config_le *pno_cfg)
{ … }
static int brcmf_pno_prep_fwconfig(struct brcmf_pno_info *pi,
struct brcmf_pno_config_le *pno_cfg,
struct brcmf_gscan_bucket_config **buckets,
u32 *scan_freq)
{ … }
static int brcmf_pno_config_networks(struct brcmf_if *ifp,
struct brcmf_pno_info *pi)
{ … }
static int brcmf_pno_config_sched_scans(struct brcmf_if *ifp)
{ … }
int brcmf_pno_start_sched_scan(struct brcmf_if *ifp,
struct cfg80211_sched_scan_request *req)
{ … }
int brcmf_pno_stop_sched_scan(struct brcmf_if *ifp, u64 reqid)
{ … }
int brcmf_pno_attach(struct brcmf_cfg80211_info *cfg)
{ … }
void brcmf_pno_detach(struct brcmf_cfg80211_info *cfg)
{ … }
void brcmf_pno_wiphy_params(struct wiphy *wiphy, bool gscan)
{ … }
u64 brcmf_pno_find_reqid_by_bucket(struct brcmf_pno_info *pi, u32 bucket)
{ … }
u32 brcmf_pno_get_bucket_map(struct brcmf_pno_info *pi,
struct brcmf_pno_net_info_le *ni)
{ … }