aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/wireless/bcm43xx/bcm43xx_main.c21
1 files changed, 16 insertions, 5 deletions
diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_main.c b/drivers/net/wireless/bcm43xx/bcm43xx_main.c
index 77d0e390b021..085d7857fe31 100644
--- a/drivers/net/wireless/bcm43xx/bcm43xx_main.c
+++ b/drivers/net/wireless/bcm43xx/bcm43xx_main.c
@@ -2146,6 +2146,13 @@ out:
2146 return err; 2146 return err;
2147} 2147}
2148 2148
2149#ifdef CONFIG_BCM947XX
2150static struct pci_device_id bcm43xx_47xx_ids[] = {
2151 { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4324) },
2152 { 0 }
2153};
2154#endif
2155
2149static int bcm43xx_initialize_irq(struct bcm43xx_private *bcm) 2156static int bcm43xx_initialize_irq(struct bcm43xx_private *bcm)
2150{ 2157{
2151 int res; 2158 int res;
@@ -2155,11 +2162,15 @@ static int bcm43xx_initialize_irq(struct bcm43xx_private *bcm)
2155 bcm->irq = bcm->pci_dev->irq; 2162 bcm->irq = bcm->pci_dev->irq;
2156#ifdef CONFIG_BCM947XX 2163#ifdef CONFIG_BCM947XX
2157 if (bcm->pci_dev->bus->number == 0) { 2164 if (bcm->pci_dev->bus->number == 0) {
2158 struct pci_dev *d = NULL; 2165 struct pci_dev *d;
2159 /* FIXME: we will probably need more device IDs here... */ 2166 struct pci_device_id *id;
2160 d = pci_find_device(PCI_VENDOR_ID_BROADCOM, 0x4324, NULL); 2167 for (id = bcm43xx_47xx_ids; id->vendor; id++) {
2161 if (d != NULL) { 2168 d = pci_get_device(id->vendor, id->device, NULL);
2162 bcm->irq = d->irq; 2169 if (d != NULL) {
2170 bcm->irq = d->irq;
2171 pci_dev_put(d);
2172 break;
2173 }
2163 } 2174 }
2164 } 2175 }
2165#endif 2176#endif