Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1a1769f3 authored by Steffen Klassert's avatar Steffen Klassert Committed by Jeff Garzik
Browse files

WOL bugfix for 3c59x.c



Some NICs (3c905B) can not generate PME in power state PCI_D0, while others
like 3c905C can.  Call pci_enable_wake() with PCI_D3hot should give proper
WOL for 3c905B.

Signed-off-by: default avatarSteffen Klassert <klassert@mathematik.tu-chemnitz.de>
Tested-by: default avatarHarry Coin <hcoin@n4comm.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent d0cab896
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -3118,7 +3118,13 @@ static void acpi_set_WOL(struct net_device *dev)
		iowrite16(SetRxFilter|RxStation|RxMulticast|RxBroadcast, ioaddr + EL3_CMD);
		iowrite16(RxEnable, ioaddr + EL3_CMD);

		pci_enable_wake(VORTEX_PCI(vp), 0, 1);
		if (pci_enable_wake(VORTEX_PCI(vp), PCI_D3hot, 1)) {
			printk(KERN_INFO "%s: WOL not supported.\n",
					pci_name(VORTEX_PCI(vp)));

			vp->enable_wol = 0;
			return;
		}

		/* Change the power state to D3; RxEnable doesn't take effect. */
		pci_set_power_state(VORTEX_PCI(vp), PCI_D3hot);