staging: brcm80211: removed last typedefs from fullmac
[pandora-kernel.git] / drivers / staging / brcm80211 / brcmfmac / dhd_sdio.c
index 3ed9e12..3cbfacb 100644 (file)
@@ -33,7 +33,6 @@
 #include <soc.h>
 #include "sdio_host.h"
 #include "bcmsdbus.h"
-#include "bcmsdh_sdmmc.h"
 
 /* register access macros */
 #ifndef __BIG_ENDIAN
@@ -176,7 +175,6 @@ struct rte_console {
 #include "dhd_bus.h"
 #include "dhd_proto.h"
 #include "dhd_dbg.h"
-#include <sdiovar.h>
 #include <bcmchip.h>
 
 #ifndef DHDSDIO_MEM_DUMP_FNAME
@@ -412,7 +410,96 @@ BRCMF_SPINWAIT_SLEEP_INIT(sdioh_spinwait_sleep);
 #define CORE_BUS_REG(base, field) \
                (base + offsetof(struct sdpcmd_regs, field))
 #define CORE_SB(base, field) \
-               (base + SBCONFIGOFF + offsetof(sbconfig_t, field))
+               (base + SBCONFIGOFF + offsetof(struct sbconfig, field))
+
+/* core registers */
+struct sdpcmd_regs {
+       u32 corecontrol;                /* 0x00, rev8 */
+       u32 corestatus;                 /* rev8 */
+       u32 PAD[1];
+       u32 biststatus;                 /* rev8 */
+
+       /* PCMCIA access */
+       u16 pcmciamesportaladdr;        /* 0x010, rev8 */
+       u16 PAD[1];
+       u16 pcmciamesportalmask;        /* rev8 */
+       u16 PAD[1];
+       u16 pcmciawrframebc;            /* rev8 */
+       u16 PAD[1];
+       u16 pcmciaunderflowtimer;       /* rev8 */
+       u16 PAD[1];
+
+       /* interrupt */
+       u32 intstatus;                  /* 0x020, rev8 */
+       u32 hostintmask;                /* rev8 */
+       u32 intmask;                    /* rev8 */
+       u32 sbintstatus;                /* rev8 */
+       u32 sbintmask;                  /* rev8 */
+       u32 funcintmask;                /* rev4 */
+       u32 PAD[2];
+       u32 tosbmailbox;                /* 0x040, rev8 */
+       u32 tohostmailbox;              /* rev8 */
+       u32 tosbmailboxdata;            /* rev8 */
+       u32 tohostmailboxdata;          /* rev8 */
+
+       /* synchronized access to registers in SDIO clock domain */
+       u32 sdioaccess;                 /* 0x050, rev8 */
+       u32 PAD[3];
+
+       /* PCMCIA frame control */
+       u8 pcmciaframectrl;             /* 0x060, rev8 */
+       u8 PAD[3];
+       u8 pcmciawatermark;             /* rev8 */
+       u8 PAD[155];
+
+       /* interrupt batching control */
+       u32 intrcvlazy;                 /* 0x100, rev8 */
+       u32 PAD[3];
+
+       /* counters */
+       u32 cmd52rd;                    /* 0x110, rev8 */
+       u32 cmd52wr;                    /* rev8 */
+       u32 cmd53rd;                    /* rev8 */
+       u32 cmd53wr;                    /* rev8 */
+       u32 abort;                      /* rev8 */
+       u32 datacrcerror;               /* rev8 */
+       u32 rdoutofsync;                /* rev8 */
+       u32 wroutofsync;                /* rev8 */
+       u32 writebusy;                  /* rev8 */
+       u32 readwait;                   /* rev8 */
+       u32 readterm;                   /* rev8 */
+       u32 writeterm;                  /* rev8 */
+       u32 PAD[40];
+       u32 clockctlstatus;             /* rev8 */
+       u32 PAD[7];
+
+       u32 PAD[128];                   /* DMA engines */
+
+       /* SDIO/PCMCIA CIS region */
+       char cis[512];                  /* 0x400-0x5ff, rev6 */
+
+       /* PCMCIA function control registers */
+       char pcmciafcr[256];            /* 0x600-6ff, rev6 */
+       u16 PAD[55];
+
+       /* PCMCIA backplane access */
+       u16 backplanecsr;               /* 0x76E, rev6 */
+       u16 backplaneaddr0;             /* rev6 */
+       u16 backplaneaddr1;             /* rev6 */
+       u16 backplaneaddr2;             /* rev6 */
+       u16 backplaneaddr3;             /* rev6 */
+       u16 backplanedata0;             /* rev6 */
+       u16 backplanedata1;             /* rev6 */
+       u16 backplanedata2;             /* rev6 */
+       u16 backplanedata3;             /* rev6 */
+       u16 PAD[31];
+
+       /* sprom "size" & "blank" info */
+       u16 spromstatus;                /* 0x7BE, rev2 */
+       u32 PAD[464];
+
+       u16 PAD[0x80];
+};
 
 #ifdef BCMDBG
 /* Device console log buffer state */
@@ -455,8 +542,8 @@ struct chip_info {
 };
 
 /* Private data for SDIO bus interaction */
-typedef struct dhd_bus {
-       struct brcmf_pub *dhd;
+struct brcmf_bus {
+       struct brcmf_pub *drvr;
 
        struct brcmf_sdio_card *card;   /* Handle for sdio card calls */
        struct chip_info *ci;   /* Chip info struct */
@@ -608,9 +695,9 @@ typedef struct dhd_bus {
        const struct firmware *firmware;
        const char *nv_name;
        u32 fw_ptr;
-} dhd_bus_t;
+};
 
-typedef volatile struct _sbconfig {
+struct sbconfig {
        u32 PAD[2];
        u32 sbipsflag;  /* initiator port ocp slave flag */
        u32 PAD[3];
@@ -648,7 +735,7 @@ typedef volatile struct _sbconfig {
        u32 PAD[3];
        u32 sbidlow;            /* identification */
        u32 sbidhigh;   /* identification */
-} sbconfig_t;
+};
 
 /* clkstate */
 #define CLK_NONE       0
@@ -694,7 +781,7 @@ uint dhd_txminmax;
 #define DONGLE_MIN_MEMSIZE (128 * 1024)
 int brcmf_dongle_memsize;
 
-static bool dhd_alignctl;
+static bool brcmf_alignctl;
 
 static bool sd1idle;
 
@@ -730,7 +817,7 @@ static bool forcealign;
 static const uint max_roundup = 512;
 
 /* Try doing readahead */
-static bool dhd_readahead;
+static bool brcmf_readahead;
 
 /* To check if there's window offered */
 #define DATAOK(bus) \
@@ -778,74 +865,76 @@ do { \
 #define HOSTINTMASK            (I_HMB_SW_MASK | I_CHIPACTIVE)
 
 #ifdef SDTEST
-static void brcmf_sdbrcm_checkdied(dhd_bus_t *bus, void *pkt, uint seq);
-static void brcmf_sdbrcm_sdtest_set(dhd_bus_t *bus, bool start);
+static void brcmf_sdbrcm_checkdied(struct brcmf_bus *bus, void *pkt, uint seq);
+static void brcmf_sdbrcm_sdtest_set(struct brcmf_bus *bus, bool start);
 #endif
 
 #ifdef BCMDBG
 static int brcmf_sdbrcm_bus_console_in(struct brcmf_pub *drvr,
                                       unsigned char *msg, uint msglen);
-static int brcmf_sdbrcm_checkdied(dhd_bus_t *bus, u8 *data, uint size);
-static int brcmf_sdbrcm_mem_dump(dhd_bus_t *bus);
+static int brcmf_sdbrcm_checkdied(struct brcmf_bus *bus, u8 *data, uint size);
+static int brcmf_sdbrcm_mem_dump(struct brcmf_bus *bus);
 #endif                         /* BCMDBG  */
-static int brcmf_sdbrcm_download_state(dhd_bus_t *bus, bool enter);
+static int brcmf_sdbrcm_download_state(struct brcmf_bus *bus, bool enter);
 
-static void brcmf_sdbrcm_release(dhd_bus_t *bus);
-static void brcmf_sdbrcm_release_malloc(dhd_bus_t *bus);
+static void brcmf_sdbrcm_release(struct brcmf_bus *bus);
+static void brcmf_sdbrcm_release_malloc(struct brcmf_bus *bus);
 static void brcmf_sdbrcm_disconnect(void *ptr);
 static bool brcmf_sdbrcm_chipmatch(u16 chipid);
-static bool brcmf_sdbrcm_probe_attach(dhd_bus_t *bus, void *card,
+static bool brcmf_sdbrcm_probe_attach(struct brcmf_bus *bus, void *card,
                                 void *regsva, u16 devid);
-static bool brcmf_sdbrcm_probe_malloc(dhd_bus_t *bus, void *card);
-static bool brcmf_sdbrcm_probe_init(dhd_bus_t *bus, void *card);
-static void brcmf_sdbrcm_release_dongle(dhd_bus_t *bus);
+static bool brcmf_sdbrcm_probe_malloc(struct brcmf_bus *bus, void *card);
+static bool brcmf_sdbrcm_probe_init(struct brcmf_bus *bus, void *card);
+static void brcmf_sdbrcm_release_dongle(struct brcmf_bus *bus);
 
 static uint brcmf_process_nvram_vars(char *varbuf, uint len);
 
-static void brcmf_sdbrcm_setmemsize(struct dhd_bus *bus, int mem_size);
-static int brcmf_sdbrcm_send_buf(dhd_bus_t *bus, u32 addr, uint fn,
+static void brcmf_sdbrcm_setmemsize(struct brcmf_bus *bus, int mem_size);
+static int brcmf_sdbrcm_send_buf(struct brcmf_bus *bus, u32 addr, uint fn,
                               uint flags, u8 *buf, uint nbytes,
                               struct sk_buff *pkt,
-                              brcmf_sdio_cmplt_fn_t complete, void *handle);
+                              void (*complete)(void *handle, int status,
+                                                     bool sync_waiting),
+                              void *handle);
 
-static bool brcmf_sdbrcm_download_firmware(struct dhd_bus *bus, void *card);
-static int  _brcmf_sdbrcm_download_firmware(struct dhd_bus *bus);
+static bool brcmf_sdbrcm_download_firmware(struct brcmf_bus *bus, void *card);
+static int  _brcmf_sdbrcm_download_firmware(struct brcmf_bus *bus);
 
-static int brcmf_sdbrcm_download_code_file(struct dhd_bus *bus);
-static int brcmf_sdbrcm_download_nvram(struct dhd_bus *bus);
+static int brcmf_sdbrcm_download_code_file(struct brcmf_bus *bus);
+static int brcmf_sdbrcm_download_nvram(struct brcmf_bus *bus);
 
 static void
 brcmf_sdbrcm_chip_disablecore(struct brcmf_sdio_card *card, u32 corebase);
 
-static int brcmf_sdbrcm_chip_attach(struct dhd_bus *bus, void *regs);
+static int brcmf_sdbrcm_chip_attach(struct brcmf_bus *bus, void *regs);
 
 static void
 brcmf_sdbrcm_chip_resetcore(struct brcmf_sdio_card *card, u32 corebase);
 
-static void brcmf_sdbrcm_sdiod_drive_strength_init(struct dhd_bus *bus,
+static void brcmf_sdbrcm_sdiod_drive_strength_init(struct brcmf_bus *bus,
                                        u32 drivestrength);
-static void brcmf_sdbrcm_chip_detach(struct dhd_bus *bus);
-static void brcmf_sdbrcm_wait_for_event(dhd_bus_t *bus, bool *lockvar);
-static void brcmf_sdbrcm_wait_event_wakeup(dhd_bus_t *bus);
+static void brcmf_sdbrcm_chip_detach(struct brcmf_bus *bus);
+static void brcmf_sdbrcm_wait_for_event(struct brcmf_bus *bus, bool *lockvar);
+static void brcmf_sdbrcm_wait_event_wakeup(struct brcmf_bus *bus);
 static void brcmf_sdbrcm_watchdog(unsigned long data);
 static int brcmf_sdbrcm_watchdog_thread(void *data);
 static int brcmf_sdbrcm_dpc_thread(void *data);
 static void brcmf_sdbrcm_dpc_tasklet(unsigned long data);
-static void brcmf_sdbrcm_sched_dpc(dhd_bus_t *bus);
-static void brcmf_sdbrcm_sdlock(dhd_bus_t *bus);
-static void brcmf_sdbrcm_sdunlock(dhd_bus_t *bus);
-static int brcmf_sdbrcm_get_image(char *buf, int len, struct dhd_bus *bus);
+static void brcmf_sdbrcm_sched_dpc(struct brcmf_bus *bus);
+static void brcmf_sdbrcm_sdlock(struct brcmf_bus *bus);
+static void brcmf_sdbrcm_sdunlock(struct brcmf_bus *bus);
+static int brcmf_sdbrcm_get_image(char *buf, int len, struct brcmf_bus *bus);
 
 /* Packet free applicable unconditionally for sdio and sdspi.
  * Conditional if bufpool was present for gspi bus.
  */
-static void brcmf_sdbrcm_pktfree2(dhd_bus_t *bus, struct sk_buff *pkt)
+static void brcmf_sdbrcm_pktfree2(struct brcmf_bus *bus, struct sk_buff *pkt)
 {
        if ((bus->bus != SPI_BUS) || bus->usebufpool)
                brcmu_pkt_buf_free_skb(pkt);
 }
 
-static void brcmf_sdbrcm_setmemsize(struct dhd_bus *bus, int mem_size)
+static void brcmf_sdbrcm_setmemsize(struct brcmf_bus *bus, int mem_size)
 {
        s32 min_size = DONGLE_MIN_MEMSIZE;
        /* Restrict the memsize to user specified limit */
@@ -856,7 +945,7 @@ static void brcmf_sdbrcm_setmemsize(struct dhd_bus *bus, int mem_size)
                bus->ramsize = brcmf_dongle_memsize;
 }
 
-static int brcmf_sdbrcm_set_siaddr_window(dhd_bus_t *bus, u32 address)
+static int brcmf_sdbrcm_set_siaddr_window(struct brcmf_bus *bus, u32 address)
 {
        int err = 0;
        brcmf_sdcard_cfg_write(bus->card, SDIO_FUNC_1, SBSDIO_FUNC1_SBADDRLOW,
@@ -874,7 +963,7 @@ static int brcmf_sdbrcm_set_siaddr_window(dhd_bus_t *bus, u32 address)
 }
 
 /* Turn backplane clock on or off */
-static int brcmf_sdbrcm_htclk(dhd_bus_t *bus, bool on, bool pendok)
+static int brcmf_sdbrcm_htclk(struct brcmf_bus *bus, bool on, bool pendok)
 {
        int err;
        u8 clkctl, clkreq, devctl;
@@ -1006,7 +1095,7 @@ static int brcmf_sdbrcm_htclk(dhd_bus_t *bus, bool on, bool pendok)
 }
 
 /* Change idle/active SD state */
-static int brcmf_sdbrcm_sdclk(dhd_bus_t *bus, bool on)
+static int brcmf_sdbrcm_sdclk(struct brcmf_bus *bus, bool on)
 {
        DHD_TRACE(("%s: Enter\n", __func__));
 
@@ -1019,7 +1108,7 @@ static int brcmf_sdbrcm_sdclk(dhd_bus_t *bus, bool on)
 }
 
 /* Transition SD and backplane clock readiness */
-static int brcmf_sdbrcm_clkctl(dhd_bus_t *bus, uint target, bool pendok)
+static int brcmf_sdbrcm_clkctl(struct brcmf_bus *bus, uint target, bool pendok)
 {
 #ifdef BCMDBG
        uint oldstate = bus->clkstate;
@@ -1075,7 +1164,7 @@ static int brcmf_sdbrcm_clkctl(dhd_bus_t *bus, uint target, bool pendok)
        return 0;
 }
 
-int brcmf_sdbrcm_bussleep(dhd_bus_t *bus, bool sleep)
+int brcmf_sdbrcm_bussleep(struct brcmf_bus *bus, bool sleep)
 {
        struct brcmf_sdio_card *card = bus->card;
        struct sdpcmd_regs *regs = bus->regs;
@@ -1155,7 +1244,7 @@ int brcmf_sdbrcm_bussleep(dhd_bus_t *bus, bool sleep)
                bus->sleeping = false;
 
                /* Enable interrupts again */
-               if (bus->intr && (bus->dhd->busstate == DHD_BUS_DATA)) {
+               if (bus->intr && (bus->drvr->busstate == DHD_BUS_DATA)) {
                        bus->intdis = false;
                        brcmf_sdcard_intr_enable(bus->card);
                }
@@ -1172,7 +1261,7 @@ int brcmf_sdbrcm_bussleep(dhd_bus_t *bus, bool sleep)
 
 /* Writes a HW/SW header into the packet and sends it. */
 /* Assumes: (a) header space already there, (b) caller holds lock */
-static int brcmf_sdbrcm_txpkt(dhd_bus_t *bus, struct sk_buff *pkt, uint chan,
+static int brcmf_sdbrcm_txpkt(struct brcmf_bus *bus, struct sk_buff *pkt, uint chan,
                         bool free_pkt)
 {
        int ret;
@@ -1188,7 +1277,7 @@ static int brcmf_sdbrcm_txpkt(dhd_bus_t *bus, struct sk_buff *pkt, uint chan,
 
        card = bus->card;
 
-       if (bus->dhd->dongle_reset) {
+       if (bus->drvr->dongle_reset) {
                ret = -EPERM;
                goto done;
        }
@@ -1201,7 +1290,7 @@ static int brcmf_sdbrcm_txpkt(dhd_bus_t *bus, struct sk_buff *pkt, uint chan,
                if (skb_headroom(pkt) < pad) {
                        DHD_INFO(("%s: insufficient headroom %d for %d pad\n",
                                  __func__, skb_headroom(pkt), pad));
-                       bus->dhd->tx_realloc++;
+                       bus->drvr->tx_realloc++;
                        new = brcmu_pkt_buf_get_skb(pkt->len + BRCMF_SDALIGN);
                        if (!new) {
                                DHD_ERROR(("%s: couldn't allocate new %d-byte "
@@ -1315,7 +1404,7 @@ done:
        /* restore pkt buffer pointer before calling tx complete routine */
        skb_pull(pkt, SDPCM_HDRLEN + pad);
        brcmf_sdbrcm_sdunlock(bus);
-       brcmf_txcomplete(bus->dhd, pkt, ret != 0);
+       brcmf_txcomplete(bus->drvr, pkt, ret != 0);
        brcmf_sdbrcm_sdlock(bus);
 
        if (free_pkt)
@@ -1324,7 +1413,7 @@ done:
        return ret;
 }
 
-int brcmf_sdbrcm_bus_txdata(struct dhd_bus *bus, struct sk_buff *pkt)
+int brcmf_sdbrcm_bus_txdata(struct brcmf_bus *bus, struct sk_buff *pkt)
 {
        int ret = -EBADE;
        uint datalen, prec;
@@ -1365,9 +1454,9 @@ int brcmf_sdbrcm_bus_txdata(struct dhd_bus *bus, struct sk_buff *pkt)
 
                /* Priority based enq */
                spin_lock_bh(&bus->txqlock);
-               if (brcmf_c_prec_enq(bus->dhd, &bus->txq, pkt, prec) == false) {
+               if (brcmf_c_prec_enq(bus->drvr, &bus->txq, pkt, prec) == false) {
                        skb_pull(pkt, SDPCM_HDRLEN);
-                       brcmf_txcomplete(bus->dhd, pkt, false);
+                       brcmf_txcomplete(bus->drvr, pkt, false);
                        brcmu_pkt_buf_free_skb(pkt);
                        DHD_ERROR(("%s: out of bus->txq !!!\n", __func__));
                        ret = -ENOSR;
@@ -1377,7 +1466,7 @@ int brcmf_sdbrcm_bus_txdata(struct dhd_bus *bus, struct sk_buff *pkt)
                spin_unlock_bh(&bus->txqlock);
 
                if (pktq_len(&bus->txq) >= TXHI)
-                       brcmf_txflowcontrol(bus->dhd, 0, ON);
+                       brcmf_txflowcontrol(bus->drvr, 0, ON);
 
 #ifdef BCMDBG
                if (pktq_plen(&bus->txq, prec) > qcount[prec])
@@ -1406,9 +1495,9 @@ int brcmf_sdbrcm_bus_txdata(struct dhd_bus *bus, struct sk_buff *pkt)
                                     SDPCM_DATA_CHANNEL), true);
 #endif
                if (ret)
-                       bus->dhd->tx_errors++;
+                       bus->drvr->tx_errors++;
                else
-                       bus->dhd->dstats.tx_bytes += datalen;
+                       bus->drvr->dstats.tx_bytes += datalen;
 
                if (bus->idletime == BRCMF_IDLE_IMMEDIATE &&
                    !bus->dpc_sched) {
@@ -1422,7 +1511,7 @@ int brcmf_sdbrcm_bus_txdata(struct dhd_bus *bus, struct sk_buff *pkt)
        return ret;
 }
 
-static uint brcmf_sdbrcm_sendfromq(dhd_bus_t *bus, uint maxframes)
+static uint brcmf_sdbrcm_sendfromq(struct brcmf_bus *bus, uint maxframes)
 {
        struct sk_buff *pkt;
        u32 intstatus = 0;
@@ -1432,7 +1521,7 @@ static uint brcmf_sdbrcm_sendfromq(dhd_bus_t *bus, uint maxframes)
        uint datalen;
        u8 tx_prec_map;
 
-       struct brcmf_pub *dhd = bus->dhd;
+       struct brcmf_pub *drvr = bus->drvr;
        struct sdpcmd_regs *regs = bus->regs;
 
        DHD_TRACE(("%s: Enter\n", __func__));
@@ -1458,9 +1547,9 @@ static uint brcmf_sdbrcm_sendfromq(dhd_bus_t *bus, uint maxframes)
                                     SDPCM_DATA_CHANNEL), true);
 #endif
                if (ret)
-                       bus->dhd->tx_errors++;
+                       bus->drvr->tx_errors++;
                else
-                       bus->dhd->dstats.tx_bytes += datalen;
+                       bus->drvr->dstats.tx_bytes += datalen;
 
                /* In poll mode, need to check for other events */
                if (!bus->intr && cnt) {
@@ -1475,15 +1564,15 @@ static uint brcmf_sdbrcm_sendfromq(dhd_bus_t *bus, uint maxframes)
        }
 
        /* Deflow-control stack if needed */
-       if (dhd->up && (dhd->busstate == DHD_BUS_DATA) &&
-           dhd->txoff && (pktq_len(&bus->txq) < TXLOW))
-               brcmf_txflowcontrol(dhd, 0, OFF);
+       if (drvr->up && (drvr->busstate == DHD_BUS_DATA) &&
+           drvr->txoff && (pktq_len(&bus->txq) < TXLOW))
+               brcmf_txflowcontrol(drvr, 0, OFF);
 
        return cnt;
 }
 
 int
-brcmf_sdbrcm_bus_txctl(struct dhd_bus *bus, unsigned char *msg, uint msglen)
+brcmf_sdbrcm_bus_txctl(struct brcmf_bus *bus, unsigned char *msg, uint msglen)
 {
        u8 *frame;
        u16 len;
@@ -1496,7 +1585,7 @@ brcmf_sdbrcm_bus_txctl(struct dhd_bus *bus, unsigned char *msg, uint msglen)
 
        DHD_TRACE(("%s: Enter\n", __func__));
 
-       if (bus->dhd->dongle_reset)
+       if (bus->drvr->dongle_reset)
                return -EIO;
 
        /* Back the pointer to make a room for bus header */
@@ -1504,7 +1593,7 @@ brcmf_sdbrcm_bus_txctl(struct dhd_bus *bus, unsigned char *msg, uint msglen)
        len = (msglen += SDPCM_HDRLEN);
 
        /* Add alignment padding (optional for ctl frames) */
-       if (dhd_alignctl) {
+       if (brcmf_alignctl) {
                doff = ((unsigned long)frame % BRCMF_SDALIGN);
                if (doff) {
                        frame -= doff;
@@ -1637,14 +1726,14 @@ brcmf_sdbrcm_bus_txctl(struct dhd_bus *bus, unsigned char *msg, uint msglen)
        brcmf_sdbrcm_sdunlock(bus);
 
        if (ret)
-               bus->dhd->tx_ctlerrs++;
+               bus->drvr->tx_ctlerrs++;
        else
-               bus->dhd->tx_ctlpkts++;
+               bus->drvr->tx_ctlpkts++;
 
        return ret ? -EIO : 0;
 }
 
-int brcmf_sdbrcm_bus_rxctl(struct dhd_bus *bus, unsigned char *msg, uint msglen)
+int brcmf_sdbrcm_bus_rxctl(struct brcmf_bus *bus, unsigned char *msg, uint msglen)
 {
        int timeleft;
        uint rxlen = 0;
@@ -1652,11 +1741,11 @@ int brcmf_sdbrcm_bus_rxctl(struct dhd_bus *bus, unsigned char *msg, uint msglen)
 
        DHD_TRACE(("%s: Enter\n", __func__));
 
-       if (bus->dhd->dongle_reset)
+       if (bus->drvr->dongle_reset)
                return -EIO;
 
        /* Wait until control frame is available */
-       timeleft = brcmf_os_ioctl_resp_wait(bus->dhd, &bus->rxlen, &pending);
+       timeleft = brcmf_os_ioctl_resp_wait(bus->drvr, &bus->rxlen, &pending);
 
        brcmf_sdbrcm_sdlock(bus);
        rxlen = bus->rxlen;
@@ -1687,9 +1776,9 @@ int brcmf_sdbrcm_bus_rxctl(struct dhd_bus *bus, unsigned char *msg, uint msglen)
        }
 
        if (rxlen)
-               bus->dhd->rx_ctlpkts++;
+               bus->drvr->rx_ctlpkts++;
        else
-               bus->dhd->rx_ctlerrs++;
+               bus->drvr->rx_ctlerrs++;
 
        return rxlen ? (int)rxlen : -ETIMEDOUT;
 }
@@ -1778,7 +1867,7 @@ const struct brcmu_iovar dhdsdio_iovars[] = {
 #ifdef SDTEST
        {"extloop", IOV_EXTLOOP, 0, IOVT_BOOL, 0}
        ,
-       {"pktgen", IOV_PKTGEN, 0, IOVT_BUFFER, sizeof(brcmf_pktgen_t)}
+       {"pktgen", IOV_PKTGEN, 0, IOVT_BUFFER, sizeof(struct brcmf_pktgen)}
        ,
 #endif                         /* SDTEST */
 
@@ -1799,9 +1888,9 @@ dhd_dump_pct(struct brcmu_strbuf *strbuf, char *desc, uint num, uint div)
        }
 }
 
-void brcmf_sdbrcm_bus_dump(struct brcmf_pub *dhdp, struct brcmu_strbuf *strbuf)
+void brcmf_sdbrcm_bus_dump(struct brcmf_pub *drvr, struct brcmu_strbuf *strbuf)
 {
-       dhd_bus_t *bus = dhdp->bus;
+       struct brcmf_bus *bus = drvr->bus;
 
        brcmu_bprintf(strbuf, "Bus SDIO structure:\n");
        brcmu_bprintf(strbuf,
@@ -1832,44 +1921,44 @@ void brcmf_sdbrcm_bus_dump(struct brcmf_pub *dhdp, struct brcmu_strbuf *strbuf)
                      (bus->f2rxhdrs + bus->f2rxdata), bus->f2rxhdrs,
                      bus->f2rxdata, bus->f2txdata, bus->f1regdata);
        {
-               dhd_dump_pct(strbuf, "\nRx: pkts/f2rd", bus->dhd->rx_packets,
+               dhd_dump_pct(strbuf, "\nRx: pkts/f2rd", bus->drvr->rx_packets,
                             (bus->f2rxhdrs + bus->f2rxdata));
-               dhd_dump_pct(strbuf, ", pkts/f1sd", bus->dhd->rx_packets,
+               dhd_dump_pct(strbuf, ", pkts/f1sd", bus->drvr->rx_packets,
                             bus->f1regdata);
-               dhd_dump_pct(strbuf, ", pkts/sd", bus->dhd->rx_packets,
+               dhd_dump_pct(strbuf, ", pkts/sd", bus->drvr->rx_packets,
                             (bus->f2rxhdrs + bus->f2rxdata + bus->f1regdata));
-               dhd_dump_pct(strbuf, ", pkts/int", bus->dhd->rx_packets,
+               dhd_dump_pct(strbuf, ", pkts/int", bus->drvr->rx_packets,
                             bus->intrcount);
                brcmu_bprintf(strbuf, "\n");
 
                dhd_dump_pct(strbuf, "Rx: glom pct", (100 * bus->rxglompkts),
-                            bus->dhd->rx_packets);
+                            bus->drvr->rx_packets);
                dhd_dump_pct(strbuf, ", pkts/glom", bus->rxglompkts,
                             bus->rxglomframes);
                brcmu_bprintf(strbuf, "\n");
 
-               dhd_dump_pct(strbuf, "Tx: pkts/f2wr", bus->dhd->tx_packets,
+               dhd_dump_pct(strbuf, "Tx: pkts/f2wr", bus->drvr->tx_packets,
                             bus->f2txdata);
-               dhd_dump_pct(strbuf, ", pkts/f1sd", bus->dhd->tx_packets,
+               dhd_dump_pct(strbuf, ", pkts/f1sd", bus->drvr->tx_packets,
                             bus->f1regdata);
-               dhd_dump_pct(strbuf, ", pkts/sd", bus->dhd->tx_packets,
+               dhd_dump_pct(strbuf, ", pkts/sd", bus->drvr->tx_packets,
                             (bus->f2txdata + bus->f1regdata));
-               dhd_dump_pct(strbuf, ", pkts/int", bus->dhd->tx_packets,
+               dhd_dump_pct(strbuf, ", pkts/int", bus->drvr->tx_packets,
                             bus->intrcount);
                brcmu_bprintf(strbuf, "\n");
 
                dhd_dump_pct(strbuf, "Total: pkts/f2rw",
-                            (bus->dhd->tx_packets + bus->dhd->rx_packets),
+                            (bus->drvr->tx_packets + bus->drvr->rx_packets),
                             (bus->f2txdata + bus->f2rxhdrs + bus->f2rxdata));
                dhd_dump_pct(strbuf, ", pkts/f1sd",
-                            (bus->dhd->tx_packets + bus->dhd->rx_packets),
+                            (bus->drvr->tx_packets + bus->drvr->rx_packets),
                             bus->f1regdata);
                dhd_dump_pct(strbuf, ", pkts/sd",
-                            (bus->dhd->tx_packets + bus->dhd->rx_packets),
+                            (bus->drvr->tx_packets + bus->drvr->rx_packets),
                             (bus->f2txdata + bus->f2rxhdrs + bus->f2rxdata +
                              bus->f1regdata));
                dhd_dump_pct(strbuf, ", pkts/int",
-                            (bus->dhd->tx_packets + bus->dhd->rx_packets),
+                            (bus->drvr->tx_packets + bus->drvr->rx_packets),
                             bus->intrcount);
                brcmu_bprintf(strbuf, "\n\n");
        }
@@ -1889,8 +1978,7 @@ void brcmf_sdbrcm_bus_dump(struct brcmf_pub *dhdp, struct brcmu_strbuf *strbuf)
 #endif                         /* SDTEST */
 #ifdef BCMDBG
        brcmu_bprintf(strbuf, "dpc_sched %d host interrupt%spending\n",
-                   bus->dpc_sched,
-                   (brcmf_sdcard_intr_pending(bus->card) ? " " : " not "));
+                     bus->dpc_sched, " not ");
        brcmu_bprintf(strbuf, "blocksize %d roundup %d\n", bus->blocksize,
                    bus->roundup);
 #endif                         /* BCMDBG */
@@ -1900,9 +1988,9 @@ void brcmf_sdbrcm_bus_dump(struct brcmf_pub *dhdp, struct brcmu_strbuf *strbuf)
                    bus->sleeping);
 }
 
-void dhd_bus_clearcounts(struct brcmf_pub *dhdp)
+void brcmf_bus_clearcounts(struct brcmf_pub *drvr)
 {
-       dhd_bus_t *bus = (dhd_bus_t *) dhdp->bus;
+       struct brcmf_bus *bus = (struct brcmf_bus *) drvr->bus;
 
        bus->intrcount = bus->lastintrs = bus->spurious = bus->regfails = 0;
        bus->rxrtx = bus->rx_toolong = bus->rxc_errors = 0;
@@ -1913,9 +2001,9 @@ void dhd_bus_clearcounts(struct brcmf_pub *dhdp)
 }
 
 #ifdef SDTEST
-static int brcmf_sdbrcm_pktgen_get(dhd_bus_t *bus, u8 *arg)
+static int brcmf_sdbrcm_pktgen_get(struct brcmf_bus *bus, u8 *arg)
 {
-       brcmf_pktgen_t pktgen;
+       struct brcmf_pktgen pktgen;
 
        pktgen.version = BRCMF_PKTGEN_VERSION;
        pktgen.freq = bus->pktgen_freq;
@@ -1935,9 +2023,9 @@ static int brcmf_sdbrcm_pktgen_get(dhd_bus_t *bus, u8 *arg)
        return 0;
 }
 
-static int brcmf_sdbrcm_pktgen_set(dhd_bus_t *bus, u8 *arg)
+static int brcmf_sdbrcm_pktgen_set(struct brcmf_bus *bus, u8 *arg)
 {
-       brcmf_pktgen_t pktgen;
+       struct brcmf_pktgen pktgen;
        uint oldcnt, oldmode;
 
        memcpy(&pktgen, arg, sizeof(pktgen));
@@ -1969,7 +2057,7 @@ static int brcmf_sdbrcm_pktgen_set(dhd_bus_t *bus, u8 *arg)
 #endif                         /* SDTEST */
 
 static int
-brcmf_sdbrcm_membytes(dhd_bus_t *bus, bool write, u32 address, u8 *data,
+brcmf_sdbrcm_membytes(struct brcmf_bus *bus, bool write, u32 address, u8 *data,
                 uint size)
 {
        int bcmerror = 0;
@@ -2030,7 +2118,7 @@ xfer_done:
 }
 
 #ifdef BCMDBG
-static int brcmf_sdbrcm_readshared(dhd_bus_t *bus, struct sdpcm_shared *sh)
+static int brcmf_sdbrcm_readshared(struct brcmf_bus *bus, struct sdpcm_shared *sh)
 {
        u32 addr;
        int rv;
@@ -2082,7 +2170,7 @@ static int brcmf_sdbrcm_readshared(dhd_bus_t *bus, struct sdpcm_shared *sh)
        return 0;
 }
 
-static int brcmf_sdbrcm_checkdied(dhd_bus_t *bus, u8 *data, uint size)
+static int brcmf_sdbrcm_checkdied(struct brcmf_bus *bus, u8 *data, uint size)
 {
        int bcmerror = 0;
        uint msize = 512;
@@ -2211,7 +2299,7 @@ done:
        return bcmerror;
 }
 
-static int brcmf_sdbrcm_mem_dump(dhd_bus_t *bus)
+static int brcmf_sdbrcm_mem_dump(struct brcmf_bus *bus)
 {
        int ret = 0;
        int size;               /* Full mem size */
@@ -2249,7 +2337,7 @@ static int brcmf_sdbrcm_mem_dump(dhd_bus_t *bus)
        printk(KERN_DEBUG "Done\n");
 
        /* free buf before return !!! */
-       if (brcmf_write_to_file(bus->dhd, buf, bus->ramsize)) {
+       if (brcmf_write_to_file(bus->drvr, buf, bus->ramsize)) {
                DHD_ERROR(("%s: Error writing to files\n", __func__));
                return -1;
        }
@@ -2260,7 +2348,7 @@ static int brcmf_sdbrcm_mem_dump(dhd_bus_t *bus)
 
 #define CONSOLE_LINE_MAX       192
 
-static int brcmf_sdbrcm_readconsole(dhd_bus_t *bus)
+static int brcmf_sdbrcm_readconsole(struct brcmf_bus *bus)
 {
        struct dhd_console *c = &bus->console;
        u8 line[CONSOLE_LINE_MAX], ch;
@@ -2337,14 +2425,14 @@ break2:
 }
 #endif                         /* BCMDBG */
 
-int brcmf_sdbrcm_downloadvars(dhd_bus_t *bus, void *arg, int len)
+int brcmf_sdbrcm_downloadvars(struct brcmf_bus *bus, void *arg, int len)
 {
        int bcmerror = 0;
 
        DHD_TRACE(("%s: Enter\n", __func__));
 
        /* Basic sanity checks */
-       if (bus->dhd->up) {
+       if (bus->drvr->up) {
                bcmerror = -EISCONN;
                goto err;
        }
@@ -2371,7 +2459,7 @@ err:
 }
 
 static int
-brcmf_sdbrcm_doiovar(dhd_bus_t *bus, const struct brcmu_iovar *vi, u32 actionid,
+brcmf_sdbrcm_doiovar(struct brcmf_bus *bus, const struct brcmu_iovar *vi, u32 actionid,
                const char *name, void *params, int plen, void *arg, int len,
                int val_size)
 {
@@ -2396,7 +2484,7 @@ brcmf_sdbrcm_doiovar(dhd_bus_t *bus, const struct brcmu_iovar *vi, u32 actionid,
        brcmf_sdbrcm_sdlock(bus);
 
        /* Check if dongle is in reset. If so, only allow DEVRESET iovars */
-       if (bus->dhd->dongle_reset && !(actionid == IOV_SVAL(IOV_DEVRESET) ||
+       if (bus->drvr->dongle_reset && !(actionid == IOV_SVAL(IOV_DEVRESET) ||
                                        actionid == IOV_GVAL(IOV_DEVRESET))) {
                bcmerror = -EPERM;
                goto exit;
@@ -2414,7 +2502,7 @@ brcmf_sdbrcm_doiovar(dhd_bus_t *bus, const struct brcmu_iovar *vi, u32 actionid,
        }
 
        /* Request clock to allow SDIO accesses */
-       if (!bus->dhd->dongle_reset) {
+       if (!bus->drvr->dongle_reset) {
                BUS_WAKE(bus);
                brcmf_sdbrcm_clkctl(bus, CLK_AVAIL, false);
        }
@@ -2428,7 +2516,7 @@ brcmf_sdbrcm_doiovar(dhd_bus_t *bus, const struct brcmu_iovar *vi, u32 actionid,
        case IOV_SVAL(IOV_INTR):
                bus->intr = bool_val;
                bus->intdis = false;
-               if (bus->dhd->up) {
+               if (bus->drvr->up) {
                        if (bus->intr) {
                                DHD_INTR(("%s: enable SDIO device interrupts\n",
                                          __func__));
@@ -2560,14 +2648,14 @@ brcmf_sdbrcm_doiovar(dhd_bus_t *bus, const struct brcmu_iovar *vi, u32 actionid,
                break;
 
        case IOV_GVAL(IOV_READAHEAD):
-               int_val = (s32) dhd_readahead;
+               int_val = (s32) brcmf_readahead;
                memcpy(arg, &int_val, val_size);
                break;
 
        case IOV_SVAL(IOV_READAHEAD):
-               if (bool_val && !dhd_readahead)
+               if (bool_val && !brcmf_readahead)
                        bus->nextlen = 0;
-               dhd_readahead = bool_val;
+               brcmf_readahead = bool_val;
                break;
 
        case IOV_GVAL(IOV_SDRXCHAIN):
@@ -2582,12 +2670,12 @@ brcmf_sdbrcm_doiovar(dhd_bus_t *bus, const struct brcmu_iovar *vi, u32 actionid,
                        bus->use_rxchain = bool_val;
                break;
        case IOV_GVAL(IOV_ALIGNCTL):
-               int_val = (s32) dhd_alignctl;
+               int_val = (s32) brcmf_alignctl;
                memcpy(arg, &int_val, val_size);
                break;
 
        case IOV_SVAL(IOV_ALIGNCTL):
-               dhd_alignctl = bool_val;
+               brcmf_alignctl = bool_val;
                break;
 
        case IOV_GVAL(IOV_SDALIGN):
@@ -2616,7 +2704,7 @@ brcmf_sdbrcm_doiovar(dhd_bus_t *bus, const struct brcmu_iovar *vi, u32 actionid,
 
        case IOV_SVAL(IOV_CONS):
                if (len > 0)
-                       bcmerror = brcmf_sdbrcm_bus_console_in(bus->dhd,
+                       bcmerror = brcmf_sdbrcm_bus_console_in(bus->drvr,
                                                               arg, len - 1);
                break;
 
@@ -2766,10 +2854,10 @@ brcmf_sdbrcm_doiovar(dhd_bus_t *bus, const struct brcmu_iovar *vi, u32 actionid,
        case IOV_SVAL(IOV_DEVRESET):
                DHD_TRACE(("%s: Called set IOV_DEVRESET=%d dongle_reset=%d "
                        "busstate=%d\n",
-                       __func__, bool_val, bus->dhd->dongle_reset,
-                       bus->dhd->busstate));
+                       __func__, bool_val, bus->drvr->dongle_reset,
+                       bus->drvr->busstate));
 
-               brcmf_bus_devreset(bus->dhd, (u8) bool_val);
+               brcmf_bus_devreset(bus->drvr, (u8) bool_val);
 
                break;
 
@@ -2777,7 +2865,7 @@ brcmf_sdbrcm_doiovar(dhd_bus_t *bus, const struct brcmu_iovar *vi, u32 actionid,
                DHD_TRACE(("%s: Called get IOV_DEVRESET\n", __func__));
 
                /* Get its status */
-               int_val = (bool) bus->dhd->dongle_reset;
+               int_val = (bool) bus->drvr->dongle_reset;
                memcpy(arg, &int_val, val_size);
 
                break;
@@ -2788,7 +2876,7 @@ brcmf_sdbrcm_doiovar(dhd_bus_t *bus, const struct brcmu_iovar *vi, u32 actionid,
                break;
 
        case IOV_SVAL(IOV_WDTICK):
-               if (!bus->dhd->up) {
+               if (!bus->drvr->up) {
                        bcmerror = -ENOLINK;
                        break;
                }
@@ -2809,12 +2897,12 @@ exit:
        brcmf_sdbrcm_sdunlock(bus);
 
        if (actionid == IOV_SVAL(IOV_DEVRESET) && bool_val == false)
-               brcmf_c_preinit_ioctls((struct brcmf_pub *) bus->dhd);
+               brcmf_c_preinit_ioctls(bus->drvr);
 
        return bcmerror;
 }
 
-static int brcmf_sdbrcm_write_vars(dhd_bus_t *bus)
+static int brcmf_sdbrcm_write_vars(struct brcmf_bus *bus)
 {
        int bcmerror = 0;
        u32 varsize;
@@ -2901,7 +2989,7 @@ static int brcmf_sdbrcm_write_vars(dhd_bus_t *bus)
        return bcmerror;
 }
 
-static int brcmf_sdbrcm_download_state(dhd_bus_t *bus, bool enter)
+static int brcmf_sdbrcm_download_state(struct brcmf_bus *bus, bool enter)
 {
        uint retries;
        u32 regdata;
@@ -2948,17 +3036,17 @@ static int brcmf_sdbrcm_download_state(dhd_bus_t *bus, bool enter)
                /* Allow HT Clock now that the ARM is running. */
                bus->alp_only = false;
 
-               bus->dhd->busstate = DHD_BUS_LOAD;
+               bus->drvr->busstate = DHD_BUS_LOAD;
        }
 fail:
        return bcmerror;
 }
 
 int
-brcmf_sdbrcm_bus_iovar_op(struct brcmf_pub *dhdp, const char *name,
+brcmf_sdbrcm_bus_iovar_op(struct brcmf_pub *drvr, const char *name,
                          void *params, int plen, void *arg, int len, bool set)
 {
-       dhd_bus_t *bus = dhdp->bus;
+       struct brcmf_bus *bus = drvr->bus;
        const struct brcmu_iovar *vi = NULL;
        int bcmerror = 0;
        int val_size;
@@ -3043,7 +3131,7 @@ exit:
        return bcmerror;
 }
 
-void brcmf_sdbrcm_bus_stop(struct dhd_bus *bus, bool enforce_mutex)
+void brcmf_sdbrcm_bus_stop(struct brcmf_bus *bus, bool enforce_mutex)
 {
        u32 local_hostintmask;
        u8 saveclk;
@@ -3079,7 +3167,7 @@ void brcmf_sdbrcm_bus_stop(struct dhd_bus *bus, bool enforce_mutex)
        bus->hostintmask = 0;
 
        /* Change our idea of bus state */
-       bus->dhd->busstate = DHD_BUS_DOWN;
+       bus->drvr->busstate = DHD_BUS_DOWN;
 
        /* Force clocks on backplane to be sure F2 interrupt propagates */
        saveclk = brcmf_sdcard_cfg_read(bus->card, SDIO_FUNC_1,
@@ -3120,7 +3208,7 @@ void brcmf_sdbrcm_bus_stop(struct dhd_bus *bus, bool enforce_mutex)
 
        /* Clear rx control and wake any waiters */
        bus->rxlen = 0;
-       brcmf_os_ioctl_resp_wake(bus->dhd);
+       brcmf_os_ioctl_resp_wake(bus->drvr);
 
        /* Reset some F2 state stuff */
        bus->rxskip = false;
@@ -3128,15 +3216,11 @@ void brcmf_sdbrcm_bus_stop(struct dhd_bus *bus, bool enforce_mutex)
 
        if (enforce_mutex)
                brcmf_sdbrcm_sdunlock(bus);
-
-#if defined(OOB_INTR_ONLY)
-       brcmf_sdio_unregister_oob_intr();
-#endif         /* defined(OOB_INTR_ONLY) */
 }
 
-int brcmf_sdbrcm_bus_init(struct brcmf_pub *dhdp, bool enforce_mutex)
+int brcmf_sdbrcm_bus_init(struct brcmf_pub *drvr, bool enforce_mutex)
 {
-       dhd_bus_t *bus = dhdp->bus;
+       struct brcmf_bus *bus = drvr->bus;
        struct brcmf_timeout tmo;
        uint retries = 0;
        u8 ready, enable;
@@ -3146,17 +3230,17 @@ int brcmf_sdbrcm_bus_init(struct brcmf_pub *dhdp, bool enforce_mutex)
        DHD_TRACE(("%s: Enter\n", __func__));
 
        /* try to download image and nvram to the dongle */
-       if (dhdp->busstate == DHD_BUS_DOWN) {
+       if (drvr->busstate == DHD_BUS_DOWN) {
                if (!(brcmf_sdbrcm_download_firmware(bus, bus->card)))
                        return -1;
        }
 
-       ASSERT(bus->dhd);
-       if (!bus->dhd)
+       ASSERT(bus->drvr);
+       if (!bus->drvr)
                return 0;
 
        /* Start the watchdog timer */
-       bus->dhd->tickcnt = 0;
+       bus->drvr->tickcnt = 0;
        brcmf_sdbrcm_wd_timer(bus, brcmf_watchdog_ms);
 
        if (enforce_mutex)
@@ -3213,7 +3297,7 @@ int brcmf_sdbrcm_bus_init(struct brcmf_pub *dhdp, bool enforce_mutex)
                                 (u8) watermark, &err);
 
                /* Set bus state according to enable result */
-               dhdp->busstate = DHD_BUS_DATA;
+               drvr->busstate = DHD_BUS_DATA;
 
                bus->intdis = false;
                if (bus->intr) {
@@ -3252,7 +3336,7 @@ int brcmf_sdbrcm_bus_init(struct brcmf_pub *dhdp, bool enforce_mutex)
 #endif         /* defined(OOB_INTR_ONLY) */
 
        /* If we didn't come up, turn off backplane clock */
-       if (dhdp->busstate != DHD_BUS_DATA)
+       if (drvr->busstate != DHD_BUS_DATA)
                brcmf_sdbrcm_clkctl(bus, CLK_NONE, false);
 
 exit:
@@ -3262,7 +3346,7 @@ exit:
        return ret;
 }
 
-static void brcmf_sdbrcm_rxfail(dhd_bus_t *bus, bool abort, bool rtx)
+static void brcmf_sdbrcm_rxfail(struct brcmf_bus *bus, bool abort, bool rtx)
 {
        struct brcmf_sdio_card *card = bus->card;
        struct sdpcmd_regs *regs = bus->regs;
@@ -3322,11 +3406,11 @@ static void brcmf_sdbrcm_rxfail(dhd_bus_t *bus, bool abort, bool rtx)
 
        /* If we can't reach the device, signal failure */
        if (err || brcmf_sdcard_regfail(card))
-               bus->dhd->busstate = DHD_BUS_DOWN;
+               bus->drvr->busstate = DHD_BUS_DOWN;
 }
 
 static void
-brcmf_sdbrcm_read_control(dhd_bus_t *bus, u8 *hdr, uint len, uint doff)
+brcmf_sdbrcm_read_control(struct brcmf_bus *bus, u8 *hdr, uint len, uint doff)
 {
        struct brcmf_sdio_card *card = bus->card;
        uint rdlen, pad;
@@ -3342,7 +3426,7 @@ brcmf_sdbrcm_read_control(dhd_bus_t *bus, u8 *hdr, uint len, uint doff)
        ASSERT(bus->rxbuf);
        /* Set rxctl for frame (w/optional alignment) */
        bus->rxctl = bus->rxbuf;
-       if (dhd_alignctl) {
+       if (brcmf_alignctl) {
                bus->rxctl += firstread;
                pad = ((unsigned long)bus->rxctl % BRCMF_SDALIGN);
                if (pad)
@@ -3367,7 +3451,7 @@ brcmf_sdbrcm_read_control(dhd_bus_t *bus, u8 *hdr, uint len, uint doff)
        if (bus->roundup && bus->blocksize && (rdlen > bus->blocksize)) {
                pad = bus->blocksize - (rdlen % bus->blocksize);
                if ((pad <= bus->roundup) && (pad < bus->blocksize) &&
-                   ((len + pad) < bus->dhd->maxctl))
+                   ((len + pad) < bus->drvr->maxctl))
                        rdlen += pad;
        } else if (rdlen % BRCMF_SDALIGN) {
                rdlen += BRCMF_SDALIGN - (rdlen % BRCMF_SDALIGN);
@@ -3378,19 +3462,19 @@ brcmf_sdbrcm_read_control(dhd_bus_t *bus, u8 *hdr, uint len, uint doff)
                rdlen = roundup(rdlen, ALIGNMENT);
 
        /* Drop if the read is too big or it exceeds our maximum */
-       if ((rdlen + firstread) > bus->dhd->maxctl) {
+       if ((rdlen + firstread) > bus->drvr->maxctl) {
                DHD_ERROR(("%s: %d-byte control read exceeds %d-byte buffer\n",
-                          __func__, rdlen, bus->dhd->maxctl));
-               bus->dhd->rx_errors++;
+                          __func__, rdlen, bus->drvr->maxctl));
+               bus->drvr->rx_errors++;
                brcmf_sdbrcm_rxfail(bus, false, false);
                goto done;
        }
 
-       if ((len - doff) > bus->dhd->maxctl) {
+       if ((len - doff) > bus->drvr->maxctl) {
                DHD_ERROR(("%s: %d-byte ctl frame (%d-byte ctl data) exceeds "
                        "%d-byte limit\n",
-                       __func__, len, (len - doff), bus->dhd->maxctl));
-               bus->dhd->rx_errors++;
+                       __func__, len, (len - doff), bus->drvr->maxctl));
+               bus->drvr->rx_errors++;
                bus->rx_toolong++;
                brcmf_sdbrcm_rxfail(bus, false, false);
                goto done;
@@ -3428,10 +3512,10 @@ gotpkt:
 
 done:
        /* Awake any waiters */
-       brcmf_os_ioctl_resp_wake(bus->dhd);
+       brcmf_os_ioctl_resp_wake(bus->drvr);
 }
 
-static u8 brcmf_sdbrcm_rxglom(dhd_bus_t *bus, u8 rxseq)
+static u8 brcmf_sdbrcm_rxglom(struct brcmf_bus *bus, u8 rxseq)
 {
        u16 dlen, totlen;
        u8 *dptr, num = 0;
@@ -3591,7 +3675,7 @@ static u8 brcmf_sdbrcm_rxglom(dhd_bus_t *bus, u8 rxseq)
                if (errcode < 0) {
                        DHD_ERROR(("%s: glom read of %d bytes failed: %d\n",
                                   __func__, dlen, errcode));
-                       bus->dhd->rx_errors++;
+                       bus->drvr->rx_errors++;
 
                        if (bus->glomerr++ < 3) {
                                brcmf_sdbrcm_rxfail(bus, true, true);
@@ -3786,11 +3870,11 @@ static u8 brcmf_sdbrcm_rxglom(dhd_bus_t *bus, u8 rxseq)
                                        save_pfirst = pnext;
                                }
                                continue;
-                       } else if (brcmf_proto_hdrpull(bus->dhd, &ifidx, pfirst)
+                       } else if (brcmf_proto_hdrpull(bus->drvr, &ifidx, pfirst)
                                        != 0) {
                                DHD_ERROR(("%s: rx protocol error\n",
                                           __func__));
-                               bus->dhd->rx_errors++;
+                               bus->drvr->rx_errors++;
                                brcmu_pkt_buf_free_skb(pfirst);
                                if (plast) {
                                        plast->next = pnext;
@@ -3822,7 +3906,7 @@ static u8 brcmf_sdbrcm_rxglom(dhd_bus_t *bus, u8 rxseq)
                }
                if (num) {
                        brcmf_sdbrcm_sdunlock(bus);
-                       brcmf_rx_frame(bus->dhd, ifidx, save_pfirst, num);
+                       brcmf_rx_frame(bus->drvr, ifidx, save_pfirst, num);
                        brcmf_sdbrcm_sdlock(bus);
                }
 
@@ -3834,7 +3918,7 @@ static u8 brcmf_sdbrcm_rxglom(dhd_bus_t *bus, u8 rxseq)
 
 /* Return true if there may be more frames to read */
 static uint
-brcmf_sdbrcm_readframes(dhd_bus_t *bus, uint maxframes, bool *finished)
+brcmf_sdbrcm_readframes(struct brcmf_bus *bus, uint maxframes, bool *finished)
 {
        struct brcmf_sdio_card *card = bus->card;
 
@@ -3875,7 +3959,7 @@ brcmf_sdbrcm_readframes(dhd_bus_t *bus, uint maxframes, bool *finished)
        *finished = false;
 
        for (rxseq = bus->rx_seq, rxleft = maxframes;
-            !bus->rxskip && rxleft && bus->dhd->busstate != DHD_BUS_DOWN;
+            !bus->rxskip && rxleft && bus->drvr->busstate != DHD_BUS_DOWN;
             rxseq++, rxleft--) {
 
                /* Handle glomming separately */
@@ -3891,7 +3975,7 @@ brcmf_sdbrcm_readframes(dhd_bus_t *bus, uint maxframes, bool *finished)
                }
 
                /* Try doing single read if we can */
-               if (dhd_readahead && bus->nextlen) {
+               if (brcmf_readahead && bus->nextlen) {
                        u16 nextlen = bus->nextlen;
                        bus->nextlen = 0;
 
@@ -3933,7 +4017,7 @@ brcmf_sdbrcm_readframes(dhd_bus_t *bus, uint maxframes, bool *finished)
                                if (bus->bus == SPI_BUS) {
                                        bus->usebufpool = false;
                                        bus->rxctl = bus->rxbuf;
-                                       if (dhd_alignctl) {
+                                       if (brcmf_alignctl) {
                                                bus->rxctl += firstread;
                                                pad = ((unsigned long)bus->rxctl %
                                                      BRCMF_SDALIGN);
@@ -3998,7 +4082,7 @@ brcmf_sdbrcm_readframes(dhd_bus_t *bus, uint maxframes, bool *finished)
                                        DHD_ERROR(("%s (nextlen): read %d bytes failed: %d\n",
                                                __func__, rdlen, sdret));
                                        brcmu_pkt_buf_free_skb(pkt);
-                                       bus->dhd->rx_errors++;
+                                       bus->drvr->rx_errors++;
                                        /* Force retry w/normal header read.
                                         * Don't attempt NAK for
                                         * gSPI
@@ -4081,7 +4165,7 @@ brcmf_sdbrcm_readframes(dhd_bus_t *bus, uint maxframes, bool *finished)
                                bus->nextlen = 0;
                        }
 
-                       bus->dhd->rx_readahead_cnt++;
+                       bus->drvr->rx_readahead_cnt++;
 
                        /* Handle Flow Control */
                        fcbits = SDPCM_FCMASK_VALUE(
@@ -4303,7 +4387,7 @@ brcmf_sdbrcm_readframes(dhd_bus_t *bus, uint maxframes, bool *finished)
                        /* Too long -- skip this frame */
                        DHD_ERROR(("%s: too long: len %d rdlen %d\n",
                                   __func__, len, rdlen));
-                       bus->dhd->rx_errors++;
+                       bus->drvr->rx_errors++;
                        bus->rx_toolong++;
                        brcmf_sdbrcm_rxfail(bus, false, false);
                        continue;
@@ -4314,7 +4398,7 @@ brcmf_sdbrcm_readframes(dhd_bus_t *bus, uint maxframes, bool *finished)
                        /* Give up on data, request rtx of events */
                        DHD_ERROR(("%s: brcmu_pkt_buf_get_skb failed: rdlen %d"
                                   " chan %d\n", __func__, rdlen, chan));
-                       bus->dhd->rx_dropped++;
+                       bus->drvr->rx_dropped++;
                        brcmf_sdbrcm_rxfail(bus, false, RETRYCHAN(chan));
                        continue;
                }
@@ -4343,7 +4427,7 @@ brcmf_sdbrcm_readframes(dhd_bus_t *bus, uint maxframes, bool *finished)
                                       ? "data" : "test")),
                                   sdret));
                        brcmu_pkt_buf_free_skb(pkt);
-                       bus->dhd->rx_errors++;
+                       bus->drvr->rx_errors++;
                        brcmf_sdbrcm_rxfail(bus, true, RETRYCHAN(chan));
                        continue;
                }
@@ -4401,16 +4485,16 @@ deliver:
                if (pkt->len == 0) {
                        brcmu_pkt_buf_free_skb(pkt);
                        continue;
-               } else if (brcmf_proto_hdrpull(bus->dhd, &ifidx, pkt) != 0) {
+               } else if (brcmf_proto_hdrpull(bus->drvr, &ifidx, pkt) != 0) {
                        DHD_ERROR(("%s: rx protocol error\n", __func__));
                        brcmu_pkt_buf_free_skb(pkt);
-                       bus->dhd->rx_errors++;
+                       bus->drvr->rx_errors++;
                        continue;
                }
 
                /* Unlock during rx call */
                brcmf_sdbrcm_sdunlock(bus);
-               brcmf_rx_frame(bus->dhd, ifidx, pkt, 1);
+               brcmf_rx_frame(bus->drvr, ifidx, pkt, 1);
                brcmf_sdbrcm_sdlock(bus);
        }
        rxcount = maxframes - rxleft;
@@ -4430,7 +4514,7 @@ deliver:
        return rxcount;
 }
 
-static u32 brcmf_sdbrcm_hostmail(dhd_bus_t *bus)
+static u32 brcmf_sdbrcm_hostmail(struct brcmf_bus *bus)
 {
        struct sdpcmd_regs *regs = bus->regs;
        u32 intstatus = 0;
@@ -4504,7 +4588,7 @@ static u32 brcmf_sdbrcm_hostmail(dhd_bus_t *bus)
        return intstatus;
 }
 
-static bool brcmf_sdbrcm_dpc(dhd_bus_t *bus)
+static bool brcmf_sdbrcm_dpc(struct brcmf_bus *bus)
 {
        struct brcmf_sdio_card *card = bus->card;
        struct sdpcmd_regs *regs = bus->regs;
@@ -4535,7 +4619,7 @@ static bool brcmf_sdbrcm_dpc(dhd_bus_t *bus)
                if (err) {
                        DHD_ERROR(("%s: error reading DEVCTL: %d\n",
                                   __func__, err));
-                       bus->dhd->busstate = DHD_BUS_DOWN;
+                       bus->drvr->busstate = DHD_BUS_DOWN;
                } else {
                        ASSERT(devctl & SBSDIO_DEVCTL_CA_INT_ONLY);
                }
@@ -4547,7 +4631,7 @@ static bool brcmf_sdbrcm_dpc(dhd_bus_t *bus)
                if (err) {
                        DHD_ERROR(("%s: error reading CSR: %d\n", __func__,
                                   err));
-                       bus->dhd->busstate = DHD_BUS_DOWN;
+                       bus->drvr->busstate = DHD_BUS_DOWN;
                }
 
                DHD_INFO(("DPC: PENDING, devctl 0x%02x clkctl 0x%02x\n", devctl,
@@ -4559,7 +4643,7 @@ static bool brcmf_sdbrcm_dpc(dhd_bus_t *bus)
                        if (err) {
                                DHD_ERROR(("%s: error reading DEVCTL: %d\n",
                                           __func__, err));
-                               bus->dhd->busstate = DHD_BUS_DOWN;
+                               bus->drvr->busstate = DHD_BUS_DOWN;
                        }
                        devctl &= ~SBSDIO_DEVCTL_CA_INT_ONLY;
                        brcmf_sdcard_cfg_write(card, SDIO_FUNC_1,
@@ -4567,7 +4651,7 @@ static bool brcmf_sdbrcm_dpc(dhd_bus_t *bus)
                        if (err) {
                                DHD_ERROR(("%s: error writing DEVCTL: %d\n",
                                           __func__, err));
-                               bus->dhd->busstate = DHD_BUS_DOWN;
+                               bus->drvr->busstate = DHD_BUS_DOWN;
                        }
                        bus->clkstate = CLK_AVAIL;
                } else {
@@ -4727,12 +4811,12 @@ clkwait:
                 else await next interrupt */
        /* On failed register access, all bets are off:
                 no resched or interrupts */
-       if ((bus->dhd->busstate == DHD_BUS_DOWN) ||
-            brcmf_sdcard_regfail(card)) {
+       if ((bus->drvr->busstate == DHD_BUS_DOWN) ||
+           brcmf_sdcard_regfail(card)) {
                DHD_ERROR(("%s: failed backplane access over SDIO, halting "
                           "operation %d\n", __func__,
                          brcmf_sdcard_regfail(card)));
-               bus->dhd->busstate = DHD_BUS_DOWN;
+               bus->drvr->busstate = DHD_BUS_DOWN;
                bus->intstatus = 0;
        } else if (bus->clkstate == CLK_PENDING) {
                DHD_INFO(("%s: rescheduled due to CLK_PENDING awaiting "
@@ -4760,7 +4844,7 @@ clkwait:
 
 void brcmf_sdbrcm_isr(void *arg)
 {
-       dhd_bus_t *bus = (dhd_bus_t *) arg;
+       struct brcmf_bus *bus = (struct brcmf_bus *) arg;
        struct brcmf_sdio_card *card;
 
        DHD_TRACE(("%s: Enter\n", __func__));
@@ -4771,7 +4855,7 @@ void brcmf_sdbrcm_isr(void *arg)
        }
        card = bus->card;
 
-       if (bus->dhd->busstate == DHD_BUS_DOWN) {
+       if (bus->drvr->busstate == DHD_BUS_DOWN) {
                DHD_ERROR(("%s : bus is down. we have nothing to do\n",
                           __func__));
                return;
@@ -4807,7 +4891,7 @@ void brcmf_sdbrcm_isr(void *arg)
 }
 
 #ifdef SDTEST
-static void brcmf_sdbrcm_pktgen_init(dhd_bus_t *bus)
+static void brcmf_sdbrcm_pktgen_init(struct brcmf_bus *bus)
 {
        /* Default to specified length, or full range */
        if (brcmf_pktgen_len) {
@@ -4830,7 +4914,7 @@ static void brcmf_sdbrcm_pktgen_init(dhd_bus_t *bus)
        bus->pktgen_stop = 1;
 }
 
-static void brcmf_sdbrcm_pktgen(dhd_bus_t *bus)
+static void brcmf_sdbrcm_pktgen(struct brcmf_bus *bus)
 {
        struct sk_buff *pkt;
        u8 *data;
@@ -4938,7 +5022,7 @@ static void brcmf_sdbrcm_pktgen(dhd_bus_t *bus)
        }
 }
 
-static void brcmf_sdbrcm_sdtest_set(dhd_bus_t *bus, bool start)
+static void brcmf_sdbrcm_sdtest_set(struct brcmf_bus *bus, bool start)
 {
        struct sk_buff *pkt;
        u8 *data;
@@ -4965,7 +5049,7 @@ static void brcmf_sdbrcm_sdtest_set(dhd_bus_t *bus, bool start)
 }
 
 static void
-brcmf_sdbrcm_checkdied(dhd_bus_t *bus, struct sk_buff *pkt, uint seq)
+brcmf_sdbrcm_checkdied(struct brcmf_bus *bus, struct sk_buff *pkt, uint seq)
 {
        u8 *data;
        uint pktlen;
@@ -5067,15 +5151,15 @@ brcmf_sdbrcm_checkdied(dhd_bus_t *bus, struct sk_buff *pkt, uint seq)
 }
 #endif                         /* SDTEST */
 
-extern bool brcmf_sdbrcm_bus_watchdog(struct brcmf_pub *dhdp)
+extern bool brcmf_sdbrcm_bus_watchdog(struct brcmf_pub *drvr)
 {
-       dhd_bus_t *bus;
+       struct brcmf_bus *bus;
 
        DHD_TIMER(("%s: Enter\n", __func__));
 
-       bus = dhdp->bus;
+       bus = drvr->bus;
 
-       if (bus->dhd->dongle_reset)
+       if (bus->drvr->dongle_reset)
                return false;
 
        /* Ignore the timer if simulating bus down */
@@ -5123,7 +5207,7 @@ extern bool brcmf_sdbrcm_bus_watchdog(struct brcmf_pub *dhdp)
        }
 #ifdef BCMDBG
        /* Poll for console output periodically */
-       if (dhdp->busstate == DHD_BUS_DATA && brcmf_console_ms != 0) {
+       if (drvr->busstate == DHD_BUS_DATA && brcmf_console_ms != 0) {
                bus->console.count += brcmf_watchdog_ms;
                if (bus->console.count >= brcmf_console_ms) {
                        bus->console.count -= brcmf_console_ms;
@@ -5168,7 +5252,7 @@ extern bool brcmf_sdbrcm_bus_watchdog(struct brcmf_pub *dhdp)
 static int brcmf_sdbrcm_bus_console_in(struct brcmf_pub *drvr,
                                       unsigned char *msg, uint msglen)
 {
-       dhd_bus_t *bus = drvr->bus;
+       struct brcmf_bus *bus = drvr->bus;
        u32 addr, val;
        int rv;
        struct sk_buff *pkt;
@@ -5181,7 +5265,7 @@ static int brcmf_sdbrcm_bus_console_in(struct brcmf_pub *drvr,
        brcmf_sdbrcm_sdlock(bus);
 
        /* Don't allow input if dongle is in reset */
-       if (bus->dhd->dongle_reset) {
+       if (bus->drvr->dongle_reset) {
                brcmf_sdbrcm_sdunlock(bus);
                return -EPERM;
        }
@@ -5246,7 +5330,7 @@ static void *brcmf_sdbrcm_probe(u16 venid, u16 devid, u16 bus_no,
                           void *card)
 {
        int ret;
-       dhd_bus_t *bus;
+       struct brcmf_bus *bus;
 
        /* Init global variables at run-time, not as part of the declaration.
         * This is required to support init/de-init of the driver.
@@ -5258,9 +5342,9 @@ static void *brcmf_sdbrcm_probe(u16 venid, u16 devid, u16 bus_no,
         */
        brcmf_txbound = DHD_TXBOUND;
        brcmf_rxbound = DHD_RXBOUND;
-       dhd_alignctl = true;
+       brcmf_alignctl = true;
        sd1idle = true;
-       dhd_readahead = true;
+       brcmf_readahead = true;
        retrydata = false;
        brcmf_dongle_memsize = 0;
        dhd_txminmax = DHD_TXMINMAX;
@@ -5320,9 +5404,9 @@ static void *brcmf_sdbrcm_probe(u16 venid, u16 devid, u16 bus_no,
        }
 
        /* Allocate private bus interface state */
-       bus = kzalloc(sizeof(dhd_bus_t), GFP_ATOMIC);
+       bus = kzalloc(sizeof(struct brcmf_bus), GFP_ATOMIC);
        if (!bus) {
-               DHD_ERROR(("%s: kmalloc of dhd_bus_t failed\n", __func__));
+               DHD_ERROR(("%s: kmalloc of struct dhd_bus failed\n", __func__));
                goto fail;
        }
        bus->card = card;
@@ -5386,8 +5470,8 @@ static void *brcmf_sdbrcm_probe(u16 venid, u16 devid, u16 bus_no,
        }
 
        /* Attach to the dhd/OS/network interface */
-       bus->dhd = brcmf_attach(bus, SDPCM_RESERVE);
-       if (!bus->dhd) {
+       bus->drvr = brcmf_attach(bus, SDPCM_RESERVE);
+       if (!bus->drvr) {
                DHD_ERROR(("%s: dhd_attach failed\n", __func__));
                goto fail;
        }
@@ -5418,7 +5502,7 @@ static void *brcmf_sdbrcm_probe(u16 venid, u16 devid, u16 bus_no,
        DHD_INFO(("%s: completed!!\n", __func__));
 
        /* if firmware path present try to download and bring up bus */
-       ret = brcmf_bus_start(bus->dhd);
+       ret = brcmf_bus_start(bus->drvr);
        if (ret != 0) {
                if (ret == -ENOLINK) {
                        DHD_ERROR(("%s: dongle is not responding\n", __func__));
@@ -5426,7 +5510,7 @@ static void *brcmf_sdbrcm_probe(u16 venid, u16 devid, u16 bus_no,
                }
        }
        /* Ok, have the per-port tell the stack we're open for business */
-       if (brcmf_net_attach(bus->dhd, 0) != 0) {
+       if (brcmf_net_attach(bus->drvr, 0) != 0) {
                DHD_ERROR(("%s: Net attach failed!!\n", __func__));
                goto fail;
        }
@@ -5439,7 +5523,7 @@ fail:
 }
 
 static bool
-brcmf_sdbrcm_probe_attach(struct dhd_bus *bus, void *card, void *regsva,
+brcmf_sdbrcm_probe_attach(struct brcmf_bus *bus, void *card, void *regsva,
                          u16 devid)
 {
        u8 clkctl = 0;
@@ -5532,13 +5616,13 @@ fail:
        return false;
 }
 
-static bool brcmf_sdbrcm_probe_malloc(dhd_bus_t *bus, void *card)
+static bool brcmf_sdbrcm_probe_malloc(struct brcmf_bus *bus, void *card)
 {
        DHD_TRACE(("%s: Enter\n", __func__));
 
-       if (bus->dhd->maxctl) {
+       if (bus->drvr->maxctl) {
                bus->rxblen =
-                   roundup((bus->dhd->maxctl + SDPCM_HDRLEN),
+                   roundup((bus->drvr->maxctl + SDPCM_HDRLEN),
                            ALIGNMENT) + BRCMF_SDALIGN;
                bus->rxbuf = kmalloc(bus->rxblen, GFP_ATOMIC);
                if (!(bus->rxbuf)) {
@@ -5572,7 +5656,7 @@ fail:
        return false;
 }
 
-static bool brcmf_sdbrcm_probe_init(dhd_bus_t *bus, void *card)
+static bool brcmf_sdbrcm_probe_init(struct brcmf_bus *bus, void *card)
 {
        s32 fnum;
 
@@ -5586,7 +5670,7 @@ static bool brcmf_sdbrcm_probe_init(dhd_bus_t *bus, void *card)
        brcmf_sdcard_cfg_write(card, SDIO_FUNC_0, SDIO_CCCR_IOEx,
                               SDIO_FUNC_ENABLE_1, NULL);
 
-       bus->dhd->busstate = DHD_BUS_DOWN;
+       bus->drvr->busstate = DHD_BUS_DOWN;
        bus->sleeping = false;
        bus->rxflow = false;
        bus->prev_rxlim_hit = 0;
@@ -5629,7 +5713,7 @@ static bool brcmf_sdbrcm_probe_init(dhd_bus_t *bus, void *card)
 }
 
 static bool
-brcmf_sdbrcm_download_firmware(struct dhd_bus *bus, void *card)
+brcmf_sdbrcm_download_firmware(struct brcmf_bus *bus, void *card)
 {
        bool ret;
 
@@ -5644,7 +5728,7 @@ brcmf_sdbrcm_download_firmware(struct dhd_bus *bus, void *card)
 }
 
 /* Detach and free everything */
-static void brcmf_sdbrcm_release(dhd_bus_t *bus)
+static void brcmf_sdbrcm_release(struct brcmf_bus *bus)
 {
        DHD_TRACE(("%s: Enter\n", __func__));
 
@@ -5653,10 +5737,10 @@ static void brcmf_sdbrcm_release(dhd_bus_t *bus)
                brcmf_sdcard_intr_disable(bus->card);
                brcmf_sdcard_intr_dereg(bus->card);
 
-               if (bus->dhd) {
-                       brcmf_detach(bus->dhd);
+               if (bus->drvr) {
+                       brcmf_detach(bus->drvr);
                        brcmf_sdbrcm_release_dongle(bus);
-                       bus->dhd = NULL;
+                       bus->drvr = NULL;
                }
 
                brcmf_sdbrcm_release_malloc(bus);
@@ -5667,11 +5751,11 @@ static void brcmf_sdbrcm_release(dhd_bus_t *bus)
        DHD_TRACE(("%s: Disconnected\n", __func__));
 }
 
-static void brcmf_sdbrcm_release_malloc(dhd_bus_t *bus)
+static void brcmf_sdbrcm_release_malloc(struct brcmf_bus *bus)
 {
        DHD_TRACE(("%s: Enter\n", __func__));
 
-       if (bus->dhd && bus->dhd->dongle_reset)
+       if (bus->drvr && bus->drvr->dongle_reset)
                return;
 
        kfree(bus->rxbuf);
@@ -5682,11 +5766,11 @@ static void brcmf_sdbrcm_release_malloc(dhd_bus_t *bus)
        bus->databuf = NULL;
 }
 
-static void brcmf_sdbrcm_release_dongle(dhd_bus_t *bus)
+static void brcmf_sdbrcm_release_dongle(struct brcmf_bus *bus)
 {
        DHD_TRACE(("%s: Enter\n", __func__));
 
-       if (bus->dhd && bus->dhd->dongle_reset)
+       if (bus->drvr && bus->drvr->dongle_reset)
                return;
 
        if (bus->ci) {
@@ -5703,12 +5787,12 @@ static void brcmf_sdbrcm_release_dongle(dhd_bus_t *bus)
 
 static void brcmf_sdbrcm_disconnect(void *ptr)
 {
-       dhd_bus_t *bus = (dhd_bus_t *)ptr;
+       struct brcmf_bus *bus = (struct brcmf_bus *)ptr;
 
        DHD_TRACE(("%s: Enter\n", __func__));
 
        if (bus) {
-               ASSERT(bus->dhd);
+               ASSERT(bus->drvr);
                brcmf_sdbrcm_release(bus);
        }
 
@@ -5725,7 +5809,7 @@ static struct brcmf_sdioh_driver dhd_sdio = {
        brcmf_sdbrcm_disconnect
 };
 
-int dhd_bus_register(void)
+int brcmf_bus_register(void)
 {
        DHD_TRACE(("%s: Enter\n", __func__));
 
@@ -5747,14 +5831,14 @@ int dhd_bus_register(void)
        return brcmf_sdio_register(&dhd_sdio);
 }
 
-void dhd_bus_unregister(void)
+void brcmf_bus_unregister(void)
 {
        DHD_TRACE(("%s: Enter\n", __func__));
 
        brcmf_sdio_unregister();
 }
 
-static int brcmf_sdbrcm_download_code_file(struct dhd_bus *bus)
+static int brcmf_sdbrcm_download_code_file(struct brcmf_bus *bus)
 {
        int offset = 0;
        uint len;
@@ -5856,7 +5940,7 @@ static uint brcmf_process_nvram_vars(char *varbuf, uint len)
        return buf_len;
 }
 
-static int brcmf_sdbrcm_download_nvram(struct dhd_bus *bus)
+static int brcmf_sdbrcm_download_nvram(struct brcmf_bus *bus)
 {
        uint len;
        char *memblock = NULL;
@@ -5908,7 +5992,7 @@ err:
        return ret;
 }
 
-static int _brcmf_sdbrcm_download_firmware(struct dhd_bus *bus)
+static int _brcmf_sdbrcm_download_firmware(struct brcmf_bus *bus)
 {
        int bcmerror = -1;
 
@@ -5951,46 +6035,48 @@ err:
 
 
 static int
-brcmf_sdbrcm_send_buf(dhd_bus_t *bus, u32 addr, uint fn, uint flags,
+brcmf_sdbrcm_send_buf(struct brcmf_bus *bus, u32 addr, uint fn, uint flags,
                    u8 *buf, uint nbytes, struct sk_buff *pkt,
-                   brcmf_sdio_cmplt_fn_t complete, void *handle)
+                   void (*complete)(void *handle, int status,
+                                    bool sync_waiting),
+                   void *handle)
 {
        return brcmf_sdcard_send_buf
                (bus->card, addr, fn, flags, buf, nbytes, pkt, complete,
                 handle);
 }
 
-uint dhd_bus_chip(struct dhd_bus *bus)
+uint brcmf_bus_chip(struct brcmf_bus *bus)
 {
        ASSERT(bus->ci != NULL);
        return bus->ci->chip;
 }
 
-void *dhd_bus_pub(struct dhd_bus *bus)
+void *brcmf_bus_drvr(struct brcmf_bus *bus)
 {
-       return bus->dhd;
+       return bus->drvr;
 }
 
-void *dhd_bus_txq(struct dhd_bus *bus)
+void *brcmf_bus_txq(struct brcmf_bus *bus)
 {
        return &bus->txq;
 }
 
-uint dhd_bus_hdrlen(struct dhd_bus *bus)
+uint brcmf_bus_hdrlen(struct brcmf_bus *bus)
 {
        return SDPCM_HDRLEN;
 }
 
-int brcmf_bus_devreset(struct brcmf_pub *dhdp, u8 flag)
+int brcmf_bus_devreset(struct brcmf_pub *drvr, u8 flag)
 {
        int bcmerror = 0;
-       dhd_bus_t *bus;
+       struct brcmf_bus *bus;
 
-       bus = dhdp->bus;
+       bus = drvr->bus;
 
        if (flag == true) {
                brcmf_sdbrcm_wd_timer(bus, 0);
-               if (!bus->dhd->dongle_reset) {
+               if (!bus->drvr->dongle_reset) {
                        /* Expect app to have torn down any
                         connection before calling */
                        /* Stop the bus, disable F2 */
@@ -6000,8 +6086,8 @@ int brcmf_bus_devreset(struct brcmf_pub *dhdp, u8 flag)
                         detach from the dongle */
                        brcmf_sdbrcm_release_dongle(bus);
 
-                       bus->dhd->dongle_reset = true;
-                       bus->dhd->up = false;
+                       bus->drvr->dongle_reset = true;
+                       bus->drvr->up = false;
 
                        DHD_TRACE(("%s:  WLAN OFF DONE\n", __func__));
                        /* App can now remove power from device */
@@ -6012,10 +6098,8 @@ int brcmf_bus_devreset(struct brcmf_pub *dhdp, u8 flag)
 
                DHD_TRACE(("\n\n%s: == WLAN ON ==\n", __func__));
 
-               if (bus->dhd->dongle_reset) {
+               if (bus->drvr->dongle_reset) {
                        /* Turn on WLAN */
-                       /* Reset SD client */
-                       brcmf_sdcard_reset(bus->card);
 
                        /* Attempt to re-attach & download */
                        if (brcmf_sdbrcm_probe_attach(bus, bus->card,
@@ -6024,12 +6108,10 @@ int brcmf_bus_devreset(struct brcmf_pub *dhdp, u8 flag)
                                /* Attempt to download binary to the dongle */
                                if (brcmf_sdbrcm_probe_init(bus, bus->card)) {
                                        /* Re-init bus, enable F2 transfer */
-                                       brcmf_sdbrcm_bus_init(
-                                               (struct brcmf_pub *) bus->dhd,
-                                               false);
+                                       brcmf_sdbrcm_bus_init(bus->drvr, false);
 
-                                       bus->dhd->dongle_reset = false;
-                                       bus->dhd->up = true;
+                                       bus->drvr->dongle_reset = false;
+                                       bus->drvr->up = true;
 
                                        DHD_TRACE(("%s: WLAN ON DONE\n",
                                                   __func__));
@@ -6187,7 +6269,7 @@ brcmf_sdbrcm_chip_disablecore(struct brcmf_sdio_card *card, u32 corebase)
 }
 
 static int
-brcmf_sdbrcm_chip_attach(struct dhd_bus *bus, void *regs)
+brcmf_sdbrcm_chip_attach(struct brcmf_bus *bus, void *regs)
 {
        struct chip_info *ci;
        int err;
@@ -6370,7 +6452,7 @@ static const struct sdiod_drive_str sdiod_drive_strength_tab3[] = {
 #define SDIOD_DRVSTR_KEY(chip, pmu)     (((chip) << 16) | (pmu))
 
 static void
-brcmf_sdbrcm_sdiod_drive_strength_init(struct dhd_bus *bus, u32 drivestrength) {
+brcmf_sdbrcm_sdiod_drive_strength_init(struct brcmf_bus *bus, u32 drivestrength) {
        struct sdiod_drive_str *str_tab = NULL;
        u32 str_mask = 0;
        u32 str_shift = 0;
@@ -6434,7 +6516,7 @@ brcmf_sdbrcm_sdiod_drive_strength_init(struct dhd_bus *bus, u32 drivestrength) {
 }
 
 static void
-brcmf_sdbrcm_chip_detach(struct dhd_bus *bus)
+brcmf_sdbrcm_chip_detach(struct brcmf_bus *bus)
 {
        DHD_TRACE(("%s: Enter\n", __func__));
 
@@ -6443,7 +6525,7 @@ brcmf_sdbrcm_chip_detach(struct dhd_bus *bus)
 }
 
 static void
-brcmf_sdbrcm_wait_for_event(dhd_bus_t *bus, bool *lockvar)
+brcmf_sdbrcm_wait_for_event(struct brcmf_bus *bus, bool *lockvar)
 {
        brcmf_sdbrcm_sdunlock(bus);
        wait_event_interruptible_timeout(bus->ctrl_wait,
@@ -6453,7 +6535,7 @@ brcmf_sdbrcm_wait_for_event(dhd_bus_t *bus, bool *lockvar)
 }
 
 static void
-brcmf_sdbrcm_wait_event_wakeup(dhd_bus_t *bus)
+brcmf_sdbrcm_wait_event_wakeup(struct brcmf_bus *bus)
 {
        if (waitqueue_active(&bus->ctrl_wait))
                wake_up_interruptible(&bus->ctrl_wait);
@@ -6463,7 +6545,7 @@ brcmf_sdbrcm_wait_event_wakeup(dhd_bus_t *bus)
 static int
 brcmf_sdbrcm_watchdog_thread(void *data)
 {
-       dhd_bus_t *bus = (dhd_bus_t *)data;
+       struct brcmf_bus *bus = (struct brcmf_bus *)data;
 
        /* This thread doesn't need any user-level access,
        * so get rid of all our resources
@@ -6481,10 +6563,10 @@ brcmf_sdbrcm_watchdog_thread(void *data)
                if (kthread_should_stop())
                        break;
                if (!wait_for_completion_interruptible(&bus->watchdog_wait)) {
-                       if (bus->dhd->dongle_reset == false)
-                               brcmf_sdbrcm_bus_watchdog(bus->dhd);
+                       if (bus->drvr->dongle_reset == false)
+                               brcmf_sdbrcm_bus_watchdog(bus->drvr);
                        /* Count the tick for reference */
-                       bus->dhd->tickcnt++;
+                       bus->drvr->tickcnt++;
                } else
                        break;
        }
@@ -6494,7 +6576,7 @@ brcmf_sdbrcm_watchdog_thread(void *data)
 static void
 brcmf_sdbrcm_watchdog(unsigned long data)
 {
-       dhd_bus_t *bus = (dhd_bus_t *)data;
+       struct brcmf_bus *bus = (struct brcmf_bus *)data;
 
        if (brcmf_watchdog_prio >= 0) {
                if (bus->watchdog_tsk)
@@ -6502,10 +6584,10 @@ brcmf_sdbrcm_watchdog(unsigned long data)
                else
                        return;
        } else {
-               brcmf_sdbrcm_bus_watchdog(bus->dhd);
+               brcmf_sdbrcm_bus_watchdog(bus->drvr);
 
                /* Count the tick for reference */
-               bus->dhd->tickcnt++;
+               bus->drvr->tickcnt++;
        }
 
        /* Reschedule the watchdog */
@@ -6514,12 +6596,12 @@ brcmf_sdbrcm_watchdog(unsigned long data)
 }
 
 void
-brcmf_sdbrcm_wd_timer(struct dhd_bus *bus, uint wdtick)
+brcmf_sdbrcm_wd_timer(struct brcmf_bus *bus, uint wdtick)
 {
        static uint save_ms;
 
        /* don't start the wd until fw is loaded */
-       if (bus->dhd->busstate == DHD_BUS_DOWN)
+       if (bus->drvr->busstate == DHD_BUS_DOWN)
                return;
 
        /* Totally stop the timer */
@@ -6558,7 +6640,7 @@ brcmf_sdbrcm_wd_timer(struct dhd_bus *bus, uint wdtick)
 
 static int brcmf_sdbrcm_dpc_thread(void *data)
 {
-       dhd_bus_t *bus = (dhd_bus_t *) data;
+       struct brcmf_bus *bus = (struct brcmf_bus *) data;
 
        /* This thread doesn't need any user-level access,
         * so get rid of all our resources
@@ -6578,7 +6660,7 @@ static int brcmf_sdbrcm_dpc_thread(void *data)
                if (!wait_for_completion_interruptible(&bus->dpc_wait)) {
                        /* Call bus dpc unless it indicated down
                        (then clean stop) */
-                       if (bus->dhd->busstate != DHD_BUS_DOWN) {
+                       if (bus->drvr->busstate != DHD_BUS_DOWN) {
                                if (brcmf_sdbrcm_dpc(bus))
                                        complete(&bus->dpc_wait);
                        } else {
@@ -6592,17 +6674,17 @@ static int brcmf_sdbrcm_dpc_thread(void *data)
 
 static void brcmf_sdbrcm_dpc_tasklet(unsigned long data)
 {
-       dhd_bus_t *bus = (dhd_bus_t *) data;
+       struct brcmf_bus *bus = (struct brcmf_bus *) data;
 
        /* Call bus dpc unless it indicated down (then clean stop) */
-       if (bus->dhd->busstate != DHD_BUS_DOWN) {
+       if (bus->drvr->busstate != DHD_BUS_DOWN) {
                if (brcmf_sdbrcm_dpc(bus))
                        tasklet_schedule(&bus->tasklet);
        } else
                brcmf_sdbrcm_bus_stop(bus, true);
 }
 
-static void brcmf_sdbrcm_sched_dpc(dhd_bus_t *bus)
+static void brcmf_sdbrcm_sched_dpc(struct brcmf_bus *bus)
 {
        if (bus->dpc_tsk) {
                complete(&bus->dpc_wait);
@@ -6612,7 +6694,7 @@ static void brcmf_sdbrcm_sched_dpc(dhd_bus_t *bus)
        tasklet_schedule(&bus->tasklet);
 }
 
-static void brcmf_sdbrcm_sdlock(dhd_bus_t *bus)
+static void brcmf_sdbrcm_sdlock(struct brcmf_bus *bus)
 {
        if (bus->threads_only)
                down(&bus->sdsem);
@@ -6620,7 +6702,7 @@ static void brcmf_sdbrcm_sdlock(dhd_bus_t *bus)
                spin_lock_bh(&bus->sdlock);
 }
 
-static void brcmf_sdbrcm_sdunlock(dhd_bus_t *bus)
+static void brcmf_sdbrcm_sdunlock(struct brcmf_bus *bus)
 {
        if (bus->threads_only)
                up(&bus->sdsem);
@@ -6628,7 +6710,7 @@ static void brcmf_sdbrcm_sdunlock(dhd_bus_t *bus)
                spin_unlock_bh(&bus->sdlock);
 }
 
-static int brcmf_sdbrcm_get_image(char *buf, int len, struct dhd_bus *bus)
+static int brcmf_sdbrcm_get_image(char *buf, int len, struct brcmf_bus *bus)
 {
        if (bus->firmware->size < bus->fw_ptr + len)
                len = bus->firmware->size - bus->fw_ptr;