diff options
-rw-r--r-- | drivers/net/wireless/b43/Kconfig | 6 | ||||
-rw-r--r-- | drivers/net/wireless/b43/main.c | 12 |
2 files changed, 10 insertions, 8 deletions
diff --git a/drivers/net/wireless/b43/Kconfig b/drivers/net/wireless/b43/Kconfig index 3f21e0ba39ba..51ff0b198d0a 100644 --- a/drivers/net/wireless/b43/Kconfig +++ b/drivers/net/wireless/b43/Kconfig | |||
@@ -31,12 +31,6 @@ config B43_BCMA | |||
31 | depends on B43 && (BCMA = y || BCMA = B43) | 31 | depends on B43 && (BCMA = y || BCMA = B43) |
32 | default y | 32 | default y |
33 | 33 | ||
34 | config B43_BCMA_EXTRA | ||
35 | bool "Hardware support that overlaps with the brcmsmac driver" | ||
36 | depends on B43_BCMA | ||
37 | default n if BRCMSMAC | ||
38 | default y | ||
39 | |||
40 | config B43_SSB | 34 | config B43_SSB |
41 | bool | 35 | bool |
42 | depends on B43 && (SSB = y || SSB = B43) | 36 | depends on B43 && (SSB = y || SSB = B43) |
diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c index a95b77ab360e..0e933bb71543 100644 --- a/drivers/net/wireless/b43/main.c +++ b/drivers/net/wireless/b43/main.c | |||
@@ -113,13 +113,15 @@ static int b43_modparam_pio = 0; | |||
113 | module_param_named(pio, b43_modparam_pio, int, 0644); | 113 | module_param_named(pio, b43_modparam_pio, int, 0644); |
114 | MODULE_PARM_DESC(pio, "Use PIO accesses by default: 0=DMA, 1=PIO"); | 114 | MODULE_PARM_DESC(pio, "Use PIO accesses by default: 0=DMA, 1=PIO"); |
115 | 115 | ||
116 | static int modparam_allhwsupport = !IS_ENABLED(CONFIG_BRCMSMAC); | ||
117 | module_param_named(allhwsupport, modparam_allhwsupport, int, 0444); | ||
118 | MODULE_PARM_DESC(allhwsupport, "Enable support for all hardware (even it if overlaps with the brcmsmac driver)"); | ||
119 | |||
116 | #ifdef CONFIG_B43_BCMA | 120 | #ifdef CONFIG_B43_BCMA |
117 | static const struct bcma_device_id b43_bcma_tbl[] = { | 121 | static const struct bcma_device_id b43_bcma_tbl[] = { |
118 | BCMA_CORE(BCMA_MANUF_BCM, BCMA_CORE_80211, 0x11, BCMA_ANY_CLASS), | 122 | BCMA_CORE(BCMA_MANUF_BCM, BCMA_CORE_80211, 0x11, BCMA_ANY_CLASS), |
119 | #ifdef CONFIG_B43_BCMA_EXTRA | ||
120 | BCMA_CORE(BCMA_MANUF_BCM, BCMA_CORE_80211, 0x17, BCMA_ANY_CLASS), | 123 | BCMA_CORE(BCMA_MANUF_BCM, BCMA_CORE_80211, 0x17, BCMA_ANY_CLASS), |
121 | BCMA_CORE(BCMA_MANUF_BCM, BCMA_CORE_80211, 0x18, BCMA_ANY_CLASS), | 124 | BCMA_CORE(BCMA_MANUF_BCM, BCMA_CORE_80211, 0x18, BCMA_ANY_CLASS), |
122 | #endif | ||
123 | BCMA_CORE(BCMA_MANUF_BCM, BCMA_CORE_80211, 0x1D, BCMA_ANY_CLASS), | 125 | BCMA_CORE(BCMA_MANUF_BCM, BCMA_CORE_80211, 0x1D, BCMA_ANY_CLASS), |
124 | BCMA_CORETABLE_END | 126 | BCMA_CORETABLE_END |
125 | }; | 127 | }; |
@@ -5396,6 +5398,12 @@ static int b43_bcma_probe(struct bcma_device *core) | |||
5396 | struct b43_wl *wl; | 5398 | struct b43_wl *wl; |
5397 | int err; | 5399 | int err; |
5398 | 5400 | ||
5401 | if (!modparam_allhwsupport && | ||
5402 | (core->id.rev == 0x17 || core->id.rev == 0x18)) { | ||
5403 | pr_err("Support for cores revisions 0x17 and 0x18 disabled by module param allhwsupport=0. Try b43.allhwsupport=1\n"); | ||
5404 | return -ENOTSUPP; | ||
5405 | } | ||
5406 | |||
5399 | dev = b43_bus_dev_bcma_init(core); | 5407 | dev = b43_bus_dev_bcma_init(core); |
5400 | if (!dev) | 5408 | if (!dev) |
5401 | return -ENODEV; | 5409 | return -ENODEV; |