public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* bcm43xx regression in 2.6.24 (with patch)
@ 2008-02-22 11:17 Alexey Zaytsev
  2008-02-22 14:13 ` Michael Buesch
  0 siblings, 1 reply; 60+ messages in thread
From: Alexey Zaytsev @ 2008-02-22 11:17 UTC (permalink / raw)
  To: Michael Buesch; +Cc: Greg KH, linux-kernel


Hello.

The bcm43xx driver won't work any more, if the b44 Ethernet
driver is enabled. This happens because the b44 driver
needlessly enables the b43_pci_bridge code, which claims
the same pci ids as the bcm43xx driver. The b43_pci_bridge
code is needed for the b43{legacy} drivers, but for the
b44, only the "ssb pci core" is needed.

This patch separates the ssb b43 pci bridge and the ssb pci
core config options and enables only the needed ones.


Greg, how do you think, should this do a -stable material?
If the line number limit really matters, I could remove the
comments in the b43{legacy} Kconfigs. ;)


PS:
Yes, the bcm43xx driver is deprecated, but the b43 driver did
not work for me right out of the box (firmware updated).
Please don't remove the bc43xx driver until there are really no
problems with the new one.

I'll try the new driver once again this weekend, and will send
a bug report when I'll be sure it is not a stupid mistake.

---

Use a separate config option for the b43 pci to ssb bridge.

        The bridge code was unnecessary enabled by the b44
        driver, but it prevents the bcm43xx driver from
        being loaded, as the bridge claims the same pci ids.

        Now we enable the birdge only if the b43{legacy}
        drivers are selected.

Signed-off-by: Alexey Zaytsev <alexey.zaytsev@gmail.com>
---
 drivers/net/wireless/b43/Kconfig       |    4 ++++
 drivers/net/wireless/b43legacy/Kconfig |    4 ++++
 drivers/net/wireless/bcm43xx/Kconfig   |    2 +-
 drivers/ssb/Kconfig                    |    5 +++++
 drivers/ssb/Makefile                   |    2 +-
 drivers/ssb/ssb_private.h              |    4 ++--
 6 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/drivers/net/wireless/b43/Kconfig b/drivers/net/wireless/b43/Kconfig
index fdbc351..8b7043a 100644
--- a/drivers/net/wireless/b43/Kconfig
+++ b/drivers/net/wireless/b43/Kconfig
@@ -24,6 +24,9 @@ config B43
          This driver uses V4 firmware, which must be installed separately using
          b43-fwcutter.

+         Building this driver prevents the now deprecated bcm43xx driver from being
+         built.
+
          This driver can be built as a module (recommended) that will be called "b43".
          If unsure, say M.

@@ -32,6 +35,7 @@ config B43_PCI_AUTOSELECT
        bool
        depends on B43 && SSB_PCIHOST_POSSIBLE
        select SSB_PCIHOST
+       select SSB_B43_PCI_BRIDGE
        default y

 # Auto-select SSB PCICORE driver, if possible
diff --git a/drivers/net/wireless/b43legacy/Kconfig b/drivers/net/wireless/b43legacy/Kconfig
index 7e23ec2..48f8e7d 100644
--- a/drivers/net/wireless/b43legacy/Kconfig
+++ b/drivers/net/wireless/b43legacy/Kconfig
@@ -17,6 +17,9 @@ config B43LEGACY
          This driver uses V3 firmware, which must be installed separately using
          b43-fwcutter.

+         Building this driver prevents the now deprecated bcm43xx driver from being
+         built.
+
          This driver can be built as a module (recommended) that will be
          called "b43legacy". If unsure, say M.

@@ -25,6 +28,7 @@ config B43LEGACY_PCI_AUTOSELECT
        bool
        depends on B43LEGACY && SSB_PCIHOST_POSSIBLE
        select SSB_PCIHOST
+       select SSB_B43_PCI_BRIDGE
        default y

 # Auto-select SSB PCICORE driver, if possible
diff --git a/drivers/net/wireless/bcm43xx/Kconfig b/drivers/net/wireless/bcm43xx/Kconfig
index ce397e4..32068d8 100644
--- a/drivers/net/wireless/bcm43xx/Kconfig
+++ b/drivers/net/wireless/bcm43xx/Kconfig
@@ -1,6 +1,6 @@
 config BCM43XX
        tristate "Broadcom BCM43xx wireless support"
-       depends on PCI && IEEE80211 && IEEE80211_SOFTMAC && WLAN_80211 && EXPERIMENTAL
+       depends on PCI && IEEE80211 && IEEE80211_SOFTMAC && WLAN_80211 && !SSB_B43_PCI_BRIDGE && EXPERIMENTAL
        select WIRELESS_EXT
        select FW_LOADER
        select HW_RANDOM
diff --git a/drivers/ssb/Kconfig b/drivers/ssb/Kconfig
index d976660..6f627f3 100644
--- a/drivers/ssb/Kconfig
+++ b/drivers/ssb/Kconfig
@@ -35,6 +35,11 @@ config SSB_PCIHOST

          If unsure, say Y

+config SSB_B43_PCI_BRIDGE
+       bool
+       depends on SSB_PCIHOST
+       default n
+
 config SSB_PCMCIAHOST_POSSIBLE
        bool
        depends on SSB && (PCMCIA = y || PCMCIA = SSB) && EXPERIMENTAL
diff --git a/drivers/ssb/Makefile b/drivers/ssb/Makefile
index 7be3975..1bf35f0 100644
--- a/drivers/ssb/Makefile
+++ b/drivers/ssb/Makefile
@@ -13,6 +13,6 @@ ssb-$(CONFIG_SSB_DRIVER_PCICORE)      += driver_pcicore.o

 # b43 pci-ssb-bridge driver
 # Not strictly a part of SSB, but kept here for convenience
-ssb-$(CONFIG_SSB_PCIHOST)              += b43_pci_bridge.o
+ssb-$(CONFIG_SSB_B43_PCI_BRIDGE)       += b43_pci_bridge.o

 obj-$(CONFIG_SSB)                      += ssb.o
diff --git a/drivers/ssb/ssb_private.h b/drivers/ssb/ssb_private.h
index a789364..21eca2b 100644
--- a/drivers/ssb/ssb_private.h
+++ b/drivers/ssb/ssb_private.h
@@ -120,10 +120,10 @@ extern int ssb_devices_thaw(struct ssb_bus *bus);
 extern struct ssb_bus *ssb_pci_dev_to_bus(struct pci_dev *pdev);

 /* b43_pci_bridge.c */
-#ifdef CONFIG_SSB_PCIHOST
+#ifdef CONFIG_SSB_B43_PCI_BRIDGE
 extern int __init b43_pci_ssb_bridge_init(void);
 extern void __exit b43_pci_ssb_bridge_exit(void);
-#else /* CONFIG_SSB_PCIHOST */
+#else /* CONFIG_SSB_B43_PCI_BRIDGR */
 static inline int b43_pci_ssb_bridge_init(void)
 {
        return 0;



^ permalink raw reply related	[flat|nested] 60+ messages in thread

end of thread, other threads:[~2008-02-29 23:22 UTC | newest]

Thread overview: 60+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-02-22 11:17 bcm43xx regression in 2.6.24 (with patch) Alexey Zaytsev
2008-02-22 14:13 ` Michael Buesch
2008-02-22 17:51   ` Gabriel C
2008-02-22 17:56     ` Michael Buesch
2008-02-22 22:10       ` Greg KH
2008-02-22 18:10   ` Alexey Zaytsev
2008-02-22 17:48     ` Michael Buesch
2008-02-22 20:06       ` Alexey Zaytsev
2008-02-22 20:12         ` Michael Buesch
2008-02-22 20:38           ` Alexey Zaytsev
2008-02-22 22:12             ` Greg KH
2008-02-22 22:45               ` Alexey Zaytsev
2008-02-23  5:48                 ` Michael Buesch
2008-02-23 11:07       ` Ingo Molnar
2008-02-23 11:18         ` Pekka Enberg
2008-02-23 11:24           ` Ingo Molnar
2008-02-23 11:32             ` Alexey Zaytsev
2008-02-23 11:37               ` Pekka Enberg
2008-02-23 11:51                 ` Alexey Zaytsev
2008-02-23 11:57                   ` Pekka J Enberg
2008-02-23 12:17                     ` Alexey Zaytsev
2008-02-23 12:23                       ` Pekka Enberg
2008-02-24 14:29               ` Michael Buesch
2008-02-24 16:39                 ` Alexey Zaytsev
2008-02-24 17:16                   ` Michael Buesch
2008-02-25  6:16                     ` Pekka J Enberg
2008-02-25  6:49                       ` Greg KH
2008-02-25  6:54                         ` Pekka J Enberg
2008-02-25  9:54                         ` Michael Buesch
2008-02-25 12:11                           ` Pekka Enberg
2008-02-25 12:19                             ` Michael Buesch
2008-02-25 12:25                               ` Pekka J Enberg
2008-02-25 13:00                                 ` Alexey Zaytsev
2008-02-25 10:23                         ` Alexey Zaytsev
2008-02-25 10:38                           ` Michael Buesch
2008-02-25 10:49                             ` Xavier Bestel
2008-02-25 10:54                               ` Michael Buesch
2008-02-23 16:05         ` Michael Buesch
2008-02-23 16:27         ` Michael Buesch
2008-02-23 16:44           ` Ingo Molnar
2008-02-23 16:50             ` Michael Buesch
2008-02-23 21:32           ` Alexey Zaytsev
2008-02-23 22:20             ` Michael Buesch
2008-02-26 20:20               ` John W. Linville
2008-02-26 21:38                 ` Alexey Zaytsev
2008-02-26 22:04                   ` Michael Buesch
2008-02-26 22:12                     ` Alexey Zaytsev
2008-02-26 22:41                       ` Michael Buesch
2008-02-28 22:03                         ` Michael Buesch
2008-02-28 22:48                           ` Alexey Zaytsev
2008-02-28 23:12                             ` Stefan Lippers-Hollmann
2008-02-29 23:22                               ` Alexey Zaytsev
2008-02-28 23:14                             ` Michael Buesch
2008-02-26 22:47                       ` John W. Linville
2008-02-26 23:12                         ` Michael Buesch
2008-02-27  0:23                         ` Alexey Zaytsev
2008-02-27  0:27                           ` Michael Buesch
2008-02-27  0:32                             ` Alexey Zaytsev
2008-02-27  0:43                               ` Michael Buesch
2008-02-27  0:53                                 ` Alexey Zaytsev

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox