aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Buesch <mbuesch@freenet.de>2006-03-15 10:31:45 -0500
committerJohn W. Linville <linville@tuxdriver.com>2006-03-27 11:19:39 -0500
commitb3db5e553876c1743eefae5963aea431ec4d5ba6 (patch)
tree5bda353b8e8a696ccc93c2d7f3ebee668fa4d08d
parent4cf6f03e067d6d416f5c9219471daf64703afae4 (diff)
[PATCH] bcm43xx: Do boardflags workarounds for specific boards.
Signed-off-by: Michael Buesch <mbuesch@freenet.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/bcm43xx/bcm43xx.h4
-rw-r--r--drivers/net/wireless/bcm43xx/bcm43xx_main.c9
2 files changed, 13 insertions, 0 deletions
diff --git a/drivers/net/wireless/bcm43xx/bcm43xx.h b/drivers/net/wireless/bcm43xx/bcm43xx.h
index a358646ad3eb..8820012b4b3a 100644
--- a/drivers/net/wireless/bcm43xx/bcm43xx.h
+++ b/drivers/net/wireless/bcm43xx/bcm43xx.h
@@ -120,6 +120,10 @@
120#define BCM43xx_BFL_AFTERBURNER 0x0200 /* supports Afterburner mode */ 120#define BCM43xx_BFL_AFTERBURNER 0x0200 /* supports Afterburner mode */
121#define BCM43xx_BFL_NOPCI 0x0400 /* leaves PCI floating */ 121#define BCM43xx_BFL_NOPCI 0x0400 /* leaves PCI floating */
122#define BCM43xx_BFL_FEM 0x0800 /* supports the Front End Module */ 122#define BCM43xx_BFL_FEM 0x0800 /* supports the Front End Module */
123#define BCM43xx_BFL_EXTLNA 0x1000 /* has an external LNA */
124#define BCM43xx_BFL_HGPA 0x2000 /* had high gain PA */
125#define BCM43xx_BFL_BTCMOD 0x4000 /* BFL_BTCOEXIST is given in alternate GPIOs */
126#define BCM43xx_BFL_ALTIQ 0x8000 /* alternate I/Q settings */
123 127
124/* GPIO register offset, in both ChipCommon and PCI core. */ 128/* GPIO register offset, in both ChipCommon and PCI core. */
125#define BCM43xx_GPIO_CONTROL 0x6c 129#define BCM43xx_GPIO_CONTROL 0x6c
diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_main.c b/drivers/net/wireless/bcm43xx/bcm43xx_main.c
index cc8efe74f535..e26507b11f02 100644
--- a/drivers/net/wireless/bcm43xx/bcm43xx_main.c
+++ b/drivers/net/wireless/bcm43xx/bcm43xx_main.c
@@ -910,6 +910,15 @@ static int bcm43xx_sprom_extract(struct bcm43xx_private *bcm)
910 if (value == 0xFFFF) 910 if (value == 0xFFFF)
911 value = 0x0000; 911 value = 0x0000;
912 bcm->sprom.boardflags = value; 912 bcm->sprom.boardflags = value;
913 /* boardflags workarounds */
914 if (bcm->board_vendor == PCI_VENDOR_ID_DELL &&
915 bcm->chip_id == 0x4301 &&
916 bcm->board_revision == 0x74)
917 bcm->sprom.boardflags |= BCM43xx_BFL_BTCOEXIST;
918 if (bcm->board_vendor == PCI_VENDOR_ID_APPLE &&
919 bcm->board_type == 0x4E &&
920 bcm->board_revision > 0x40)
921 bcm->sprom.boardflags |= BCM43xx_BFL_PACTRL;
913 922
914 /* antenna gain */ 923 /* antenna gain */
915 value = sprom[BCM43xx_SPROM_ANTENNA_GAIN]; 924 value = sprom[BCM43xx_SPROM_ANTENNA_GAIN];