Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d08b6a37 authored by Franky Lin's avatar Franky Lin Committed by John W. Linville
Browse files

brcm80211: fmac: unify common layer driver data structure



No need to split data structure for common layer into brcmf_pub and
brcmf_info. Absorb brcmf_info into brcmf_pub to increase code
readability.

Reviewed-by: default avatarPieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: default avatarArend van Spriel <arend@broadcom.com>
Reviewed-by: default avatarAlwin Beukers <alwin@broadcom.com>
Signed-off-by: default avatarFranky Lin <frankyl@broadcom.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 5b68a7ca
Loading
Loading
Loading
Loading
+13 −6
Original line number Diff line number Diff line
@@ -580,7 +580,6 @@ struct brcmf_bus {
/* Forward decls for struct brcmf_pub (see below) */
struct brcmf_sdio;		/* device bus info */
struct brcmf_proto;	/* device communication protocol info */
struct brcmf_info;	/* device driver info */
struct brcmf_cfg80211_dev; /* cfg80211 device info */

/* Common structure for module and instance linkage */
@@ -589,7 +588,6 @@ struct brcmf_pub {
	struct brcmf_sdio *bus;
	struct brcmf_bus *bus_if;
	struct brcmf_proto *prot;
	struct brcmf_info *info;
	struct brcmf_cfg80211_dev *config;
	struct device *dev;		/* fullmac dongle device pointer */

@@ -663,6 +661,15 @@ struct brcmf_pub {

	u8 country_code[BRCM_CNTRY_BUF_SZ];
	char eventmask[BRCMF_EVENTING_MASK_LEN];

	struct brcmf_if *iflist[BRCMF_MAX_IFS];

	struct mutex proto_block;

	struct work_struct setmacaddr_work;
	struct work_struct multicast_work;
	u8 macvalue[ETH_ALEN];
	atomic_t pend_8021x_cnt;
};

struct brcmf_if_event {
@@ -734,14 +741,14 @@ extern int brcmf_os_proto_unblock(struct brcmf_pub *drvr);
extern int brcmf_write_to_file(struct brcmf_pub *drvr, const u8 *buf, int size);
#endif				/* BCMDBG */

extern int brcmf_ifname2idx(struct brcmf_info *drvr_priv, char *name);
extern int brcmf_c_host_event(struct brcmf_info *drvr_priv, int *idx,
extern int brcmf_ifname2idx(struct brcmf_pub *drvr, char *name);
extern int brcmf_c_host_event(struct brcmf_pub *drvr, int *idx,
			      void *pktdata, struct brcmf_event_msg *,
			      void **data_ptr);

extern int brcmf_add_if(struct brcmf_info *drvr_priv, int ifidx,
extern int brcmf_add_if(struct brcmf_pub *drvr, int ifidx,
			char *name, u8 *mac_addr);
extern void brcmf_del_if(struct brcmf_info *drvr_priv, int ifidx);
extern void brcmf_del_if(struct brcmf_pub *drvr, int ifidx);

/* Send packet to dongle via data channel */
extern int brcmf_sendpkt(struct brcmf_pub *drvr, int ifidx,\
+5 −5
Original line number Diff line number Diff line
@@ -431,7 +431,7 @@ brcmf_c_show_host_event(struct brcmf_event_msg *event, void *event_data)
#endif				/* BCMDBG */

int
brcmf_c_host_event(struct brcmf_info *drvr_priv, int *ifidx, void *pktdata,
brcmf_c_host_event(struct brcmf_pub *drvr, int *ifidx, void *pktdata,
		   struct brcmf_event_msg *event, void **data_ptr)
{
	/* check whether packet is a BRCM event pkt */
@@ -473,18 +473,18 @@ brcmf_c_host_event(struct brcmf_info *drvr_priv, int *ifidx, void *pktdata,

		if (ifevent->ifidx > 0 && ifevent->ifidx < BRCMF_MAX_IFS) {
			if (ifevent->action == BRCMF_E_IF_ADD)
				brcmf_add_if(drvr_priv, ifevent->ifidx,
				brcmf_add_if(drvr, ifevent->ifidx,
					     event->ifname,
					     pvt_data->eth.h_dest);
			else
				brcmf_del_if(drvr_priv, ifevent->ifidx);
				brcmf_del_if(drvr, ifevent->ifidx);
		} else {
			brcmf_dbg(ERROR, "Invalid ifidx %d for %s\n",
				  ifevent->ifidx, event->ifname);
		}

		/* send up the if event: btamp user needs it */
		*ifidx = brcmf_ifname2idx(drvr_priv, event->ifname);
		*ifidx = brcmf_ifname2idx(drvr, event->ifname);
		break;

		/* These are what external supplicant/authenticator wants */
@@ -496,7 +496,7 @@ brcmf_c_host_event(struct brcmf_info *drvr_priv, int *ifidx, void *pktdata,
	default:
		/* Fall through: this should get _everything_  */

		*ifidx = brcmf_ifname2idx(drvr_priv, event->ifname);
		*ifidx = brcmf_ifname2idx(drvr, event->ifname);
		brcmf_dbg(TRACE, "MAC event %d, flags %x, status %x\n",
			  type, flags, status);