{
        struct wl_info *wl = NULL;
        int unit, err;
-
        unsigned long base_addr;
        struct ieee80211_hw *hw;
        u8 perm[ETH_ALEN];
 
        base_addr = regs;
 
-       if (bustype == PCI_BUS) {
-               wl->piomode = false;
-       } else if (bustype == RPC_BUS) {
+       if (bustype == PCI_BUS || bustype == RPC_BUS) {
                /* Do nothing */
        } else {
                bustype = PCI_BUS;
        }
 
        /* common load-time initialization */
-       wl->wlc = wlc_attach((void *)wl, vendor, device, unit, wl->piomode,
+       wl->wlc = wlc_attach((void *)wl, vendor, device, unit, false,
                             wl->regsva, wl->bcm_bustype, btparam, &err);
        wl_release_fw(wl);
        if (!wl->wlc) {
 
 
        spinlock_t lock;        /* per-device perimeter lock */
        spinlock_t isr_lock;    /* per-device ISR synchronization lock */
+
+       /* bus type and regsva for unmap in wl_free() */
        uint bcm_bustype;       /* bus type */
-       bool piomode;           /* set from insmod argument */
        void *regsva;           /* opaque chip registers virtual address */
+
+       /* timer related fields */
        atomic_t callbacks;     /* # outstanding callback functions */
        struct wl_timer *timers;        /* timer cleanup queue */
+
        struct tasklet_struct tasklet;  /* dpc tasklet */
        bool resched;           /* dpc needs to be and is rescheduled */
 #ifdef LINUXSTA_PS