pcicore_down(sii->pch, SI_PCIDOWN);
 }
 
-/*
- * Configure the pci core for pci client (NIC) action
- * coremask is the bitvec of cores by index to be enabled.
- */
-void ai_pci_setup(struct si_pub *sih, uint coremask)
-{
-       struct si_info *sii;
-       u32 w;
-
-       sii = (struct si_info *)sih;
-
-       /*
-        * Enable sb->pci interrupts.  Assume
-        * PCI rev 2.3 support was added in pci core rev 6 and things changed..
-        */
-       if (PCIE(sih)) {
-               /* pci config write to set this core bit in PCIIntMask */
-               pci_read_config_dword(sii->pcibus, PCI_INT_MASK, &w);
-               w |= (coremask << PCI_SBIM_SHIFT);
-               pci_write_config_dword(sii->pcibus, PCI_INT_MASK, w);
-       }
-}
-
 /*
  * Fixup SROMless PCI device's configuration.
  * The current core may be changed upon return.
 
 extern struct si_pub *ai_attach(struct bcma_bus *pbus);
 extern void ai_detach(struct si_pub *sih);
 extern uint ai_cc_reg(struct si_pub *sih, uint regoff, u32 mask, u32 val);
-extern void ai_pci_setup(struct si_pub *sih, uint coremask);
 extern void ai_clkctl_init(struct si_pub *sih);
 extern u16 ai_clkctl_fast_pwrup_delay(struct si_pub *sih);
 extern bool ai_clkctl_cc(struct si_pub *sih, uint mode);
 
 
 static int brcms_b_up_prep(struct brcms_hardware *wlc_hw)
 {
-       uint coremask;
-
        BCMMSG(wlc_hw->wlc->wiphy, "wl%d\n", wlc_hw->unit);
 
        /*
         * Configure pci/pcmcia here instead of in brcms_c_attach()
         * to allow mfg hotswap:  down, hotswap (chip power cycle), up.
         */
-       coremask = (1 << wlc_hw->wlc->core->coreidx);
-
-       ai_pci_setup(wlc_hw->sih, coremask);
+       bcma_core_pci_irq_ctl(&wlc_hw->d11core->bus->drv_pci, wlc_hw->d11core,
+                             true);
 
        /*
         * Need to read the hwradio status here to cover the case where the