void **data_ptr);
 
 extern int brcmf_net_attach(struct brcmf_if *ifp);
-extern struct brcmf_if *brcmf_add_if(struct device *dev, int ifidx, s32 bssidx,
-                                    char *name, u8 *mac_addr);
+extern struct brcmf_if *brcmf_add_if(struct brcmf_pub *drvr, int ifidx,
+                                    s32 bssidx, char *name, u8 *mac_addr);
 extern void brcmf_del_if(struct brcmf_pub *drvr, int ifidx);
 
 #endif                         /* _BRCMF_H_ */
 
        return -EBADE;
 }
 
-struct brcmf_if *brcmf_add_if(struct device *dev, int ifidx, s32 bssidx,
+struct brcmf_if *brcmf_add_if(struct brcmf_pub *drvr, int ifidx, s32 bssidx,
                              char *name, u8 *mac_addr)
 {
        struct brcmf_if *ifp;
        struct net_device *ndev;
-       struct brcmf_bus *bus_if = dev_get_drvdata(dev);
-       struct brcmf_pub *drvr = bus_if->drvr;
 
        brcmf_dbg(TRACE, "idx %d\n", ifidx);
 
        }
 
        /* add primary networking interface */
-       ifp = brcmf_add_if(dev, 0, 0, "wlan%d", NULL);
+       ifp = brcmf_add_if(drvr, 0, 0, "wlan%d", NULL);
        if (IS_ERR(ifp))
                return PTR_ERR(ifp);
 
 
        case BRCMF_E_IF_ADD:
                brcmf_dbg(EVENT, "adding %s (%pM, %pM)\n", event->ifname,
                          event->addr, item->ifaddr);
-               ifp = brcmf_add_if(drvr->dev, ifevent->ifidx, ifevent->bssidx,
+               ifp = brcmf_add_if(drvr, ifevent->ifidx, ifevent->bssidx,
                                   event->ifname, item->ifaddr);
                if (!IS_ERR(ifp)) {
                        *ifpp = ifp;