Root/target/linux/generic/patches-3.0/020-ssb_update.patch

1--- a/drivers/ssb/driver_chipcommon_pmu.c
2+++ b/drivers/ssb/driver_chipcommon_pmu.c
3@@ -417,9 +417,9 @@ static void ssb_pmu_resources_init(struc
4     u32 min_msk = 0, max_msk = 0;
5     unsigned int i;
6     const struct pmu_res_updown_tab_entry *updown_tab = NULL;
7- unsigned int updown_tab_size;
8+ unsigned int updown_tab_size = 0;
9     const struct pmu_res_depend_tab_entry *depend_tab = NULL;
10- unsigned int depend_tab_size;
11+ unsigned int depend_tab_size = 0;
12 
13     switch (bus->chip_id) {
14     case 0x4312:
15--- a/drivers/ssb/driver_gige.c
16+++ b/drivers/ssb/driver_gige.c
17@@ -106,8 +106,9 @@ void gige_pcicfg_write32(struct ssb_gige
18     gige_write32(dev, SSB_GIGE_PCICFG + offset, value);
19 }
20 
21-static int ssb_gige_pci_read_config(struct pci_bus *bus, unsigned int devfn,
22- int reg, int size, u32 *val)
23+static int __devinit ssb_gige_pci_read_config(struct pci_bus *bus,
24+ unsigned int devfn, int reg,
25+ int size, u32 *val)
26 {
27     struct ssb_gige *dev = container_of(bus->ops, struct ssb_gige, pci_ops);
28     unsigned long flags;
29@@ -136,8 +137,9 @@ static int ssb_gige_pci_read_config(stru
30     return PCIBIOS_SUCCESSFUL;
31 }
32 
33-static int ssb_gige_pci_write_config(struct pci_bus *bus, unsigned int devfn,
34- int reg, int size, u32 val)
35+static int __devinit ssb_gige_pci_write_config(struct pci_bus *bus,
36+ unsigned int devfn, int reg,
37+ int size, u32 val)
38 {
39     struct ssb_gige *dev = container_of(bus->ops, struct ssb_gige, pci_ops);
40     unsigned long flags;
41@@ -166,7 +168,8 @@ static int ssb_gige_pci_write_config(str
42     return PCIBIOS_SUCCESSFUL;
43 }
44 
45-static int ssb_gige_probe(struct ssb_device *sdev, const struct ssb_device_id *id)
46+static int __devinit ssb_gige_probe(struct ssb_device *sdev,
47+ const struct ssb_device_id *id)
48 {
49     struct ssb_gige *dev;
50     u32 base, tmslow, tmshigh;
51--- a/drivers/ssb/driver_pcicore.c
52+++ b/drivers/ssb/driver_pcicore.c
53@@ -314,7 +314,7 @@ int ssb_pcicore_pcibios_map_irq(const st
54     return ssb_mips_irq(extpci_core->dev) + 2;
55 }
56 
57-static void ssb_pcicore_init_hostmode(struct ssb_pcicore *pc)
58+static void __devinit ssb_pcicore_init_hostmode(struct ssb_pcicore *pc)
59 {
60     u32 val;
61 
62@@ -379,7 +379,7 @@ static void ssb_pcicore_init_hostmode(st
63     register_pci_controller(&ssb_pcicore_controller);
64 }
65 
66-static int pcicore_is_in_hostmode(struct ssb_pcicore *pc)
67+static int __devinit pcicore_is_in_hostmode(struct ssb_pcicore *pc)
68 {
69     struct ssb_bus *bus = pc->dev->bus;
70     u16 chipid_top;
71@@ -412,7 +412,7 @@ static int pcicore_is_in_hostmode(struct
72  * Workarounds.
73  **************************************************/
74 
75-static void ssb_pcicore_fix_sprom_core_index(struct ssb_pcicore *pc)
76+static void __devinit ssb_pcicore_fix_sprom_core_index(struct ssb_pcicore *pc)
77 {
78     u16 tmp = pcicore_read16(pc, SSB_PCICORE_SPROM(0));
79     if (((tmp & 0xF000) >> 12) != pc->dev->core_index) {
80@@ -514,13 +514,13 @@ static void ssb_pcicore_pcie_setup_worka
81  * Generic and Clientmode operation code.
82  **************************************************/
83 
84-static void ssb_pcicore_init_clientmode(struct ssb_pcicore *pc)
85+static void __devinit ssb_pcicore_init_clientmode(struct ssb_pcicore *pc)
86 {
87     /* Disable PCI interrupts. */
88     ssb_write32(pc->dev, SSB_INTVEC, 0);
89 }
90 
91-void ssb_pcicore_init(struct ssb_pcicore *pc)
92+void __devinit ssb_pcicore_init(struct ssb_pcicore *pc)
93 {
94     struct ssb_device *dev = pc->dev;
95 
96--- a/drivers/ssb/main.c
97+++ b/drivers/ssb/main.c
98@@ -557,7 +557,7 @@ error:
99 }
100 
101 /* Needs ssb_buses_lock() */
102-static int ssb_attach_queued_buses(void)
103+static int __devinit ssb_attach_queued_buses(void)
104 {
105     struct ssb_bus *bus, *n;
106     int err = 0;
107@@ -768,9 +768,9 @@ out:
108     return err;
109 }
110 
111-static int ssb_bus_register(struct ssb_bus *bus,
112- ssb_invariants_func_t get_invariants,
113- unsigned long baseaddr)
114+static int __devinit ssb_bus_register(struct ssb_bus *bus,
115+ ssb_invariants_func_t get_invariants,
116+ unsigned long baseaddr)
117 {
118     int err;
119 
120@@ -851,8 +851,8 @@ err_disable_xtal:
121 }
122 
123 #ifdef CONFIG_SSB_PCIHOST
124-int ssb_bus_pcibus_register(struct ssb_bus *bus,
125- struct pci_dev *host_pci)
126+int __devinit ssb_bus_pcibus_register(struct ssb_bus *bus,
127+ struct pci_dev *host_pci)
128 {
129     int err;
130 
131@@ -875,9 +875,9 @@ EXPORT_SYMBOL(ssb_bus_pcibus_register);
132 #endif /* CONFIG_SSB_PCIHOST */
133 
134 #ifdef CONFIG_SSB_PCMCIAHOST
135-int ssb_bus_pcmciabus_register(struct ssb_bus *bus,
136- struct pcmcia_device *pcmcia_dev,
137- unsigned long baseaddr)
138+int __devinit ssb_bus_pcmciabus_register(struct ssb_bus *bus,
139+ struct pcmcia_device *pcmcia_dev,
140+ unsigned long baseaddr)
141 {
142     int err;
143 
144@@ -897,8 +897,9 @@ EXPORT_SYMBOL(ssb_bus_pcmciabus_register
145 #endif /* CONFIG_SSB_PCMCIAHOST */
146 
147 #ifdef CONFIG_SSB_SDIOHOST
148-int ssb_bus_sdiobus_register(struct ssb_bus *bus, struct sdio_func *func,
149- unsigned int quirks)
150+int __devinit ssb_bus_sdiobus_register(struct ssb_bus *bus,
151+ struct sdio_func *func,
152+ unsigned int quirks)
153 {
154     int err;
155 
156@@ -918,9 +919,9 @@ int ssb_bus_sdiobus_register(struct ssb_
157 EXPORT_SYMBOL(ssb_bus_sdiobus_register);
158 #endif /* CONFIG_SSB_PCMCIAHOST */
159 
160-int ssb_bus_ssbbus_register(struct ssb_bus *bus,
161- unsigned long baseaddr,
162- ssb_invariants_func_t get_invariants)
163+int __devinit ssb_bus_ssbbus_register(struct ssb_bus *bus,
164+ unsigned long baseaddr,
165+ ssb_invariants_func_t get_invariants)
166 {
167     int err;
168 
169@@ -1001,8 +1002,8 @@ u32 ssb_calc_clock_rate(u32 plltype, u32
170     switch (plltype) {
171     case SSB_PLLTYPE_6: /* 100/200 or 120/240 only */
172         if (m & SSB_CHIPCO_CLK_T6_MMASK)
173- return SSB_CHIPCO_CLK_T6_M0;
174- return SSB_CHIPCO_CLK_T6_M1;
175+ return SSB_CHIPCO_CLK_T6_M1;
176+ return SSB_CHIPCO_CLK_T6_M0;
177     case SSB_PLLTYPE_1: /* 48Mhz base, 3 dividers */
178     case SSB_PLLTYPE_3: /* 25Mhz, 2 dividers */
179     case SSB_PLLTYPE_4: /* 48Mhz, 4 dividers */
180--- a/drivers/ssb/pcihost_wrapper.c
181+++ b/drivers/ssb/pcihost_wrapper.c
182@@ -53,8 +53,8 @@ static int ssb_pcihost_resume(struct pci
183 # define ssb_pcihost_resume NULL
184 #endif /* CONFIG_PM */
185 
186-static int ssb_pcihost_probe(struct pci_dev *dev,
187- const struct pci_device_id *id)
188+static int __devinit ssb_pcihost_probe(struct pci_dev *dev,
189+ const struct pci_device_id *id)
190 {
191     struct ssb_bus *ssb;
192     int err = -ENOMEM;
193@@ -110,7 +110,7 @@ static void ssb_pcihost_remove(struct pc
194     pci_set_drvdata(dev, NULL);
195 }
196 
197-int ssb_pcihost_register(struct pci_driver *driver)
198+int __devinit ssb_pcihost_register(struct pci_driver *driver)
199 {
200     driver->probe = ssb_pcihost_probe;
201     driver->remove = ssb_pcihost_remove;
202--- a/drivers/ssb/scan.c
203+++ b/drivers/ssb/scan.c
204@@ -310,8 +310,7 @@ int ssb_bus_scan(struct ssb_bus *bus,
205     } else {
206         if (bus->bustype == SSB_BUSTYPE_PCI) {
207             bus->chip_id = pcidev_to_chipid(bus->host_pci);
208- pci_read_config_byte(bus->host_pci, PCI_REVISION_ID,
209- &bus->chip_rev);
210+ bus->chip_rev = bus->host_pci->revision;
211             bus->chip_package = 0;
212         } else {
213             bus->chip_id = 0x4710;
214

Archive Download this file



interactive