len = roundup(len, ALIGNMENT);
 
        do {
-               ret = brcmf_sdbrcm_send_buf(bus,
-                       brcmf_sdcard_cur_sbwad(bus->sdiodev),
-                       SDIO_FUNC_2, F2SYNC, frame, len, pkt);
+               ret = brcmf_sdbrcm_send_buf(bus, bus->sdiodev->sbwad,
+                                           SDIO_FUNC_2, F2SYNC, frame,
+                                           len, pkt);
                bus->f2txdata++;
 
                if (ret < 0) {
 
                do {
                        bus->ctrl_frame_stat = false;
-                       ret = brcmf_sdbrcm_send_buf(bus,
-                               brcmf_sdcard_cur_sbwad(bus->sdiodev),
-                               SDIO_FUNC_2,
-                               F2SYNC, frame, len, NULL);
+                       ret = brcmf_sdbrcm_send_buf(bus, bus->sdiodev->sbwad,
+                                       SDIO_FUNC_2, F2SYNC, frame, len, NULL);
 
                        if (ret < 0) {
                                /* On failure, abort the command and
 
 xfer_done:
        /* Return the window to backplane enumeration space for core access */
-       if (brcmf_sdcard_set_sbaddr_window(bus->sdiodev,
-                                          brcmf_sdcard_cur_sbwad(
-                                                       bus->sdiodev)))
+       if (brcmf_sdcard_set_sbaddr_window(bus->sdiodev, bus->sdiodev->sbwad))
                brcmf_dbg(ERROR, "FAILED to set window back to 0x%x\n",
-                         brcmf_sdcard_cur_sbwad(bus->sdiodev));
+                         bus->sdiodev->sbwad);
 
        return bcmerror;
 }
 
        /* Read remainder of frame body into the rxctl buffer */
        sdret = brcmf_sdcard_recv_buf(bus->sdiodev,
-                               brcmf_sdcard_cur_sbwad(bus->sdiodev),
+                               bus->sdiodev->sbwad,
                                SDIO_FUNC_2,
                                F2SYNC, (bus->rxctl + firstread), rdlen,
                                NULL);
                 */
                if (usechain) {
                        errcode = brcmf_sdcard_recv_buf(bus->sdiodev,
-                                       brcmf_sdcard_cur_sbwad(bus->sdiodev),
+                                       bus->sdiodev->sbwad,
                                        SDIO_FUNC_2,
                                        F2SYNC, (u8 *) pfirst->data, dlen,
                                        pfirst);
                } else if (bus->dataptr) {
                        errcode = brcmf_sdcard_recv_buf(bus->sdiodev,
-                                       brcmf_sdcard_cur_sbwad(bus->sdiodev),
+                                       bus->sdiodev->sbwad,
                                        SDIO_FUNC_2,
                                        F2SYNC, bus->dataptr, dlen,
                                        NULL);
                                rxbuf = (u8 *) (pkt->data);
                                /* Read the entire frame */
                                sdret = brcmf_sdcard_recv_buf(bus->sdiodev,
-                                               brcmf_sdcard_cur_sbwad(
-                                                       bus->sdiodev),
+                                               bus->sdiodev->sbwad,
                                                SDIO_FUNC_2, F2SYNC,
                                                rxbuf, rdlen,
                                                pkt);
                }
 
                /* Read frame header (hardware and software) */
-               sdret = brcmf_sdcard_recv_buf(bus->sdiodev,
-                               brcmf_sdcard_cur_sbwad(bus->sdiodev),
+               sdret = brcmf_sdcard_recv_buf(bus->sdiodev, bus->sdiodev->sbwad,
                                SDIO_FUNC_2, F2SYNC, bus->rxhdr, firstread,
                                NULL);
                bus->f2rxhdrs++;
                PKTALIGN(pkt, rdlen, BRCMF_SDALIGN);
 
                /* Read the remaining frame data */
-               sdret = brcmf_sdcard_recv_buf(bus->sdiodev,
-                               brcmf_sdcard_cur_sbwad(bus->sdiodev),
+               sdret = brcmf_sdcard_recv_buf(bus->sdiodev, bus->sdiodev->sbwad,
                                SDIO_FUNC_2, F2SYNC, ((u8 *) (pkt->data)),
                                rdlen, pkt);
                bus->f2rxdata++;
                (bus->clkstate == CLK_AVAIL)) {
                int ret, i;
 
-               ret = brcmf_sdbrcm_send_buf(bus,
-                       brcmf_sdcard_cur_sbwad(bus->sdiodev),
+               ret = brcmf_sdbrcm_send_buf(bus, bus->sdiodev->sbwad,
                        SDIO_FUNC_2, F2SYNC, (u8 *) bus->ctrl_frame_buf,
                        (u32) bus->ctrl_frame_len, NULL);