};
 
 /* Forward decls for struct brcmf_pub (see below) */
-struct brcmf_sdio;             /* device bus info */
 struct brcmf_proto;    /* device communication protocol info */
 struct brcmf_cfg80211_dev; /* cfg80211 device info */
 
 /* Common structure for module and instance linkage */
 struct brcmf_pub {
        /* Linkage ponters */
-       struct brcmf_sdio *bus;
        struct brcmf_bus *bus_if;
        struct brcmf_proto *prot;
        struct brcmf_cfg80211_dev *config;
  * Returned structure should have bus and prot pointers filled in.
  * bus_hdrlen specifies required headroom for bus module header.
  */
-extern int brcmf_attach(struct brcmf_sdio *bus,
-                       uint bus_hdrlen, struct device *dev);
+extern int brcmf_attach(uint bus_hdrlen, struct device *dev);
 extern int brcmf_net_attach(struct brcmf_pub *drvr, int idx);
 extern int brcmf_netdev_wait_pend8021x(struct net_device *ndev);
 
 
 
 extern int
 brcmf_sdbrcm_bus_rxctl(struct device *dev, unsigned char *msg, uint msglen);
-
-extern void brcmf_sdbrcm_wd_timer(struct brcmf_sdio *bus, uint wdtick);
-
 #endif                         /* _BRCMF_BUS_H_ */
 
        }
 }
 
-int brcmf_attach(struct brcmf_sdio *bus, uint bus_hdrlen,
-                              struct device *dev)
+int brcmf_attach(uint bus_hdrlen, struct device *dev)
 {
        struct brcmf_pub *drvr = NULL;
        int ret = 0;
        mutex_init(&drvr->proto_block);
 
        /* Link to bus module */
-       drvr->bus = bus;
        drvr->hdrlen = bus_hdrlen;
        drvr->bus_if = dev_get_drvdata(dev);
        drvr->bus_if->drvr = drvr;
 
        }
 
        /* Attach to the brcmf/OS/network interface */
-       ret = brcmf_attach(bus, SDPCM_RESERVE, bus->sdiodev->dev);
+       ret = brcmf_attach(SDPCM_RESERVE, bus->sdiodev->dev);
        if (ret != 0) {
                brcmf_dbg(ERROR, "brcmf_attach failed\n");
                goto fail;
 
        int value;
 };
 
+struct brcmf_sdio;
+
 struct brcmf_sdio_dev {
        struct sdio_func *func[SDIO_MAX_FUNCS];
        u8 num_funcs;                   /* Supported funcs on client */
 extern void *brcmf_sdbrcm_probe(u32 regsva, struct brcmf_sdio_dev *sdiodev);
 extern void brcmf_sdbrcm_disconnect(void *ptr);
 extern void brcmf_sdbrcm_isr(void *arg);
+
+extern void brcmf_sdbrcm_wd_timer(struct brcmf_sdio *bus, uint wdtick);
 #endif                         /* _BRCM_SDH_H_ */