brcmsmac: do not access host_pci
authorHauke Mehrtens <hauke@hauke-m.de>
Sun, 29 Apr 2012 00:50:41 +0000 (02:50 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 16 May 2012 16:45:26 +0000 (12:45 -0400)
The irq number is copied from the PCIe host device to the bcma cores so
just request it using the bcma core device.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Tested-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c

index b8350ff9e8c6ba322ea5acf74fa5ad26eee26e55..50f92a0b7c41408c0b4a416d9ffe82c69e3a70fd 100644 (file)
@@ -769,7 +769,7 @@ void brcms_dpc(unsigned long data)
  * Precondition: Since this function is called in brcms_pci_probe() context,
  * no locking is required.
  */
-static int brcms_request_fw(struct brcms_info *wl, struct pci_dev *pdev)
+static int brcms_request_fw(struct brcms_info *wl, struct bcma_device *pdev)
 {
        int status;
        struct device *device = &pdev->dev;
@@ -1021,7 +1021,7 @@ static struct brcms_info *brcms_attach(struct bcma_device *pdev)
        spin_lock_init(&wl->isr_lock);
 
        /* prepare ucode */
-       if (brcms_request_fw(wl, pdev->bus->host_pci) < 0) {
+       if (brcms_request_fw(wl, pdev) < 0) {
                wiphy_err(wl->wiphy, "%s: Failed to find firmware usually in "
                          "%s\n", KBUILD_MODNAME, "/lib/firmware/brcm");
                brcms_release_fw(wl);
@@ -1042,12 +1042,12 @@ static struct brcms_info *brcms_attach(struct bcma_device *pdev)
        wl->pub->ieee_hw = hw;
 
        /* register our interrupt handler */
-       if (request_irq(pdev->bus->host_pci->irq, brcms_isr,
+       if (request_irq(pdev->irq, brcms_isr,
                        IRQF_SHARED, KBUILD_MODNAME, wl)) {
                wiphy_err(wl->wiphy, "wl%d: request_irq() failed\n", unit);
                goto fail;
        }
-       wl->irq = pdev->bus->host_pci->irq;
+       wl->irq = pdev->irq;
 
        /* register module */
        brcms_c_module_register(wl->pub, "linux", wl, NULL);
@@ -1097,7 +1097,7 @@ static int __devinit brcms_bcma_probe(struct bcma_device *pdev)
 
        dev_info(&pdev->dev, "mfg %x core %x rev %d class %d irq %d\n",
                 pdev->id.manuf, pdev->id.id, pdev->id.rev, pdev->id.class,
-                pdev->bus->host_pci->irq);
+                pdev->irq);
 
        if ((pdev->id.manuf != BCMA_MANUF_BCM) ||
            (pdev->id.id != BCMA_CORE_80211))