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

Commit b451ec94 authored by Arend van Spriel's avatar Arend van Spriel Committed by John W. Linville
Browse files

brcmfmac: use brcmf_cfg80211_priv to interface with wl_cfg80211 code



The low-level driver part interfaces with wl_cfg80211 part using
brcmf_cfg80211_dev structure as handle. As brcmf_cfg80211_priv
is defined in interface it is more efficient to use that as handle
in function calls.

Reviewed-by: default avatarPieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: default avatarHante Meuleman <meuleman@broadcom.com>
Reviewed-by: default avatarFranky (Zhenhui) Lin <frankyl@broadcom.com>
Signed-off-by: default avatarArend van Spriel <arend@broadcom.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent c3567a04
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -585,7 +585,7 @@ struct brcmf_pub {
	/* Linkage ponters */
	/* Linkage ponters */
	struct brcmf_bus *bus_if;
	struct brcmf_bus *bus_if;
	struct brcmf_proto *prot;
	struct brcmf_proto *prot;
	struct brcmf_cfg80211_dev *config;
	struct brcmf_cfg80211_priv *config;
	struct device *dev;		/* fullmac dongle device pointer */
	struct device *dev;		/* fullmac dongle device pointer */


	/* Internal brcmf items */
	/* Internal brcmf items */
+8 −40
Original line number Original line Diff line number Diff line
@@ -57,27 +57,6 @@ static const u8 ether_bcast[ETH_ALEN] = {255, 255, 255, 255, 255, 255};


static u32 brcmf_dbg_level = WL_DBG_ERR;
static u32 brcmf_dbg_level = WL_DBG_ERR;


static void brcmf_set_drvdata(struct brcmf_cfg80211_dev *dev, void *data)
{
	dev->driver_data = data;
}

static void *brcmf_get_drvdata(struct brcmf_cfg80211_dev *dev)
{
	void *data = NULL;

	if (dev)
		data = dev->driver_data;
	return data;
}

static
struct brcmf_cfg80211_priv *brcmf_priv_get(struct brcmf_cfg80211_dev *cfg_dev)
{
	struct brcmf_cfg80211_iface *ci = brcmf_get_drvdata(cfg_dev);
	return ci->cfg_priv;
}

static bool check_sys_up(struct wiphy *wiphy)
static bool check_sys_up(struct wiphy *wiphy)
{
{
	struct brcmf_cfg80211_priv *cfg_priv = wiphy_to_cfg(wiphy);
	struct brcmf_cfg80211_priv *cfg_priv = wiphy_to_cfg(wiphy);
@@ -4338,7 +4317,7 @@ static void wl_deinit_priv(struct brcmf_cfg80211_priv *cfg_priv)
	brcmf_deinit_priv_mem(cfg_priv);
	brcmf_deinit_priv_mem(cfg_priv);
}
}


struct brcmf_cfg80211_dev *brcmf_cfg80211_attach(struct net_device *ndev,
struct brcmf_cfg80211_priv *brcmf_cfg80211_attach(struct net_device *ndev,
						  struct device *busdev,
						  struct device *busdev,
						  struct brcmf_pub *drvr)
						  struct brcmf_pub *drvr)
{
{
@@ -4376,9 +4355,8 @@ struct brcmf_cfg80211_dev *brcmf_cfg80211_attach(struct net_device *ndev,
		WL_ERR("Failed to init iwm_priv (%d)\n", err);
		WL_ERR("Failed to init iwm_priv (%d)\n", err);
		goto cfg80211_attach_out;
		goto cfg80211_attach_out;
	}
	}
	brcmf_set_drvdata(cfg_dev, ci);
	kfree(cfg_dev);

	return cfg_priv;
	return cfg_dev;


cfg80211_attach_out:
cfg80211_attach_out:
	brcmf_free_wdev(cfg_priv);
	brcmf_free_wdev(cfg_priv);
@@ -4386,16 +4364,10 @@ cfg80211_attach_out:
	return NULL;
	return NULL;
}
}


void brcmf_cfg80211_detach(struct brcmf_cfg80211_dev *cfg_dev)
void brcmf_cfg80211_detach(struct brcmf_cfg80211_priv *cfg_priv)
{
{
	struct brcmf_cfg80211_priv *cfg_priv;

	cfg_priv = brcmf_priv_get(cfg_dev);

	wl_deinit_priv(cfg_priv);
	wl_deinit_priv(cfg_priv);
	brcmf_free_wdev(cfg_priv);
	brcmf_free_wdev(cfg_priv);
	brcmf_set_drvdata(cfg_dev, NULL);
	kfree(cfg_dev);
}
}


void
void
@@ -4754,12 +4726,10 @@ static s32 __brcmf_cfg80211_down(struct brcmf_cfg80211_priv *cfg_priv)
	return 0;
	return 0;
}
}


s32 brcmf_cfg80211_up(struct brcmf_cfg80211_dev *cfg_dev)
s32 brcmf_cfg80211_up(struct brcmf_cfg80211_priv *cfg_priv)
{
{
	struct brcmf_cfg80211_priv *cfg_priv;
	s32 err = 0;
	s32 err = 0;


	cfg_priv = brcmf_priv_get(cfg_dev);
	mutex_lock(&cfg_priv->usr_sync);
	mutex_lock(&cfg_priv->usr_sync);
	err = __brcmf_cfg80211_up(cfg_priv);
	err = __brcmf_cfg80211_up(cfg_priv);
	mutex_unlock(&cfg_priv->usr_sync);
	mutex_unlock(&cfg_priv->usr_sync);
@@ -4767,12 +4737,10 @@ s32 brcmf_cfg80211_up(struct brcmf_cfg80211_dev *cfg_dev)
	return err;
	return err;
}
}


s32 brcmf_cfg80211_down(struct brcmf_cfg80211_dev *cfg_dev)
s32 brcmf_cfg80211_down(struct brcmf_cfg80211_priv *cfg_priv)
{
{
	struct brcmf_cfg80211_priv *cfg_priv;
	s32 err = 0;
	s32 err = 0;


	cfg_priv = brcmf_priv_get(cfg_dev);
	mutex_lock(&cfg_priv->usr_sync);
	mutex_lock(&cfg_priv->usr_sync);
	err = __brcmf_cfg80211_down(cfg_priv);
	err = __brcmf_cfg80211_down(cfg_priv);
	mutex_unlock(&cfg_priv->usr_sync);
	mutex_unlock(&cfg_priv->usr_sync);
+6 −6
Original line number Original line Diff line number Diff line
@@ -497,15 +497,15 @@ brcmf_cfg80211_connect_info *cfg_to_conn(struct brcmf_cfg80211_priv *cfg)
	return &cfg->conn_info;
	return &cfg->conn_info;
}
}


struct brcmf_cfg80211_dev *brcmf_cfg80211_attach(struct net_device *ndev,
struct brcmf_cfg80211_priv *brcmf_cfg80211_attach(struct net_device *ndev,
						  struct device *busdev,
						  struct device *busdev,
						  struct brcmf_pub *drvr);
						  struct brcmf_pub *drvr);
void brcmf_cfg80211_detach(struct brcmf_cfg80211_dev *cfg);
void brcmf_cfg80211_detach(struct brcmf_cfg80211_priv *cfg_priv);


/* event handler from dongle */
/* event handler from dongle */
void brcmf_cfg80211_event(struct net_device *ndev,
void brcmf_cfg80211_event(struct net_device *ndev,
			  const struct brcmf_event_msg *e, void *data);
			  const struct brcmf_event_msg *e, void *data);
s32 brcmf_cfg80211_up(struct brcmf_cfg80211_dev *cfg_dev);
s32 brcmf_cfg80211_up(struct brcmf_cfg80211_priv *cfg_priv);
s32 brcmf_cfg80211_down(struct brcmf_cfg80211_dev *cfg_dev);
s32 brcmf_cfg80211_down(struct brcmf_cfg80211_priv *cfg_priv);


#endif				/* _wl_cfg80211_h_ */
#endif				/* _wl_cfg80211_h_ */