Browse Source

b43: add support for BCM43131 chipset with N-PHY rev 17

It contains radio 0x2057 rev 14 just like a BCM43217, so it doesn't
require any magic. The main difference is that BCM4313 is 1x1:1.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Rafał Miłecki 11 years ago
parent
commit
a67d19d4c5
3 changed files with 5 additions and 2 deletions
  1. 2 1
      drivers/net/wireless/b43/main.c
  2. 2 1
      drivers/net/wireless/b43/phy_n.c
  3. 1 0
      include/linux/bcma/bcma.h

+ 2 - 1
drivers/net/wireless/b43/main.c

@@ -2985,7 +2985,8 @@ void b43_mac_switch_freq(struct b43_wldev *dev, u8 spurmode)
 {
 	u16 chip_id = dev->dev->chip_id;
 
-	if (chip_id == BCMA_CHIP_ID_BCM43217 ||
+	if (chip_id == BCMA_CHIP_ID_BCM43131 ||
+	    chip_id == BCMA_CHIP_ID_BCM43217 ||
 	    chip_id == BCMA_CHIP_ID_BCM43222 ||
 	    chip_id == BCMA_CHIP_ID_BCM43224 ||
 	    chip_id == BCMA_CHIP_ID_BCM43225 ||

+ 2 - 1
drivers/net/wireless/b43/phy_n.c

@@ -4982,7 +4982,8 @@ static void b43_nphy_int_pa_set_tx_dig_filters(struct b43_wldev *dev)
 	if (dev->phy.rev == 16)
 		b43_nphy_pa_set_tx_dig_filter(dev, 0x186, dig_filter_phy_rev16);
 
-	if (dev->dev->chip_id == BCMA_CHIP_ID_BCM43217) {
+	/* Verified with BCM43131 and BCM43217 */
+	if (dev->phy.rev == 17) {
 		b43_nphy_pa_set_tx_dig_filter(dev, 0x186, dig_filter_phy_rev16);
 		b43_nphy_pa_set_tx_dig_filter(dev, 0x195,
 					      tbl_tx_filter_coef_rev4[1]);

+ 1 - 0
include/linux/bcma/bcma.h

@@ -158,6 +158,7 @@ struct bcma_host_ops {
 /* Chip IDs of PCIe devices */
 #define BCMA_CHIP_ID_BCM4313	0x4313
 #define BCMA_CHIP_ID_BCM43142	43142
+#define BCMA_CHIP_ID_BCM43131	43131
 #define BCMA_CHIP_ID_BCM43217	43217
 #define BCMA_CHIP_ID_BCM43222	43222
 #define BCMA_CHIP_ID_BCM43224	43224