On Mon, 2009-08-17 at 20:30 +0200, Rafael J. Wysocki wrote:
On Monday 17 August 2009, Maxim Levitsky wrote:
quoted
On Sun, 2009-08-16 at 06:42 +0300, Maxim Levitsky wrote:
quoted
Hi,
I have recently put back the davicom dm9009 ethernet card into my
computer.
Some long time ago, I have written its suspend/resume routines.
Now I see that few things have changed, like I need to enable wake in
sysfs or better patch the code to do so, some nice helpers like
pci_prepare_to_sleep have arrived, etc.
I narrowed the strange issue down to following situation:
I reload dmfe.ko (and networkmanager is disabled)
I don't ifup the device, thus pretty much no hardware initialization
takes place (but this appears not to matter anyway)
I then suspend the system, and WOL doesn't work (I have patched the
driver to enable WOL automaticly)
I then, suspend again. WOL works, and continues to work as long as I
don't reload the driver. If I do, same situation repeats.
Also, after a boot, WOL works, so a reload cycle triggers that issue.
And most importantly, if I don't do a
pci_set_power_state(pci_dev, pci_choose_state (pci_dev, state));
in .suspend, then WOL always works.
and I have even tried to set state manually to PCI_D3hot or PCI_D3cold,
I also tried to use pci_save_state
I also have 2 copies of this card, and both have this issue.
I also tried 2 pci slots.
Kernel is vanilla 2.6.31-rc5
I need a dmesg output containing at least one suspend-resume cycle
(preferably two cycles, the first one where WoL worked and another one
where it didn't).
I am really sorry for late reply.
I attach the dmesg.
dmesg1 - after a boot, and dmfe reload
dmesg2 - after first s2ram cycle (wol didn't work)
dmesg3 - after second s2ram cycle (wol did work)
dmesg4 - after third s2ram cycle (wol did work), this is just in case.
Also I attach changes I did to the driver to make it enable wol by
default.
Best regards,
Maxim Levitsky