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 +confirmed that this patch restores functionality of bcm4331 devices. + +-- John W. Linville + +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 +- Remove overlap between bcma/b43 and brcmsmac and reenable bcm4331 + * Thu Nov 10 2011 Josh Boyer - Linux 3.2-rc1-git2