aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm47xx/patches-2.6.23/400-b43-pci_ssb_bridge.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/brcm47xx/patches-2.6.23/400-b43-pci_ssb_bridge.patch')
-rw-r--r--target/linux/brcm47xx/patches-2.6.23/400-b43-pci_ssb_bridge.patch111
1 files changed, 111 insertions, 0 deletions
diff --git a/target/linux/brcm47xx/patches-2.6.23/400-b43-pci_ssb_bridge.patch b/target/linux/brcm47xx/patches-2.6.23/400-b43-pci_ssb_bridge.patch
new file mode 100644
index 0000000000..6a7eabed28
--- /dev/null
+++ b/target/linux/brcm47xx/patches-2.6.23/400-b43-pci_ssb_bridge.patch
@@ -0,0 +1,111 @@
+diff -Naur linux-2.6.23.1.orig/drivers/ssb/b43_pci_bridge.c linux-2.6.23.1/drivers/ssb/b43_pci_bridge.c
+--- linux-2.6.23.1.orig/drivers/ssb/b43_pci_bridge.c 2007-11-09 16:48:55.000000000 +0100
++++ linux-2.6.23.1/drivers/ssb/b43_pci_bridge.c 1970-01-01 01:00:00.000000000 +0100
+@@ -1,48 +0,0 @@
+-/*
+- * Broadcom 43xx PCI-SSB bridge module
+- *
+- * This technically is a seperate PCI driver module, but
+- * because of its small size we include it in the SSB core
+- * instead of creating a standalone module.
+- *
+- * Copyright 2007 Michael Buesch <mb@bu3sch.de>
+- *
+- * Licensed under the GNU/GPL. See COPYING for details.
+- */
+-
+-#include <linux/pci.h>
+-#include <linux/ssb/ssb.h>
+-
+-#include "ssb_private.h"
+-
+-
+-static const struct pci_device_id b43_pci_bridge_tbl[] = {
+- { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4301) },
+- { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4307) },
+- { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4311) },
+- { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4312) },
+- { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4318) },
+- { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4319) },
+- { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4320) },
+- { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4321) },
+- { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4324) },
+- { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4325) },
+- { 0, },
+-};
+-MODULE_DEVICE_TABLE(pci, b43_pci_bridge_tbl);
+-
+-static struct pci_driver b43_pci_bridge_driver = {
+- .name = "b43-pci-bridge",
+- .id_table = b43_pci_bridge_tbl,
+-};
+-
+-
+-int __init b43_pci_ssb_bridge_init(void)
+-{
+- return ssb_pcihost_register(&b43_pci_bridge_driver);
+-}
+-
+-void __exit b43_pci_ssb_bridge_exit(void)
+-{
+- ssb_pcihost_unregister(&b43_pci_bridge_driver);
+-}
+diff -Naur linux-2.6.23.1.orig/drivers/ssb/main.c linux-2.6.23.1/drivers/ssb/main.c
+--- linux-2.6.23.1.orig/drivers/ssb/main.c 2007-11-09 16:48:55.000000000 +0100
++++ linux-2.6.23.1/drivers/ssb/main.c 2007-11-09 22:11:32.000000000 +0100
+@@ -1142,21 +1142,12 @@
+ if (err)
+ bus_unregister(&ssb_bustype);
+
+- err = b43_pci_ssb_bridge_init();
+- if (err) {
+- ssb_printk(KERN_ERR "Broadcom 43xx PCI-SSB-bridge "
+- "initialization failed");
+- /* don't fail SSB init because of this */
+- err = 0;
+- }
+-
+ return err;
+ }
+ subsys_initcall(ssb_modinit);
+
+ static void __exit ssb_modexit(void)
+ {
+- b43_pci_ssb_bridge_exit();
+ bus_unregister(&ssb_bustype);
+ }
+ module_exit(ssb_modexit)
+diff -Naur linux-2.6.23.1.orig/drivers/ssb/Makefile linux-2.6.23.1/drivers/ssb/Makefile
+--- linux-2.6.23.1.orig/drivers/ssb/Makefile 2007-11-09 16:48:55.000000000 +0100
++++ linux-2.6.23.1/drivers/ssb/Makefile 2007-11-09 22:30:32.000000000 +0100
+@@ -11,8 +11,4 @@
+ ssb-$(CONFIG_SSB_DRIVER_EXTIF) += driver_extif.o
+ 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
+-
+ obj-$(CONFIG_SSB) += ssb.o
+diff -Naur linux-2.6.23.1.orig/drivers/ssb/ssb_private.h linux-2.6.23.1/drivers/ssb/ssb_private.h
+--- linux-2.6.23.1.orig/drivers/ssb/ssb_private.h 2007-11-09 16:48:55.000000000 +0100
++++ linux-2.6.23.1/drivers/ssb/ssb_private.h 2007-11-09 22:11:11.000000000 +0100
+@@ -119,18 +119,4 @@
+ 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
+-extern int __init b43_pci_ssb_bridge_init(void);
+-extern void __exit b43_pci_ssb_bridge_exit(void);
+-#else /* CONFIG_SSB_PCIHOST */
+-static inline int b43_pci_ssb_bridge_init(void)
+-{
+- return 0;
+-}
+-static inline void b43_pci_ssb_bridge_exit(void)
+-{
+-}
+-#endif /* CONFIG_SSB_PCIHOST */
+-
+ #endif /* LINUX_SSB_PRIVATE_H_ */