Bug 8381

Summary: (net forcedeth) doesn't wol on suspend
Product: Drivers Reporter: Matthieu Baechler (matthieu.baechler)
Component: NetworkAssignee: Ayaz Abdulla (aabdulla)
Status: CLOSED CODE_FIX    
Severity: normal CC: linux, mailinglist, protasnb, ranma+kernel, rjw, romieu
Priority: P2    
Hardware: i386   
OS: Linux   
Kernel Version: 2.6.21-rc5 Subsystem:
Regression: No Bisected commit-id:
Bug Depends on:    
Bug Blocks: 7216    
Attachments: Power management fixes

Description Matthieu Baechler 2007-04-27 14:51:10 UTC
Distribution: debian unstable
Hardware Environment: Athlon 3000+ on a K8N-E-Deluxe
Software Environment: Linux 2.6.21-rc5
Problem Description: The integrated NIC of my motherboard supports wol propertly
when I hald my computer. But when I use suspend to ram or suspend to disk, wol
doesn't work anymore. 

Steps to reproduce:

Steps that works :

1/ power on the computer
2/ boot linux
3/ execute "ethtool -s eth0 wol g"
4/ halt
5/ send a magic packet with wakeonlan from another computer

Steps that doesn't work :

1/ power on the computer
2/ boot linux
3/ execute "ethtool -s eth0 wol g"
4/ cat mem > /sys/power/state
5/ send a magic packet with wakeonlan from another computer

Same thing with s2disk.

I'd like to use wol + suspend to ram.

#lspci
server:/home/matthieu# lspci
00:00.0 Host bridge: nVidia Corporation nForce3 250Gb Host Bridge (rev a1)
00:01.0 ISA bridge: nVidia Corporation nForce3 250Gb LPC Bridge (rev a2)
00:01.1 SMBus: nVidia Corporation nForce 250Gb PCI System Management (rev a1)
00:02.0 USB Controller: nVidia Corporation CK8S USB Controller (rev a1)
00:02.1 USB Controller: nVidia Corporation CK8S USB Controller (rev a1)
00:02.2 USB Controller: nVidia Corporation nForce3 EHCI USB 2.0 Controller (rev a2)
00:05.0 Bridge: nVidia Corporation CK8S Ethernet Controller (rev a2)
00:06.0 Multimedia audio controller: nVidia Corporation nForce3 250Gb AC'97
Audio Controller (rev a1)
00:08.0 IDE interface: nVidia Corporation CK8S Parallel ATA Controller (v2.5)
(rev a2)
00:0a.0 IDE interface: nVidia Corporation CK8S Serial ATA Controller (v2.5) (rev a2)
00:0b.0 PCI bridge: nVidia Corporation nForce3 250Gb AGP Host to PCI Bridge (rev a2)
00:0e.0 PCI bridge: nVidia Corporation nForce3 250Gb PCI-to-PCI Bridge (rev a2)
00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron]
HyperTransport Technology Configuration
00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM
Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron]
Miscellaneous Control
01:00.0 VGA compatible controller: ATI Technologies Inc RV280 [Radeon 9200 SE]
(rev 01)
02:0a.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 24)
02:0b.0 FireWire (IEEE 1394): VIA Technologies, Inc. IEEE 1394 Host Controller
(rev 80)
02:0c.0 Mass storage controller: Silicon Image, Inc. SiI 3114
[SATALink/SATARaid] Serial ATA Controller (rev 02)

server:/home/matthieu# lsmod
Module                  Size  Used by
nfs                   242008  0 
nfsd                  253320  17 
exportfs                6080  1 nfsd
lockd                  65904  3 nfs,nfsd
nfs_acl                 4160  2 nfs,nfsd
sunrpc                172840  13 nfs,nfsd,lockd,nfs_acl
ppdev                   9864  0 
lp                     13128  0 
cpufreq_powersave       2368  1 
button                  9568  0 
ac                      6536  0 
battery                11720  0 
ext2                   63952  1 
xfs                   485096  7 
radeonfb              103552  1 
fb_ddc                  3136  1 radeonfb
i2c_algo_bit            8328  1 radeonfb
it87                   23632  0 
hwmon_vid               3328  1 it87
i2c_isa                 6784  1 it87
eeprom                  8656  0 
powernow_k8            11032  1 
freq_table              5320  1 powernow_k8
sbp2                   23940  0 
loop                   17872  0 
analog                 11424  0 
snd_intel8x0           36200  0 
snd_mpu401              9576  0 
snd_mpu401_uart         8896  1 snd_mpu401
snd_ac97_codec        110936  1 snd_intel8x0
i2c_nforce2             6592  0 
snd_rawmidi            26080  1 snd_mpu401_uart
snd_seq_device          9044  1 snd_rawmidi
psmouse                39760  0 
gameport               16784  1 analog
shpchp                 34460  0 
pci_hotplug            16520  1 shpchp
ac97_bus                3136  1 snd_ac97_codec
i2c_core               24216  7
radeonfb,fb_ddc,i2c_algo_bit,it87,i2c_isa,eeprom,i2c_nforce2
parport_pc             36968  1 
parport                39308  3 ppdev,lp,parport_pc
serio_raw               7748  0 
pcspkr                  3456  0 
snd_pcm                82572  2 snd_intel8x0,snd_ac97_codec
snd_timer              23560  1 snd_pcm
snd                    60456  8
snd_intel8x0,snd_mpu401,snd_mpu401_uart,snd_ac97_codec,snd_rawmidi,snd_seq_device,snd_pcm,snd_timer
soundcore               8928  1 snd
snd_page_alloc         10768  2 snd_intel8x0,snd_pcm
k8temp                  6656  0 
evdev                  11328  0 
ext3                  130640  1 
jbd                    57392  1 ext3
mbcache                 9480  2 ext2,ext3
dm_mirror              20416  0 
dm_snapshot            17032  0 
dm_mod                 59312  19 dm_mirror,dm_snapshot
raid456               118560  1 
md_mod                 76188  3 raid456
xor                     6288  1 raid456
ide_cd                 40672  0 
cdrom                  36072  1 ide_cd
ide_disk               16832  3 
sd_mod                 22040  10 
pata_amd               15584  0 
sata_nv                22468  1 
ata_generic             9860  0 
floppy                 61640  0 
sata_sil               13704  4 
ohci1394               34312  0 
libata                119656  4 pata_amd,sata_nv,ata_generic,sata_sil
scsi_mod              155544  3 sbp2,sd_mod,libata
ieee1394              100408  2 sbp2,ohci1394
3c59x                  46388  0 
mii                     6272  1 3c59x
generic                 6468  0 [permanent]
amd74xx                15728  0 [permanent]
ide_core              139744  4 ide_cd,ide_disk,generic,amd74xx
forcedeth              46280  0 
ehci_hcd               32780  0 
ohci_hcd               20932  0 
thermal                16400  0 
processor              27004  2 powernow_k8,thermal
fan                     6152  0
Comment 1 Francois Romieu 2007-05-04 15:04:37 UTC
Matthieu, do you suspend an interface which is not up ?

-- 
Ueimor
Comment 2 Tobias Diedrich 2007-06-02 10:25:34 UTC
I'm seeing the same problem.
wol is set on all interfaces:
|Settings for eth0:
|	Supported ports: [ MII ]
|	Supported link modes:   10baseT/Half 10baseT/Full 
|	                        100baseT/Half 100baseT/Full 
|	                        1000baseT/Full 
|	Supports auto-negotiation: Yes
|	Advertised link modes:  10baseT/Half 10baseT/Full 
|	                        100baseT/Half 100baseT/Full 
|	                        1000baseT/Full 
|	Advertised auto-negotiation: Yes
|	Speed: 100Mb/s
|	Duplex: Full
|	Port: MII
|	PHYAD: 1
|	Transceiver: external
|	Auto-negotiation: on
|	Supports Wake-on: g
|	Wake-on: g
|	Link detected: yes
|Settings for eth1:
|	Supported ports: [ MII ]
|	Supported link modes:   10baseT/Half 10baseT/Full 
|	                        100baseT/Half 100baseT/Full 
|	                        1000baseT/Full 
|	Supports auto-negotiation: Yes
|	Advertised link modes:  10baseT/Half 10baseT/Full 
|	                        100baseT/Half 100baseT/Full 
|	                        1000baseT/Full 
|	Advertised auto-negotiation: Yes
|	Speed: Unknown! (65535)
|	Duplex: Unknown! (255)
|	Port: MII
|	PHYAD: 1
|	Transceiver: external
|	Auto-negotiation: on
|	Supports Wake-on: g
|	Wake-on: g
|	Link detected: no
|Settings for eth2:
|	Supported ports: [ TP ]
|	Supported link modes:   10baseT/Half 10baseT/Full 
|	                        100baseT/Half 100baseT/Full 
|	                        1000baseT/Full 
|	Supports auto-negotiation: Yes
|	Advertised link modes:  10baseT/Half 10baseT/Full 
|	                        100baseT/Half 100baseT/Full 
|	                        1000baseT/Full 
|	Advertised auto-negotiation: Yes
|	Speed: 1000Mb/s
|	Duplex: Full
|	Port: Twisted Pair
|	PHYAD: 0
|	Transceiver: internal
|	Auto-negotiation: on
|	Supports Wake-on: pumbg
|	Wake-on: g
|	Current message level: 0x00000033 (51)
|	Link detected: yes

eth0+eth1 are forcedeth, eth2 is a r8169

After poweroff I can wake the machine by sending a magic packet to eth0 or eth2
(no cable attached to eth1).
After s2disk I can only wake the machine with eth2, eth0 doesn't react.

eth0 is the only interface configured with an IP address:
|eth0      Link encap:Ethernet  HWaddr 00:17:31:AA:1E:89  
|          inet addr:192.168.8.241  Bcast:192.168.8.255  Mask:255.255.255.128
|          inet6 addr: fe80::217:31ff:feaa:1e89/64 Scope:Link
|          inet6 addr: fec0:c0a8:800::f1/64 Scope:Site
|          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
|          RX packets:1447 errors:0 dropped:0 overruns:0 frame:0
|          TX packets:977 errors:0 dropped:0 overruns:0 carrier:0
|          collisions:0 txqueuelen:1000 
|          RX bytes:502379 (490.6 KiB)  TX bytes:113890 (111.2 KiB)
|          Interrupt:21 Base address:0x6000 
|
|lo        Link encap:Local Loopback  
|          inet addr:127.0.0.1  Mask:255.0.0.0
|          inet6 addr: ::1/128 Scope:Host
|          UP LOOPBACK RUNNING  MTU:16436  Metric:1
|          RX packets:27 errors:0 dropped:0 overruns:0 frame:0
|          TX packets:27 errors:0 dropped:0 overruns:0 carrier:0
|          collisions:0 txqueuelen:0 
|          RX bytes:2328 (2.2 KiB)  TX bytes:2328 (2.2 KiB)

lspci:
|00:00.0 RAM memory: nVidia Corporation MCP55 Memory Controller (rev a1)
|00:01.0 ISA bridge: nVidia Corporation MCP55 LPC Bridge (rev a2)
|00:01.1 SMBus: nVidia Corporation MCP55 SMBus (rev a2)
|00:01.2 RAM memory: nVidia Corporation MCP55 Memory Controller (rev a2)
|00:02.0 USB Controller: nVidia Corporation MCP55 USB Controller (rev a1)
|00:02.1 USB Controller: nVidia Corporation MCP55 USB Controller (rev a2)
|00:04.0 IDE interface: nVidia Corporation MCP55 IDE (rev a1)
|00:06.0 PCI bridge: nVidia Corporation MCP55 PCI bridge (rev a2)
|00:06.1 Audio device: nVidia Corporation MCP55 High Definition Audio (rev a2)
|00:08.0 Bridge: nVidia Corporation MCP55 Ethernet (rev a2)
|00:09.0 Bridge: nVidia Corporation MCP55 Ethernet (rev a2)
|00:0a.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a2)
|00:0b.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a2)
|00:0c.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a2)
|00:0d.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a2)
|00:0e.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a2)
|00:0f.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a2)
|00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron]
HyperTransport Technology Configuration
|00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
|00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM
Controller
|00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron]
Miscellaneous Control
|01:07.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8169 Gigabit
Ethernet (rev 10)
|01:08.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 07)
|01:08.1 Input device controller: Creative Labs SB Live! Game Port (rev 07)
|01:0b.0 FireWire (IEEE 1394): Texas Instruments TSB43AB22/A IEEE-1394a-2000
Controller (PHY/Link)
|06:00.0 SATA controller: JMicron Technologies, Inc. JMicron 20360/20363 AHCI
Controller (rev 02)
|06:00.1 IDE interface: JMicron Technologies, Inc. JMicron 20360/20363 AHCI
Controller (rev 02)
|07:00.0 VGA compatible controller: ATI Technologies Inc RV370 5B60 [Radeon X300
(PCIE)]
|07:00.1 Display controller: ATI Technologies Inc RV370 [Radeon X300SE]

Linux melchior 2.6.21.3 #25 PREEMPT Fri Jun 1 18:03:58 CEST 2007 x86_64 GNU/Linux

My guess:
IIRC on s2disk the devices are shut down using suspend and then reactivated
using resume before writing the image to swap.

In nv_resume WOL seems to get disabled explicitly:

|static int nv_resume(struct pci_dev *pdev)
|{
|	struct net_device *dev = pci_get_drvdata(pdev);
|	int rc = 0;
|
|	if (!netif_running(dev))
|		goto out;
|
|	netif_device_attach(dev);
|
|	pci_set_power_state(pdev, PCI_D0);
|	pci_restore_state(pdev);
|	pci_enable_wake(pdev, PCI_D0, 0);
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|	rc = nv_open(dev);
|out:
|	return rc;
|}

Whereas in nv_suspend:
|static int nv_suspend(struct pci_dev *pdev, pm_message_t state)
|{
|	struct net_device *dev = pci_get_drvdata(pdev);
|	struct fe_priv *np = netdev_priv(dev);
|
|	if (!netif_running(dev))
|		goto out;
|
|	netif_device_detach(dev);
|
|	// Gross.
|	nv_close(dev);
|
|	pci_save_state(pdev);
|	pci_enable_wake(pdev, pci_choose_state(pdev, state), np->wolenabled);
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|	pci_set_power_state(pdev, pci_choose_state(pdev, state));
|out:
|	return 0;
|}

So if I'm correct about the order being nv_suspend, nv_resume, write to disk,
poweroff, then after
"pci_enable_wake(pdev, pci_choose_state(pdev, state), np->wolenabled);"
in nv_resume
"pci_enable_wake(pdev, PCI_D0, 0);" is called just before the machine gets
powered off, which looks to me like it might be the cause?
Comment 3 Tobias Diedrich 2007-06-02 11:20:21 UTC
Reproducing:

I just did some tests and noticed, that after the first s2disk, wol still works.
Only after the second s2disk it stops working.

Failure mode:
boot -> ethtool -s eth0 wol g -> s2disk -> *wake by wol* -> (1) s2disk ->
*doesn't wake by wol, wake with power switch -> goto (1) or -> poweroff ->
*doesn't wake by wol*

Working:
boot -> ethtool -s eth0 wol g -> poweroff -> *wake by wol*

So the first s2disk wol still works.
second and subsequent s2disk wol doesn't work anymore.
"ethtool -s eth0 wol d; ethtool -s eth0 wol g" after s2disk doesn't help
When wol stops working for s2disk, it also doesn't work after poweroff.

HTH,

Tobias
Comment 4 Francois Romieu 2007-06-04 13:03:31 UTC
Created attachment 11677 [details]
Power management fixes

Can you give the patch above a try ?

It applies against current kernel (post 2.6.22-rc3).

-- 
Ueimor
Comment 5 Tobias Diedrich 2007-06-16 08:09:50 UTC
Sorry for the delay...
With the patch applied on top of 2.6.21.5 (applies fine), wol only works after poweroff and with s2disk it doesn't work at all (as opposed to 'works the first time' like before applying the patch).

HTH,

Tobias
Comment 6 Tobias Diedrich 2007-06-16 08:43:33 UTC
Same with 2.6.22-rc4.
I also verified that without the patch on 2.6.22-rc4 wol does work on the first s2disk, but with the patch applied it does not.
Comment 7 Natalie Protasevich 2007-07-20 00:48:41 UTC
Any update on this problem?
Thanks.
Comment 8 Manuel Bernhardt 2007-10-01 09:43:38 UTC
Same with 2.6.22.9.
If the system is shutdown, WOL works - if the works is in S3 (suspend to ram) mode, WOL doesn't works.
Comment 9 Manuel Bernhardt 2007-10-01 09:44:29 UTC
Sorry ... now in better english ;-)

Shutdown: WOL works
S3: WOL doesn't works
Comment 10 Rafael J. Wysocki 2007-10-06 08:39:49 UTC
Can you test 2.6.23-rc9 with the patches from:

http://www.sisk.pl/kernel/hibernation_and_suspend/2.6.23-rc9/patches/

applied, please?
Comment 11 Manuel Bernhardt 2007-10-10 03:22:06 UTC
Can I also use the released 2.6.23 kernel? Does this version already include these patches?
Comment 12 Rafael J. Wysocki 2007-10-12 14:58:23 UTC
(In reply to comment #11)
> Can I also use the released 2.6.23 kernel?

Yes, please.

> Does this version already include these patches?

No, it doesn't, but there's a new series against it already, at:

http://www.sisk.pl/kernel/hibernation_and_suspend/2.6.23/patches/

Please use it.
Comment 13 Manuel Bernhardt 2007-10-17 12:46:58 UTC
I'd compiled 2.6.23.1 with patches applied (works without rejects) but they has no effect. WOL doesn't work. Wakeup status is set with ethtool and output shows me the correct set state.
Comment 14 Rafael J. Wysocki 2007-12-12 16:50:32 UTC
Please check if the current mainline kernel does any better ...
Comment 15 Manuel Bernhardt 2007-12-16 05:18:37 UTC
Test with 2.6.23.9: Doesn't work 

Problem here is also, that I must use the parameter pci=nomsi on boot so that suspend work. If i doesn't, network will not work on resume and when I remove the forcedeth module, the system will freeze.
Comment 16 Manuel Bernhardt 2008-02-06 12:39:38 UTC
Update: Same with 2.6.24 ....
Comment 17 Manuel Bernhardt 2008-02-25 13:56:53 UTC
I found now a solution:

I searched for the nic in /proc/acpi/wakeup and enabled the status in my case with

  echo -n MMAC > /proc/acpi/wakeup

Now wake on lan works! Maybe somehow the driver itself should set this state for getting wol working?
Comment 18 Tobias Diedrich 2008-05-17 13:22:45 UTC
After finding the ethtool register dump option (ethtool -d, why didn't anyone
tell me about this neat debugging option?) I think I solved the problem:

Note the byteswapped mac at offset 0a8 after the first s2disk and
I just confirmed that "etherwake -i br0 64:C6:AC:31:17:00" will indeed
wake up the system if "etherwake -i br0 00:17:31:AC:C6:64" does not work:

--- /tmp/dump1  2008-05-17 10:32:09.000000000 +0200
+++ /tmp/dump4  2008-05-17 10:44:19.000000000 +0200
@@ -1,6 +1,6 @@
 Offset Values
 --------       -----
-000:    00 00 00 00 ff 00 00 00 03 00 00 00 ca 03 11 00
+000:    00 00 00 00 ff 00 00 00 03 00 00 00 ca 03 1e 01
 010:    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 020:    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 030:    01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
@@ -8,17 +8,17 @@
 050:    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 060:    00 00 00 00 00 00 00 00 00 00 00 00 ff ff 00 00
 070:    ff ff 00 00 ff ff 00 00 ff ff 00 00 00 00 00 00
-080:    3e 0f 3b 00 01 00 00 40 00 00 00 00 80 00 7f 00
-090:    1c 06 00 00 01 00 00 00 00 00 00 00 00 7f 00 80
-0a0:    0f 07 16 00 16 00 00 00 00 17 31 aa 1e 89 00 00
-0b0:    01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+080:    3e 0f 3b 00 01 00 00 40 00 00 00 00 20 00 7f 00
+090:    1c 06 00 00 01 00 00 00 00 00 00 00 3b 7f 00 80
+0a0:    0f 07 16 00 16 00 00 00 89 1e aa 31 17 00 00 00
+0b0:    01 00 00 00 00 00 00 00 ff ff ff ff ff ff 00 00
 0c0:    00 01 00 10 01 00 00 00 01 00 00 00 01 00 00 00
 0d0:    01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00
 0e0:    01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00
 0f0:    01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00
 100:    00 88 53 7e 00 80 53 7e ff 00 7f 00 00 80 00 00
-110:    e8 03 01 00 00 00 00 00 b0 02 00 00 00 88 53 7e
-120:    c0 80 53 7e 00 00 00 00 00 00 00 00 10 e0 ba 78
+110:    e8 03 01 00 00 00 00 00 34 01 00 00 00 88 53 7e
+120:    c0 80 53 7e 00 00 00 00 00 00 00 00 10 20 f2 7e
 130:    1c 06 00 80 0c 88 53 7e 00 80 53 7e 00 80 e0 01
 140:    20 41 30 00 00 26 c0 80 00 00 00 00 00 00 00 00
 150:    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
@@ -53,7 +53,7 @@
 320:    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 330:    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 340:    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-350:    00 00 00 00 20 00 00 00 8c 22 39 00 00 00 00 00
+350:    00 00 00 00 20 00 00 00 d2 c8 01 00 00 00 00 00
 360:    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 370:    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 380:    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Comment 19 Tobias Diedrich 2008-05-18 05:21:21 UTC
This patch series fixes the bug for me:

http://www.tdiedrich.de/~ranma/patches/forcedeth/2.6.26-rc2/
Comment 20 Tobias Diedrich 2008-05-25 11:22:49 UTC
(In reply to comment #19)
> This patch series fixes the bug for me:
> 
> http://www.tdiedrich.de/~ranma/patches/forcedeth/2.6.26-rc2/
> 

Only for '/sys/power/disk' set to 'shutdown' though.
For 'platform' mode, the additional acpi magic from comment #17 is required:
echo -n MMAC > /proc/acpi/wakeup
echo -n MAC1 > /proc/acpi/wakeup
Note that a write _toggles_ the corresponding wakeup flag, so I'm now using
'for i in MMAC MAC1; do grep -q "^${i}.*disabled" /proc/acpi/wakeup && echo $i > /proc/acpi/wakeup; done'
(My board has two onboard ports, so I need MMAC for one and MAC1 for the other)
Comment 21 Rafael J. Wysocki 2009-10-25 10:37:22 UTC
This should be fixed in the current mainline (2.6.32-rc5), so closing.  Please reopen if necessary.