brcmsmac: do not access host_pci

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>
This commit is contained in:
Hauke Mehrtens 2012-04-29 02:50:41 +02:00 committed by John W. Linville
parent 270e38d008
commit 00bcda4004

View File

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