aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/bcma/main.c
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2012-09-29 14:29:50 -0400
committerJohn W. Linville <linville@tuxdriver.com>2012-10-19 15:52:21 -0400
commit30cfb023019b347cdfd39bd5039d2118a1bd224a (patch)
tree37c511de8a04b0516909323d207e54cbc6498d34 /drivers/bcma/main.c
parent49655bb8a51565f0375a4f783334c9de78134be5 (diff)
bcma: init sprom struct earlier
The PCIe host driver and the chip common initialisation accesses the sprom struct, but it is not initialized when these functions are run. Move the sprom parsing up in to do it earlier. As we need the chip common core rev and some other attributes from the chip common core, the early initialization is done before accessing the sprom. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/bcma/main.c')
-rw-r--r--drivers/bcma/main.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/drivers/bcma/main.c b/drivers/bcma/main.c
index bea2d7cfa6c2..d6b5c4ca4c43 100644
--- a/drivers/bcma/main.c
+++ b/drivers/bcma/main.c
@@ -182,6 +182,20 @@ int __devinit bcma_bus_register(struct bcma_bus *bus)
182 return -1; 182 return -1;
183 } 183 }
184 184
185 /* Early init CC core */
186 core = bcma_find_core(bus, bcma_cc_core_id(bus));
187 if (core) {
188 bus->drv_cc.core = core;
189 bcma_core_chipcommon_early_init(&bus->drv_cc);
190 }
191
192 /* Try to get SPROM */
193 err = bcma_sprom_get(bus);
194 if (err == -ENOENT) {
195 bcma_err(bus, "No SPROM available\n");
196 } else if (err)
197 bcma_err(bus, "Failed to get SPROM: %d\n", err);
198
185 /* Init CC core */ 199 /* Init CC core */
186 core = bcma_find_core(bus, bcma_cc_core_id(bus)); 200 core = bcma_find_core(bus, bcma_cc_core_id(bus));
187 if (core) { 201 if (core) {
@@ -210,13 +224,6 @@ int __devinit bcma_bus_register(struct bcma_bus *bus)
210 bcma_core_gmac_cmn_init(&bus->drv_gmac_cmn); 224 bcma_core_gmac_cmn_init(&bus->drv_gmac_cmn);
211 } 225 }
212 226
213 /* Try to get SPROM */
214 err = bcma_sprom_get(bus);
215 if (err == -ENOENT) {
216 bcma_err(bus, "No SPROM available\n");
217 } else if (err)
218 bcma_err(bus, "Failed to get SPROM: %d\n", err);
219
220 /* Register found cores */ 227 /* Register found cores */
221 bcma_register_cores(bus); 228 bcma_register_cores(bus);
222 229