Currently, all of the 3c59x power management code is disabled unless the `enable_wol' module parameter is provided. This was done because the PM support was added quite late in the 2.4 cycle. It was always intended that this conditionality be removed in 2.5. 25-akpm/Documentation/networking/vortex.txt | 13 ------------- 25-akpm/drivers/net/3c59x.c | 21 ++++----------------- 2 files changed, 4 insertions(+), 30 deletions(-) diff -puN drivers/net/3c59x.c~3c59x-pm-fix drivers/net/3c59x.c --- 25/drivers/net/3c59x.c~3c59x-pm-fix Wed Jul 16 09:32:24 2003 +++ 25-akpm/drivers/net/3c59x.c Wed Jul 16 09:34:08 2003 @@ -291,8 +291,6 @@ MODULE_PARM(global_full_duplex, "i"); MODULE_PARM(full_duplex, "1-" __MODULE_STRING(8) "i"); MODULE_PARM(hw_checksums, "1-" __MODULE_STRING(8) "i"); MODULE_PARM(flow_ctrl, "1-" __MODULE_STRING(8) "i"); -MODULE_PARM(global_enable_wol, "i"); -MODULE_PARM(enable_wol, "1-" __MODULE_STRING(8) "i"); MODULE_PARM(rx_copybreak, "i"); MODULE_PARM(max_interrupt_work, "i"); MODULE_PARM(compaq_ioaddr, "i"); @@ -306,8 +304,6 @@ MODULE_PARM_DESC(full_duplex, "3c59x ful MODULE_PARM_DESC(global_full_duplex, "3c59x: same as full_duplex, but applies to all NICs if options is unset"); MODULE_PARM_DESC(hw_checksums, "3c59x Hardware checksum checking by adapter(s) (0-1)"); MODULE_PARM_DESC(flow_ctrl, "3c59x 802.3x flow control usage (PAUSE only) (0-1)"); -MODULE_PARM_DESC(enable_wol, "3c59x: Turn on Wake-on-LAN for adapter(s) (0-1)"); -MODULE_PARM_DESC(global_enable_wol, "3c59x: same as enable_wol, but applies to all NICs if options is unset"); MODULE_PARM_DESC(rx_copybreak, "3c59x copy breakpoint for copy-only-tiny-frames"); MODULE_PARM_DESC(max_interrupt_work, "3c59x maximum events handled per interrupt"); MODULE_PARM_DESC(compaq_ioaddr, "3c59x PCI I/O base address (Compaq BIOS problem workaround)"); @@ -819,7 +815,6 @@ struct vortex_private { flow_ctrl:1, /* Use 802.3x flow control (PAUSE only) */ partner_flow_ctrl:1, /* Partner supports flow control */ has_nway:1, - enable_wol:1, /* Wake-on-LAN is enabled */ pm_state_valid:1, /* power_state[] has sane contents */ open:1, medialock:1, @@ -915,10 +910,8 @@ static int options[MAX_UNITS] = { -1, -1 static int full_duplex[MAX_UNITS] = {-1, -1, -1, -1, -1, -1, -1, -1}; static int hw_checksums[MAX_UNITS] = {-1, -1, -1, -1, -1, -1, -1, -1}; static int flow_ctrl[MAX_UNITS] = {-1, -1, -1, -1, -1, -1, -1, -1}; -static int enable_wol[MAX_UNITS] = {-1, -1, -1, -1, -1, -1, -1, -1}; static int global_options = -1; static int global_full_duplex = -1; -static int global_enable_wol = -1; /* #define dev_alloc_skb dev_alloc_skb_debug */ @@ -1138,8 +1131,6 @@ static int __devinit vortex_probe1(struc vortex_debug = 7; if (option & 0x4000) vortex_debug = 2; - if (option & 0x0400) - vp->enable_wol = 1; } print_info = (vortex_debug > 1); @@ -1227,16 +1218,12 @@ static int __devinit vortex_probe1(struc if (global_full_duplex > 0) vp->full_duplex = 1; - if (global_enable_wol > 0) - vp->enable_wol = 1; if (card_idx < MAX_UNITS) { if (full_duplex[card_idx] > 0) vp->full_duplex = 1; if (flow_ctrl[card_idx] > 0) vp->flow_ctrl = 1; - if (enable_wol[card_idx] > 0) - vp->enable_wol = 1; } vp->force_fd = vp->full_duplex; @@ -1463,7 +1450,7 @@ static int __devinit vortex_probe1(struc dev->set_multicast_list = set_rx_mode; dev->tx_timeout = vortex_tx_timeout; dev->watchdog_timeo = (watchdog * HZ) / 1000; - if (pdev && vp->enable_wol) { + if (pdev) { vp->pm_state_valid = 1; pci_save_state(VORTEX_PCI(vp), vp->power_state); acpi_set_WOL(dev); @@ -1520,7 +1507,7 @@ vortex_up(struct net_device *dev) unsigned int config; int i; - if (VORTEX_PCI(vp) && vp->enable_wol) { + if (VORTEX_PCI(vp)) { pci_set_power_state(VORTEX_PCI(vp), 0); /* Go active */ pci_restore_state(VORTEX_PCI(vp), vp->power_state); } @@ -2669,7 +2656,7 @@ vortex_down(struct net_device *dev) if (vp->full_bus_master_tx) outl(0, ioaddr + DownListPtr); - if (VORTEX_PCI(vp) && vp->enable_wol) { + if (VORTEX_PCI(vp)) { pci_save_state(VORTEX_PCI(vp), vp->power_state); acpi_set_WOL(dev); } @@ -3059,7 +3046,7 @@ static void __devexit vortex_remove_one /* Should really use issue_and_wait() here */ outw(TotalReset|0x14, dev->base_addr + EL3_CMD); - if (VORTEX_PCI(vp) && vp->enable_wol) { + if (VORTEX_PCI(vp)) { pci_set_power_state(VORTEX_PCI(vp), 0); /* Go active */ if (vp->pm_state_valid) pci_restore_state(VORTEX_PCI(vp), vp->power_state); diff -puN Documentation/networking/vortex.txt~3c59x-pm-fix Documentation/networking/vortex.txt --- 25/Documentation/networking/vortex.txt~3c59x-pm-fix Wed Jul 16 09:34:18 2003 +++ 25-akpm/Documentation/networking/vortex.txt Wed Jul 16 09:34:29 2003 @@ -216,19 +216,6 @@ watchdog=N to increase this value on LANs which have very high collision rates. The default value is 5000 (5.0 seconds). -enable_wol=N1,N2,N3,... - - Enable Wake-on-LAN support for the relevant interface. Donald - Becker's `ether-wake' application may be used to wake suspended - machines. - - Also enables the NIC's power management support. - -global_enable_wol=N - - Sets enable_wol mode for all 3c59x NICs in the machine. Entries in - the `enable_wol' array above will override any setting of this. - Media selection --------------- _