brcmfmac: use brcmf_cfg80211_priv to interface with wl_cfg80211 code
authorArend van Spriel <arend@broadcom.com>
Thu, 27 Sep 2012 12:17:52 +0000 (14:17 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 28 Sep 2012 17:54:08 +0000 (13:54 -0400)
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: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Hante Meuleman <meuleman@broadcom.com>
Reviewed-by: Franky (Zhenhui) Lin <frankyl@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/brcm80211/brcmfmac/dhd.h
drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.h

index 9bb23b3854aaeabf1acbfd3ebe5554d62e283a6f..fc4bc6d6cb82ba20b1d66225e1cd6357dec8dc84 100644 (file)
@@ -585,7 +585,7 @@ struct brcmf_pub {
        /* Linkage ponters */
        struct brcmf_bus *bus_if;
        struct brcmf_proto *prot;
-       struct brcmf_cfg80211_dev *config;
+       struct brcmf_cfg80211_priv *config;
        struct device *dev;             /* fullmac dongle device pointer */
 
        /* Internal brcmf items */
index 8674d344f245a7343eec6c0fadc6b949868dabcb..0a30f9c678217dda5c8607fd3ed9c95ed9b1bcf8 100644 (file)
@@ -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 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)
 {
        struct brcmf_cfg80211_priv *cfg_priv = wiphy_to_cfg(wiphy);
@@ -4338,9 +4317,9 @@ static void wl_deinit_priv(struct brcmf_cfg80211_priv *cfg_priv)
        brcmf_deinit_priv_mem(cfg_priv);
 }
 
-struct brcmf_cfg80211_dev *brcmf_cfg80211_attach(struct net_device *ndev,
-                                                struct device *busdev,
-                                                struct brcmf_pub *drvr)
+struct brcmf_cfg80211_priv *brcmf_cfg80211_attach(struct net_device *ndev,
+                                                 struct device *busdev,
+                                                 struct brcmf_pub *drvr)
 {
        struct wireless_dev *wdev;
        struct brcmf_cfg80211_priv *cfg_priv;
@@ -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);
                goto cfg80211_attach_out;
        }
-       brcmf_set_drvdata(cfg_dev, ci);
-
-       return cfg_dev;
+       kfree(cfg_dev);
+       return cfg_priv;
 
 cfg80211_attach_out:
        brcmf_free_wdev(cfg_priv);
@@ -4386,16 +4364,10 @@ cfg80211_attach_out:
        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);
        brcmf_free_wdev(cfg_priv);
-       brcmf_set_drvdata(cfg_dev, NULL);
-       kfree(cfg_dev);
 }
 
 void
@@ -4754,12 +4726,10 @@ static s32 __brcmf_cfg80211_down(struct brcmf_cfg80211_priv *cfg_priv)
        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;
 
-       cfg_priv = brcmf_priv_get(cfg_dev);
        mutex_lock(&cfg_priv->usr_sync);
        err = __brcmf_cfg80211_up(cfg_priv);
        mutex_unlock(&cfg_priv->usr_sync);
@@ -4767,12 +4737,10 @@ s32 brcmf_cfg80211_up(struct brcmf_cfg80211_dev *cfg_dev)
        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;
 
-       cfg_priv = brcmf_priv_get(cfg_dev);
        mutex_lock(&cfg_priv->usr_sync);
        err = __brcmf_cfg80211_down(cfg_priv);
        mutex_unlock(&cfg_priv->usr_sync);
index 9e478e0f1a8914d5c860c482d04538a2ba455eda..618a600c640c0900558ed2bf4d6142c3f0e660a4 100644 (file)
@@ -497,15 +497,15 @@ brcmf_cfg80211_connect_info *cfg_to_conn(struct brcmf_cfg80211_priv *cfg)
        return &cfg->conn_info;
 }
 
-struct brcmf_cfg80211_dev *brcmf_cfg80211_attach(struct net_device *ndev,
-                                                struct device *busdev,
-                                                struct brcmf_pub *drvr);
-void brcmf_cfg80211_detach(struct brcmf_cfg80211_dev *cfg);
+struct brcmf_cfg80211_priv *brcmf_cfg80211_attach(struct net_device *ndev,
+                                                 struct device *busdev,
+                                                 struct brcmf_pub *drvr);
+void brcmf_cfg80211_detach(struct brcmf_cfg80211_priv *cfg_priv);
 
 /* event handler from dongle */
 void brcmf_cfg80211_event(struct net_device *ndev,
                          const struct brcmf_event_msg *e, void *data);
-s32 brcmf_cfg80211_up(struct brcmf_cfg80211_dev *cfg_dev);
-s32 brcmf_cfg80211_down(struct brcmf_cfg80211_dev *cfg_dev);
+s32 brcmf_cfg80211_up(struct brcmf_cfg80211_priv *cfg_priv);
+s32 brcmf_cfg80211_down(struct brcmf_cfg80211_priv *cfg_priv);
 
 #endif                         /* _wl_cfg80211_h_ */