#include <linux/types.h>
#include <linux/netdevice.h>
#include <brcmu_utils.h>
#include <brcmu_wifi.h>
#include "core.h"
#include "bus.h"
#include "fwsignal.h"
#include "debug.h"
#include "tracepoint.h"
#include "proto.h"
#include "bcdc.h"
struct brcmf_proto_bcdc_dcmd { … };
#define BCDC_DCMD_ERROR …
#define BCDC_DCMD_SET …
#define BCDC_DCMD_IF_MASK …
#define BCDC_DCMD_IF_SHIFT …
#define BCDC_DCMD_ID_MASK …
#define BCDC_DCMD_ID_SHIFT …
#define BCDC_DCMD_ID(flags) …
#define BCDC_HEADER_LEN …
#define BCDC_PROTO_VER …
#define BCDC_FLAG_VER_MASK …
#define BCDC_FLAG_VER_SHIFT …
#define BCDC_FLAG_SUM_GOOD …
#define BCDC_FLAG_SUM_NEEDED …
#define BCDC_PRIORITY_MASK …
#define BCDC_FLAG2_IF_MASK …
#define BCDC_FLAG2_IF_SHIFT …
#define BCDC_GET_IF_IDX(hdr) …
#define BCDC_SET_IF_IDX(hdr, idx) …
struct brcmf_proto_bcdc_header { … };
#define BRCMF_PROT_FW_SIGNAL_MAX_TXBYTES …
#define RETRIES …
#define BUS_HEADER_LEN …
#define ROUND_UP_MARGIN …
struct brcmf_bcdc { … };
struct brcmf_fws_info *drvr_to_fws(struct brcmf_pub *drvr)
{ … }
static int
brcmf_proto_bcdc_msg(struct brcmf_pub *drvr, int ifidx, uint cmd, void *buf,
uint len, bool set)
{ … }
static int brcmf_proto_bcdc_cmplt(struct brcmf_pub *drvr, u32 id, u32 len)
{ … }
static int
brcmf_proto_bcdc_query_dcmd(struct brcmf_pub *drvr, int ifidx, uint cmd,
void *buf, uint len, int *fwerr)
{ … }
static int
brcmf_proto_bcdc_set_dcmd(struct brcmf_pub *drvr, int ifidx, uint cmd,
void *buf, uint len, int *fwerr)
{ … }
static void
brcmf_proto_bcdc_hdrpush(struct brcmf_pub *drvr, int ifidx, u8 offset,
struct sk_buff *pktbuf)
{ … }
static int
brcmf_proto_bcdc_hdrpull(struct brcmf_pub *drvr, bool do_fws,
struct sk_buff *pktbuf, struct brcmf_if **ifp)
{ … }
static int brcmf_proto_bcdc_tx_queue_data(struct brcmf_pub *drvr, int ifidx,
struct sk_buff *skb)
{ … }
static int
brcmf_proto_bcdc_txdata(struct brcmf_pub *drvr, int ifidx, u8 offset,
struct sk_buff *pktbuf)
{ … }
void brcmf_proto_bcdc_txflowblock(struct device *dev, bool state)
{ … }
void
brcmf_proto_bcdc_txcomplete(struct device *dev, struct sk_buff *txp,
bool success)
{ … }
static void
brcmf_proto_bcdc_configure_addr_mode(struct brcmf_pub *drvr, int ifidx,
enum proto_addr_mode addr_mode)
{ … }
static void
brcmf_proto_bcdc_delete_peer(struct brcmf_pub *drvr, int ifidx,
u8 peer[ETH_ALEN])
{ … }
static void
brcmf_proto_bcdc_add_tdls_peer(struct brcmf_pub *drvr, int ifidx,
u8 peer[ETH_ALEN])
{ … }
static void brcmf_proto_bcdc_rxreorder(struct brcmf_if *ifp,
struct sk_buff *skb)
{ … }
static void
brcmf_proto_bcdc_add_if(struct brcmf_if *ifp)
{ … }
static void
brcmf_proto_bcdc_del_if(struct brcmf_if *ifp)
{ … }
static void
brcmf_proto_bcdc_reset_if(struct brcmf_if *ifp)
{ … }
static int
brcmf_proto_bcdc_init_done(struct brcmf_pub *drvr)
{ … }
static void brcmf_proto_bcdc_debugfs_create(struct brcmf_pub *drvr)
{ … }
int brcmf_proto_bcdc_attach(struct brcmf_pub *drvr)
{ … }
void brcmf_proto_bcdc_detach(struct brcmf_pub *drvr)
{ … }