staging: brcm80211: added support for more bcm43224 based boards
authorRoland Vossen <rvossen@broadcom.com>
Wed, 1 Jun 2011 11:45:06 +0000 (13:45 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 7 Jun 2011 19:36:49 +0000 (12:36 -0700)
Patch created by Gottfried Haider. Add support for BCM943224HMB devices
as found in recent Lenovo ThinkPads.

Signed-off-by: Roland Vossen <rvossen@broadcom.com>
Reviewed-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/brcm80211/brcmsmac/wl_mac80211.c
drivers/staging/brcm80211/brcmsmac/wlc_bmac.c
drivers/staging/brcm80211/brcmsmac/wlc_main.c
drivers/staging/brcm80211/include/bcmdevs.h

index 105f426..590d65b 100644 (file)
@@ -95,6 +95,8 @@ static struct pci_device_id wl_id_table[] = {
        {PCI_VENDOR_ID_BROADCOM, 0x4357, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},      /* 43225 2G */
        {PCI_VENDOR_ID_BROADCOM, 0x4353, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},      /* 43224 DUAL */
        {PCI_VENDOR_ID_BROADCOM, 0x4727, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},      /* 4313 DUAL */
+       /* 43224 Ven */
+       {PCI_VENDOR_ID_BROADCOM, 0x0576, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },
        {0}
 };
 
@@ -1112,7 +1114,8 @@ wl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
               PCI_FUNC(pdev->devfn), pdev->irq);
 
        if ((pdev->vendor != PCI_VENDOR_ID_BROADCOM) ||
-           (((pdev->device & 0xff00) != 0x4300) &&
+           ((pdev->device != 0x0576) &&
+            ((pdev->device & 0xff00) != 0x4300) &&
             ((pdev->device & 0xff00) != 0x4700) &&
             ((pdev->device < 43000) || (pdev->device > 43999))))
                return -ENODEV;
index adc06fc..f98f0fd 100644 (file)
@@ -741,7 +741,8 @@ int wlc_bmac_attach(struct wlc_info *wlc, u16 vendor, u16 device, uint unit,
                wlc->war16165 = true;
 
        /* check device id(srom, nvram etc.) to set bands */
-       if (wlc_hw->deviceid == BCM43224_D11N_ID) {
+       if (wlc_hw->deviceid == BCM43224_D11N_ID ||
+           wlc_hw->deviceid == BCM43224_D11N_ID_VEN1) {
                /* Dualband boards */
                wlc_hw->_nbands = 2;
        } else
index 0837e8d..54b5b79 100644 (file)
@@ -2857,9 +2857,10 @@ bool wlc_chipmatch(u16 vendor, u16 device)
                return false;
        }
 
+       if (device == BCM43224_D11N_ID_VEN1)
+               return true;
        if ((device == BCM43224_D11N_ID) || (device == BCM43225_D11N2G_ID))
                return true;
-
        if (device == BCM4313_D11N2G_ID)
                return true;
        if ((device == BCM43236_D11N_ID) || (device == BCM43236_D11N2G_ID))
index 26947ef..eba10b6 100644 (file)
@@ -30,6 +30,7 @@
 #define BCM4319_D11N5G_ID      0x4339  /* 4319 802.11n 5G device */
 
 #define BCM43224_D11N_ID       0x4353  /* 43224 802.11n dualband device */
+#define BCM43224_D11N_ID_VEN1  0x0576  /* Vendor specific 43224 802.11n db */
 
 #define BCM43225_D11N2G_ID     0x4357  /* 43225 802.11n 2.4GHz device */