add b43 fixes from #2677
[openwrt/svn-archive/archive.git] / target / linux / brcm47xx / patches-2.6.23 / 400-b43-pci_ssb_bridge.patch
1 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
2 --- linux-2.6.23.1.orig/drivers/ssb/b43_pci_bridge.c 2007-11-09 16:48:55.000000000 +0100
3 +++ linux-2.6.23.1/drivers/ssb/b43_pci_bridge.c 1970-01-01 01:00:00.000000000 +0100
4 @@ -1,48 +0,0 @@
5 -/*
6 - * Broadcom 43xx PCI-SSB bridge module
7 - *
8 - * This technically is a seperate PCI driver module, but
9 - * because of its small size we include it in the SSB core
10 - * instead of creating a standalone module.
11 - *
12 - * Copyright 2007 Michael Buesch <mb@bu3sch.de>
13 - *
14 - * Licensed under the GNU/GPL. See COPYING for details.
15 - */
16 -
17 -#include <linux/pci.h>
18 -#include <linux/ssb/ssb.h>
19 -
20 -#include "ssb_private.h"
21 -
22 -
23 -static const struct pci_device_id b43_pci_bridge_tbl[] = {
24 - { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4301) },
25 - { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4307) },
26 - { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4311) },
27 - { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4312) },
28 - { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4318) },
29 - { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4319) },
30 - { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4320) },
31 - { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4321) },
32 - { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4324) },
33 - { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4325) },
34 - { 0, },
35 -};
36 -MODULE_DEVICE_TABLE(pci, b43_pci_bridge_tbl);
37 -
38 -static struct pci_driver b43_pci_bridge_driver = {
39 - .name = "b43-pci-bridge",
40 - .id_table = b43_pci_bridge_tbl,
41 -};
42 -
43 -
44 -int __init b43_pci_ssb_bridge_init(void)
45 -{
46 - return ssb_pcihost_register(&b43_pci_bridge_driver);
47 -}
48 -
49 -void __exit b43_pci_ssb_bridge_exit(void)
50 -{
51 - ssb_pcihost_unregister(&b43_pci_bridge_driver);
52 -}
53 diff -Naur linux-2.6.23.1.orig/drivers/ssb/main.c linux-2.6.23.1/drivers/ssb/main.c
54 --- linux-2.6.23.1.orig/drivers/ssb/main.c 2007-11-09 16:48:55.000000000 +0100
55 +++ linux-2.6.23.1/drivers/ssb/main.c 2007-11-09 22:11:32.000000000 +0100
56 @@ -1142,21 +1142,12 @@
57 if (err)
58 bus_unregister(&ssb_bustype);
59
60 - err = b43_pci_ssb_bridge_init();
61 - if (err) {
62 - ssb_printk(KERN_ERR "Broadcom 43xx PCI-SSB-bridge "
63 - "initialization failed");
64 - /* don't fail SSB init because of this */
65 - err = 0;
66 - }
67 -
68 return err;
69 }
70 subsys_initcall(ssb_modinit);
71
72 static void __exit ssb_modexit(void)
73 {
74 - b43_pci_ssb_bridge_exit();
75 bus_unregister(&ssb_bustype);
76 }
77 module_exit(ssb_modexit)
78 diff -Naur linux-2.6.23.1.orig/drivers/ssb/Makefile linux-2.6.23.1/drivers/ssb/Makefile
79 --- linux-2.6.23.1.orig/drivers/ssb/Makefile 2007-11-09 16:48:55.000000000 +0100
80 +++ linux-2.6.23.1/drivers/ssb/Makefile 2007-11-09 22:30:32.000000000 +0100
81 @@ -11,8 +11,4 @@
82 ssb-$(CONFIG_SSB_DRIVER_EXTIF) += driver_extif.o
83 ssb-$(CONFIG_SSB_DRIVER_PCICORE) += driver_pcicore.o
84
85 -# b43 pci-ssb-bridge driver
86 -# Not strictly a part of SSB, but kept here for convenience
87 -ssb-$(CONFIG_SSB_PCIHOST) += b43_pci_bridge.o
88 -
89 obj-$(CONFIG_SSB) += ssb.o
90 diff -Naur linux-2.6.23.1.orig/drivers/ssb/ssb_private.h linux-2.6.23.1/drivers/ssb/ssb_private.h
91 --- linux-2.6.23.1.orig/drivers/ssb/ssb_private.h 2007-11-09 16:48:55.000000000 +0100
92 +++ linux-2.6.23.1/drivers/ssb/ssb_private.h 2007-11-09 22:11:11.000000000 +0100
93 @@ -119,18 +119,4 @@
94 extern int ssb_devices_thaw(struct ssb_bus *bus);
95 extern struct ssb_bus *ssb_pci_dev_to_bus(struct pci_dev *pdev);
96
97 -/* b43_pci_bridge.c */
98 -#ifdef CONFIG_SSB_PCIHOST
99 -extern int __init b43_pci_ssb_bridge_init(void);
100 -extern void __exit b43_pci_ssb_bridge_exit(void);
101 -#else /* CONFIG_SSB_PCIHOST */
102 -static inline int b43_pci_ssb_bridge_init(void)
103 -{
104 - return 0;
105 -}
106 -static inline void b43_pci_ssb_bridge_exit(void)
107 -{
108 -}
109 -#endif /* CONFIG_SSB_PCIHOST */
110 -
111 #endif /* LINUX_SSB_PRIVATE_H_ */