[kernel] Remove overlap between bcma/b43 and brcmsmac and reenable bcm4331

John W. Linville linville at fedoraproject.org
Fri Nov 11 15:03:48 UTC 2011


commit 2be549056941a6d25e0a78978210b8314df69fa5
Author: John W. Linville <linville at tuxdriver.com>
Date:   Fri Nov 11 10:03:43 2011 -0500

    Remove overlap between bcma/b43 and brcmsmac and reenable bcm4331

 bcma-brcmsmac-compat.patch |   35 +++++++++++++++++++++++++++++++++++
 config-generic             |    7 ++++++-
 kernel.spec                |    8 ++++++++
 3 files changed, 49 insertions(+), 1 deletions(-)
---
diff --git a/bcma-brcmsmac-compat.patch b/bcma-brcmsmac-compat.patch
new file mode 100644
index 0000000..e16e5b0
--- /dev/null
+++ b/bcma-brcmsmac-compat.patch
@@ -0,0 +1,35 @@
+Simple patch to remove the overlap between the bcma (i.e. b43) driver
+and the brcmsmac driver.  David Woodhouse <dwmw2 at infradead.org>
+confirmed that this patch restores functionality of bcm4331 devices.
+
+-- John W. Linville <linville at redhat.com>
+
+diff -up linux-3.1.x86_64/drivers/bcma/host_pci.c.orig linux-3.1.x86_64/drivers/bcma/host_pci.c
+--- linux-3.1.x86_64/drivers/bcma/host_pci.c.orig	2011-11-10 11:41:26.829742757 -0500
++++ linux-3.1.x86_64/drivers/bcma/host_pci.c	2011-11-10 11:41:22.884792078 -0500
+@@ -225,11 +225,13 @@ static void bcma_host_pci_remove(struct 
+ }
+ 
+ static DEFINE_PCI_DEVICE_TABLE(bcma_pci_bridge_tbl) = {
+-	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x0576) },
+ 	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4331) },
++#if 0 /* Not in Fedora... */
++ 	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x0576) },
+ 	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4353) },
+ 	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4357) },
+ 	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4727) },
++#endif
+ 	{ 0, },
+ };
+ MODULE_DEVICE_TABLE(pci, bcma_pci_bridge_tbl);
+diff -up linux-3.1.x86_64/drivers/net/wireless/brcm80211/Kconfig.orig linux-3.1.x86_64/drivers/net/wireless/brcm80211/Kconfig
+--- linux-3.1.x86_64/drivers/net/wireless/brcm80211/Kconfig.orig	2011-11-10 11:42:31.764930961 -0500
++++ linux-3.1.x86_64/drivers/net/wireless/brcm80211/Kconfig	2011-11-10 11:42:33.613907846 -0500
+@@ -5,7 +5,6 @@ config BRCMSMAC
+ 	tristate "Broadcom IEEE802.11n PCIe SoftMAC WLAN driver"
+ 	depends on PCI
+ 	depends on MAC80211
+-	depends on BCMA=n
+ 	select BRCMUTIL
+ 	select FW_LOADER
+ 	select CRC_CCITT
diff --git a/config-generic b/config-generic
index dfccf0c..341c283 100644
--- a/config-generic
+++ b/config-generic
@@ -1557,6 +1557,7 @@ CONFIG_B43=m
 CONFIG_B43_PCMCIA=y
 CONFIG_B43_SDIO=y
 CONFIG_B43_BCMA=y
+CONFIG_B43_BCMA_PIO=y
 CONFIG_B43_DEBUG=y
 CONFIG_B43_PHY_LP=y
 CONFIG_B43_PHY_N=y
@@ -4675,7 +4676,11 @@ CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
 
 CONFIG_TEST_KSTRTOX=m
 
-# CONFIG_BCMA is not set
+CONFIG_BCMA=m
+CONFIG_BCMA_BLOCKIO=y
+CONFIG_BCMA_HOST_PCI_POSSIBLE=y
+CONFIG_BCMA_HOST_PCI=y
+# CONFIG_BCMA_DEBUG is not set
 
 # CONFIG_GOOGLE_FIRMWARE is not set
 CONFIG_INTEL_MID_PTI=m
diff --git a/kernel.spec b/kernel.spec
index 205efc4..baceb5d 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -704,6 +704,8 @@ Patch21070: oom-fix-integer-overflow-of-points.patch
 
 Patch21080: sysfs-msi-irq-per-device.patch
 
+Patch21090: bcma-brcmsmac-compat.patch
+
 %endif
 
 BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root
@@ -1340,6 +1342,9 @@ ApplyPatch oom-fix-integer-overflow-of-points.patch
 # Add msi irq ennumeration in sysfs for devices
 ApplyPatch sysfs-msi-irq-per-device.patch
 
+# Remove overlap between bcma/b43 and brcmsmac and reenable bcm4331
+ApplyPatch bcma-brcmsmac-compat.patch
+
 # END OF PATCH APPLICATIONS
 
 %endif
@@ -2046,6 +2051,9 @@ fi
 #                 ||----w |
 #                 ||     ||
 %changelog
+* Fri Nov 11 2011 John W. Linville <linville at redhat.com>
+- Remove overlap between bcma/b43 and brcmsmac and reenable bcm4331
+
 * Thu Nov 10 2011 Josh Boyer <jwboyer at redhat.com>
 - Linux 3.2-rc1-git2
 


More information about the scm-commits mailing list