# regression severity 647560 important quit Hi,
Nick wrote: > debian/patches/features/all/sky2/0030-sky2-dont-enable-PME-legacy-mode. > patch > > Disabling the patch makes WoL work again. Nice detective work! > See also [...]/5676cc7bfe1e388e87843f71daa229610385b41e Please try 3.2.14-1 or newer from sid or squeeze-backports, which contains this patch. You'll need to boot with "sky2.legacy_pme=1" appended to the kernel command line (or set that parameter when loading the sky2 module some other way, such as through modprobe.d) for the change to take affect. It would be interesting to hear the results with and without that setting. The only packages from outside squeeze that might be needed for this test are the kernel itself, linux-base, and initramfs-tools. Even better would be to test the patch against a squeeze kernel, following instructions from [1]. Patch attached. Please also attach "dmidecode" and "acpidump" output and full "dmesg" output from booting. Unfortunately the sky2 driver used in Debian is currently basically at the 2.6.35 level. We should probably work on getting hardware support and fixes up to 3.0.y. Hope that helps, Jonathan [1] http://kernel-handbook.alioth.debian.org/ch-common-tasks.html#s4.2.2 or the corresponding page from the debian-kernel-handbook package
From: stephen hemminger <shemmin...@vyatta.com> Date: Wed, 21 Mar 2012 05:32:05 +0000 Subject: sky2: override for PCI legacy power management [ Upstream commit 5676cc7bfe1e388e87843f71daa229610385b41e ] Some BIOS's don't setup power management correctly (what else is new) and don't allow use of PCI Express power control. Add a special exception module parameter to allow working around this issue. Based on slightly different patch by Knut Petersen. Reported-by: Arkadiusz Miskiewicz <ar...@maven.pl> Signed-off-by: Stephen Hemminger <shemmin...@vyatta.com> Signed-off-by: David S. Miller <da...@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> Signed-off-by: Jonathan Nieder <jrnie...@gmail.com> --- drivers/net/sky2.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c index 9c7a89fba483..c4f82be9af89 100644 --- a/drivers/net/sky2.c +++ b/drivers/net/sky2.c @@ -96,6 +96,10 @@ static int disable_msi = 0; module_param(disable_msi, int, 0); MODULE_PARM_DESC(disable_msi, "Disable Message Signaled Interrupt (MSI)"); +static int legacy_pme = 0; +module_param(legacy_pme, int, 0); +MODULE_PARM_DESC(legacy_pme, "Legacy power management"); + static DEFINE_PCI_DEVICE_TABLE(sky2_id_table) = { { PCI_DEVICE(PCI_VENDOR_ID_SYSKONNECT, 0x9000) }, /* SK-9Sxx */ { PCI_DEVICE(PCI_VENDOR_ID_SYSKONNECT, 0x9E00) }, /* SK-9Exx */ @@ -796,6 +800,13 @@ static void sky2_wol_init(struct sky2_port *sky2) /* Disable PiG firmware */ sky2_write16(hw, B0_CTST, Y2_HW_WOL_OFF); + /* Needed by some broken BIOSes, use PCI rather than PCI-e for WOL */ + if (legacy_pme) { + u32 reg1 = sky2_pci_read32(hw, PCI_DEV_REG1); + reg1 |= PCI_Y2_PME_LEGACY; + sky2_pci_write32(hw, PCI_DEV_REG1, reg1); + } + /* block receiver */ sky2_write8(hw, SK_REG(port, RX_GMF_CTRL_T), GMF_RST_SET); } -- 1.7.10.1