{
 }
 
+static int brcmf_pcie_preinit(struct device *dev)
+{
+       struct brcmf_bus *bus_if = dev_get_drvdata(dev);
+       struct brcmf_pciedev *buspub = bus_if->bus_priv.pcie;
+
+       brcmf_dbg(PCIE, "Enter\n");
+
+       brcmf_pcie_intr_enable(buspub->devinfo);
+       brcmf_pcie_hostready(buspub->devinfo);
+
+       return 0;
+}
 
 static int brcmf_pcie_tx(struct device *dev, struct sk_buff *skb)
 {
 }
 
 static const struct brcmf_bus_ops brcmf_pcie_bus_ops = {
+       .preinit = brcmf_pcie_preinit,
        .txdata = brcmf_pcie_tx,
        .stop = brcmf_pcie_down,
        .txctl = brcmf_pcie_tx_ctlpkt,
 
        init_waitqueue_head(&devinfo->mbdata_resp_wait);
 
-       brcmf_pcie_intr_enable(devinfo);
-       brcmf_pcie_hostready(devinfo);
-
        ret = brcmf_attach(&devinfo->pdev->dev);
        if (ret)
                goto fail;