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 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