On Tue, Feb 07, 2012 at 09:29:21AM -0600, Seth Forshee wrote: > On Tue, Feb 07, 2012 at 08:08:11AM +0100, Rafał Miłecki wrote: > > W dniu 7 lutego 2012 08:04 użytkownik Rafał Miłecki <zajec5@xxxxxxxxx> napisał: > > > 2012/2/6 Seth Forshee <seth.forshee@xxxxxxxxxxxxx>: > > >> On Mon, Feb 06, 2012 at 08:13:11PM +0100, Hauke Mehrtens wrote: > > >>> According to the Broadcom SDK for SoCs bcma_pcicore_serdes_workaround() > > >>> should be called when coming out of standby/hibernate. > > >>> The code wl uses to do the same thing as bcma does is open source. You > > >>> find it in the GPL package of many Broadcom based Wifi Routers. > > >> > > >> Thanks for the suggestion. Unfortunately calling > > >> bcma_pcicore_serdes_workaround() during resume doesn't help. I'll look > > >> at the wl code to see if I can learn anything there. > > > > > > Can you try > > > > > > > > > diff --git a/drivers/bcma/main.c b/drivers/bcma/main.c > > > index febbc0a..a097a26 100644 > > > --- a/drivers/bcma/main.c > > > +++ b/drivers/bcma/main.c > > > @@ -267,6 +267,13 @@ int bcma_bus_resume(struct bcma_bus *bus) > > > bcma_core_chipcommon_init(&bus->drv_cc); > > > } > > > > > > + /* Init PCIE core */ > > > + core = bcma_find_core(bus, BCMA_CORE_PCIE); > > > + if (core) { > > > + bus->drv_pci.setup_done = false; > > > + bcma_core_pci_init(&bus->drv_pci); > > > + } > > > + > > > list_for_each_entry(core, &bus->cores, list) { > > > struct device_driver *drv = core->dev.driver; > > > if (drv) { > > > > If this doesn't work out of box, please check if reloading b43 is > > enough. AFAIR now you have to reload both: b43 and bcma. I hope this > > patch will let you avoid reloading at least bcma. > > I tried exactly that yesterday, but it doesn't fix the issue. I just > checked to see if it allows reloading only b43, and it does not. I still > have to reload bcma to get the wireless working again. I've been pounding on this quite a bit in the past week, but I haven't been able to get anywhere so far. Any relevant workarounds I found in wl have no effect, and neither does any amount of reinitialization. I'm still digging into the drivers to see if I can learn anything, but if anyone has more suggestions I'll happily give them a try. Seth -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html