Subject: Re: [0/5] bcma/brcmsmac suspend/resume cleanups and fixes

From: "Arend van Spriel" <[email-masked]>
Date: Fri, 13 Jan 2012 12:06:47 +0100

On 01/13/2012 08:59 AM, Linus Torvalds wrote:
> 
> So here are five cleanup/fix patches that try to make the bcma and 
> brcmsmac suspend/resume situation look better.
> 
> The changes do:
> 
>  - use the modern PCI suspend/resume model, and let the PCI layer handle 
>    the actual standard power state changes.
> 
>  - clean up the BCMA suspend/resume infrastructure a bit in general.
> 
>  - actually hook the BCMA suspend/resume callbacks up to the 
>    suspend/resume event - it use to be that a bcma driver could set its 
>    suspend/resume routines, but nothing would ever call them.
> 
>  - and Rafał's bcma window invalidation
> 
> Comments? This gets suspend/resume working for me at least once. I'm not 
> going to try to hang my machine again until after I have gotten this sent 
> out.
> 
> Does this work for others?
> 
>                Linus
> 

I have a Dell Latitude E6410 over here. I applied the patches to

commit 099469502f62fbe0d7e4f0b83a2f22538367f734
Merge: 7c17d86 35f1526
Author: Linus Torvalds <[email-masked]>
Date:   Thu Jan 12 20:42:54 2012 -0800

    Merge branch 'akpm' (aka "Andrew's patch-bomb, take two")

Upon suspend my laptop hangs (see trace below pulled from serial
console). I do not see the pr_debug in the suspend function (compiled
with -DDEBUG). Unfortunately the same happens when I don't insert bcma
and brcmsmac. I attached the kernel configuration.

Normally, the power button led will flash in suspend mode, but it stays
active and I have to force a powerdown (holding the power button).

So for now I can't say the patches are good or bad for that matter.

Gr. AvS

[  816.878395] bcma: Core 0 found: ChipCommon (manuf 0x4BF, id 0x800,
rev 0x22, class 0x0)
[  816.886898] bcma: Core 1 found: IEEE 802.11 (manuf 0x4BF, id 0x812,
rev 0x17, class 0x0)
[  816.895559] bcma: Core 2 found: PCIe (manuf 0x4BF, id 0x820, rev
0x0F, class 0x0)
[  816.937118] bcma: Bus registered
[  825.953621] cfg80211: Calling CRDA to update world regulatory domain
[  854.763733] brcmsmac bcma0:0: mfg 4bf core 812 rev 23 class 0 irq 17
[  854.937773] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[  854.938929] brcms_module_init: register returned 0
[  854.939332] cfg80211: Calling CRDA for country: US
[  854.942730] cfg80211: Regulatory domain changed to country: US
[  856.045618] udev[473]: renamed network interface wlan0 to wlan2
[  856.072472] ieee80211 phy0: brcms_ops_bss_info_changed: qos enabled:
false (implement)
[  856.092191] ieee80211 phy0: brcms_ops_config: change power-save mode:
false (implement)
[  856.103216] ADDRCONF(NETDEV_UP): wlan2: link is not ready
[  856.943778] cfg80211: Found new beacon on frequency: 5240 MHz (Ch 48)
on phy0
[  858.487656] cfg80211: Found new beacon on frequency: 5745 MHz (Ch
149) on phy0
[  858.569901] cfg80211: Found new beacon on frequency: 5765 MHz (Ch
153) on phy0
[  872.794509] wlan2: authenticate with c0:c1:c0:04:b8:2c (try 1)
[  872.802028] wlan2: authenticated
[  872.805298] wlan2: associate with c0:c1:c0:04:b8:2c (try 1)
[  872.814451] wlan2: RX AssocResp from c0:c1:c0:04:b8:2c (capab=0x411
status=0 aid=2)
[  872.822164] wlan2: associated
[  872.825143] wlan2: moving STA c0:c1:c0:04:b8:2c to state 1
[  872.830643] wlan2: moving STA c0:c1:c0:04:b8:2c to state 2
[  872.836126] wlan2: moving STA c0:c1:c0:04:b8:2c to state 3
[  872.842363] ieee80211 phy0: brcms_ops_bss_info_changed: qos enabled:
true (implement)
[  872.850202] ieee80211 phy0: brcmsmac: brcms_ops_bss_info_changed:
associated
[  872.857249] ieee80211 phy0: changing basic rates failed: -22
[  872.862902] ieee80211 phy0: brcms_ops_bss_info_changed: arp
filtering: enabled true, count 0 (implement)
[  872.872612] ADDRCONF(NETDEV_CHANGE): wlan2: link becomes ready
[  872.873311] ieee80211 phy0: brcms_c_dotxstatus: INTERMEDIATE but not
AMPDU
[  872.885340] ieee80211 phy0: brcms_c_dotxstatus: INTERMEDIATE but not
AMPDU
[  876.352453] ieee80211 phy0: brcms_ops_bss_info_changed: arp
filtering: enabled true, count 1 (implement)
[  883.711301] wlan2: no IPv6 routers present
[  979.497669] EXT4-fs (sda5): re-mounted. Opts: errors=remount-ro,commit=0
[  979.508400] EXT4-fs (sda7): re-mounted. Opts: commit=0
[  980.899784] ieee80211 phy0: brcms_ops_bss_info_changed: qos enabled:
false (implement)
[  980.907761] ieee80211 phy0: brcmsmac: brcms_ops_bss_info_changed:
disassociated
[  980.915061] ieee80211 phy0: brcms_ops_bss_info_changed: arp
filtering: enabled false, count 1 (implement)
[  980.924656] wlan2: deauthenticating from c0:c1:c0:04:b8:2c by local
choice (reason=3)
[  980.932675] wlan2: moving STA c0:c1:c0:04:b8:2c to state 2
[  980.938171] wlan2: moving STA c0:c1:c0:04:b8:2c to state 1
[  980.943692] wlan2: moving STA c0:c1:c0:04:b8:2c to state 0
[  980.949462] cfg80211: All devices are disconnected, going to restore
regulatory settings
[  980.957590] cfg80211: Restoring regulatory settings
[  980.962491] cfg80211: Calling CRDA to update world regulatory domain
[  981.567922] cfg80211: World regulatory domain updated:
[  982.312893] PM: Syncing filesystems ... done.
[  982.356261] PM: Preparing system for mem sleep
[  982.371219] Freezing user space processes ... (elapsed 0.01 seconds)
done.
[  982.390543] Freezing remaining freezable tasks ... (elapsed 0.01
seconds) done.
[  982.410514] PM: Entering mem sleep
[  982.414712] sd 0:0:0:0: [sda] Synchronizing SCSI cache
[  982.420182] sd 0:0:0:0: [sda] Stopping disk