linux/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcdc.c

// SPDX-License-Identifier: ISC
/*
 * Copyright (c) 2010 Broadcom Corporation
 */

/*******************************************************************************
 * Communicates with the dongle by using dcmd codes.
 * For certain dcmd codes, the dongle interprets string data from the host.
 ******************************************************************************/

#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 {};

/* BCDC flag definitions */
#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)

/*
 * BCDC header - Broadcom specific extension of CDC.
 * Used on data packets to convey priority across USB.
 */
#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 - BCDC header format
 *
 * @flags: flags contain protocol and checksum info.
 * @priority: 802.1d priority and USB flow control info (bit 4:7).
 * @flags2: additional flags containing dongle interface index.
 * @data_offset: start of packet data. header is following by firmware signals.
 */
struct brcmf_proto_bcdc_header {};

/*
 * maximum length of firmware signal data between
 * the BCDC header and packet data in the tx path.
 */
#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)
{}