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

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
...@@ -585,7 +585,7 @@ struct brcmf_pub { ...@@ -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 */
......
...@@ -57,27 +57,6 @@ static const u8 ether_bcast[ETH_ALEN] = {255, 255, 255, 255, 255, 255}; ...@@ -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) ...@@ -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, ...@@ -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 @@ struct brcmf_cfg80211_dev *brcmf_cfg80211_attach(struct net_device *ndev, ...@@ -4386,16 +4364,10 @@ struct brcmf_cfg80211_dev *brcmf_cfg80211_attach(struct net_device *ndev,
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) ...@@ -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) ...@@ -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);
......
...@@ -497,15 +497,15 @@ brcmf_cfg80211_connect_info *cfg_to_conn(struct brcmf_cfg80211_priv *cfg) ...@@ -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_ */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment