BCM4331 fails to associate after suspend
Rafał Miłecki
zajec5 at gmail.com
Tue Feb 7 02:04:24 EST 2012
2012/2/6 Seth Forshee <seth.forshee at canonical.com>:
> 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) {
More information about the b43-dev
mailing list