hostapd: merge some pending fixes (fixes assoc errors when moving between vaps of...
[openwrt.git] / target / linux / brcm47xx / patches-3.3 / 202-bcma-init-sprom-struct-earlier.patch
1 --- a/drivers/bcma/main.c
2 +++ b/drivers/bcma/main.c
3 @@ -165,6 +165,20 @@ int __devinit bcma_bus_register(struct b
4                 return -1;
5         }
6  
7 +       /* Early init CC core */
8 +       core = bcma_find_core(bus, bcma_cc_core_id(bus));
9 +       if (core) {
10 +               bus->drv_cc.core = core;
11 +               bcma_core_chipcommon_early_init(&bus->drv_cc);
12 +       }
13 +
14 +       /* Try to get SPROM */
15 +       err = bcma_sprom_get(bus);
16 +       if (err == -ENOENT) {
17 +               bcma_err(bus, "No SPROM available\n");
18 +       } else if (err)
19 +               bcma_err(bus, "Failed to get SPROM: %d\n", err);
20 +
21         /* Init CC core */
22         core = bcma_find_core(bus, bcma_cc_core_id(bus));
23         if (core) {
24 @@ -193,13 +207,6 @@ int __devinit bcma_bus_register(struct b
25                 bcma_core_gmac_cmn_init(&bus->drv_gmac_cmn);
26         }
27  
28 -       /* Try to get SPROM */
29 -       err = bcma_sprom_get(bus);
30 -       if (err == -ENOENT) {
31 -               bcma_err(bus, "No SPROM available\n");
32 -       } else if (err)
33 -               bcma_err(bus, "Failed to get SPROM: %d\n", err);
34 -
35         /* Register found cores */
36         bcma_register_cores(bus);
37