linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* WOL with 3c59x and 2.4.6-pre6 breaks WOL
@ 2001-06-29 14:04 Tobias Ringstrom
  2001-07-02 15:44 ` Andrew Morton
  0 siblings, 1 reply; 3+ messages in thread
From: Tobias Ringstrom @ 2001-06-29 14:04 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Kernel Mailing List

[-- Attachment #1: Type: TEXT/PLAIN, Size: 384 bytes --]

I just tried 2.4.6-pre6 this morning, and found out that when I enable
WOL (using enable_wol=1), my 3c905c-tx does not work at all any more.
It worked just fine with 2.4.5.  Without enable_wol=1, I have no problems.

It is my guess that this is very easy to reproduce, but if not, please ask
me for more details.  I'm attaching the dmesg output.  I'll be gone until
monday.

/Tobias


[-- Attachment #2: Type: TEXT/PLAIN, Size: 15017 bytes --]

Linux version 2.4.6-pre6 (root@igor.prodako.se) (gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-85)) #2 Thu Jun 28 17:45:38 CEST 2001
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009e800 (usable)
 BIOS-e820: 000000000009e800 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 000000000ffec000 (usable)
 BIOS-e820: 000000000ffec000 - 000000000ffef000 (ACPI data)
 BIOS-e820: 000000000ffef000 - 000000000ffff000 (reserved)
 BIOS-e820: 000000000ffff000 - 0000000010000000 (ACPI NVS)
 BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)
On node 0 totalpages: 65516
zone(0): 4096 pages.
zone(1): 61420 pages.
zone(2): 0 pages.
Kernel command line: BOOT_IMAGE=linux ro root=2103 BOOT_FILE=/boot/vmlinuz hdc=ide-scsi 1
ide_setup: hdc=ide-scsi
Initializing CPU#0
Detected 1009.014 MHz processor.
Console: colour VGA+ 80x25
Calibrating delay loop... 2011.95 BogoMIPS
Memory: 255060k/262064k available (1329k kernel code, 6612k reserved, 454k data, 220k init, 0k highmem)
Dentry-cache hash table entries: 32768 (order: 6, 262144 bytes)
Inode-cache hash table entries: 16384 (order: 5, 131072 bytes)
Mount-cache hash table entries: 4096 (order: 3, 32768 bytes)
Buffer-cache hash table entries: 16384 (order: 4, 65536 bytes)
Page-cache hash table entries: 65536 (order: 6, 262144 bytes)
CPU: Before vendor init, caps: 0183f9ff c1c7f9ff 00000000, vendor = 2
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 256K (64 bytes/line)
CPU: After vendor init, caps: 0183f9ff c1c7f9ff 00000000 00000000
CPU:     After generic, caps: 0183f9ff c1c7f9ff 00000000 00000000
CPU:             Common caps: 0183f9ff c1c7f9ff 00000000 00000000
CPU: AMD Athlon(tm) Processor stepping 02
Enabling fast FPU save and restore... done.
Checking 'hlt' instruction... OK.
POSIX conformance testing by UNIFIX
mtrr: v1.40 (20010327) Richard Gooch (rgooch@atnf.csiro.au)
mtrr: detected mtrr type: Intel
PCI: PCI BIOS revision 2.10 entry at 0xf1150, last bus=1
PCI: Using configuration type 1
PCI: Probing PCI hardware
Unknown bridge resource 0: assuming transparent
PCI: Using IRQ router VIA [1106/0686] at 00:04.0
PCI: Found IRQ 9 for device 00:09.0
PCI: Sharing IRQ 9 with 00:04.2
PCI: Sharing IRQ 9 with 00:04.3
PCI: Sharing IRQ 9 with 00:0d.0
Found VT82C686A, not applying VIA latency patch.
isapnp: Scanning for PnP cards...
isapnp: No Plug & Play device found
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
apm: BIOS version 1.2 Flags 0x03 (Driver version 1.14)
Starting kswapd v1.8
parport0: PC-style at 0x378 [PCSPP(,...)]
parport_pc: Via 686A parallel port: io=0x378
pty: 256 Unix98 ptys configured
Serial driver version 5.05a (2001-03-20) with MANY_PORTS SHARE_IRQ SERIAL_PCI ISAPNP enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS01 at 0x02f8 (irq = 3) is a 16550A
Real Time Clock Driver v1.10d
ppdev: user-space parallel port driver
block: queued sectors max/low 169437kB/56479kB, 512 slots per queue
Uniform Multi-Platform E-IDE driver Revision: 6.31
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
VP_IDE: IDE controller on PCI bus 00 dev 21
VP_IDE: chipset revision 16
VP_IDE: not 100% native mode: will probe irqs later
VP_IDE: VIA vt82c686a (rev 22) IDE UDMA66 controller on pci00:04.1
    ide0: BM-DMA at 0xd800-0xd807, BIOS settings: hda:DMA, hdb:pio
    ide1: BM-DMA at 0xd808-0xd80f, BIOS settings: hdc:DMA, hdd:pio
PDC20265: IDE controller on PCI bus 00 dev 88
PCI: Found IRQ 10 for device 00:11.0
PDC20265: chipset revision 2
PDC20265: not 100% native mode: will probe irqs later
PDC20265: (U)DMA Burst Bit ENABLED Primary PCI Mode Secondary PCI Mode.
    ide2: BM-DMA at 0x7800-0x7807, BIOS settings: hde:DMA, hdf:DMA
    ide3: BM-DMA at 0x7808-0x780f, BIOS settings: hdg:pio, hdh:DMA
hda: HITACHI DVD-ROM GD-7500, ATAPI CD/DVD-ROM drive
hdc: PLEXTOR CD-R PX-W1210A, ATAPI CD/DVD-ROM drive
hde: IBM-DTLA-307060, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
ide2 at 0x9000-0x9007,0x8802 on irq 10
hde: 120103200 sectors (61493 MB) w/1916KiB Cache, CHS=119150/16/63, UDMA(100)
hda: ATAPI 40X DVD-ROM drive, 512kB Cache, UDMA(33)
Uniform CD-ROM driver Revision: 3.12
Partition check:
 hde: [PTBL] [7476/255/63] hde1 hde2 hde3
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
loop: loaded (max 8 devices)
PPP generic driver version 2.4.1
PPP Deflate Compression module registered
SCSI subsystem driver Revision: 1.00
scsi0 : SCSI host adapter emulation for IDE ATAPI devices
  Vendor: PLEXTOR   Model: CD-R   PX-W1210A  Rev: 1.08
  Type:   CD-ROM                             ANSI SCSI revision: 02
Detected scsi CD-ROM sr0 at scsi0, channel 0, id 0, lun 0
sr0: scsi3-mmc drive: 32x/32x writer cd/rw xa/form2 cdda tray
Creative EMU10K1 PCI Audio Driver, version 0.7, 17:36:57 Jun 28 2001
PCI: Enabling device 00:09.0 (0004 -> 0005)
PCI: Found IRQ 9 for device 00:09.0
PCI: Sharing IRQ 9 with 00:04.2
PCI: Sharing IRQ 9 with 00:04.3
PCI: Sharing IRQ 9 with 00:0d.0
emu10k1: EMU10K1 rev 8 model 0x8027 found, IO at 0xa400-0xa41f, IRQ 9
usb.c: registered new driver usbdevfs
usb.c: registered new driver hub
usb-uhci.c: $Revision: 1.259 $ time 17:37:11 Jun 28 2001
usb-uhci.c: High bandwidth mode enabled
PCI: Found IRQ 9 for device 00:04.2
PCI: Sharing IRQ 9 with 00:04.3
PCI: Sharing IRQ 9 with 00:09.0
PCI: Sharing IRQ 9 with 00:0d.0
usb-uhci.c: USB UHCI at I/O 0xd400, IRQ 9
usb-uhci.c: Detected 2 ports
usb.c: new USB bus registered, assigned bus number 1
hub.c: USB hub found
hub.c: 2 ports detected
PCI: Found IRQ 9 for device 00:04.3
PCI: Sharing IRQ 9 with 00:04.2
PCI: Sharing IRQ 9 with 00:09.0
PCI: Sharing IRQ 9 with 00:0d.0
usb-uhci.c: USB UHCI at I/O 0xd000, IRQ 9
usb-uhci.c: Detected 2 ports
hub.c: USB new device connect on bus1/2, assigned device number 2
usb.c: new USB bus registered, assigned bus number 2
hub.c: USB hub found
hub.c: 4 ports detected
hub.c: USB hub found
hub.c: 2 ports detected
usb-uhci.c: v1.251:USB Universal Host Controller Interface driver
usb.c: registered new driver hid
hid.c: v1.16:USB HID support drivers
mice: PS/2 mouse device common for all mice
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 2048 buckets, 16Kbytes
TCP: Hash tables configured (established 16384 bind 16384)
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 220k freed
hub.c: USB new device connect on bus2/2, assigned device number 2
hub.c: USB hub found
hub.c: 4 ports detected
Adding Swap: 208836k swap-space (priority -1)
PCI: Enabling device 00:0a.0 (0014 -> 0017)
PCI: Assigned IRQ 5 for device 00:0a.0
3c59x.c:LK1.1.15 6 June 2001  Donald Becker and others. http://www.scyld.com/network/vortex.html
See Documentation/networking/vortex.txt
00:0a.0: 3Com PCI 3c905C Tornado at 0x9800,  00:01:02:dc:f6:c6, IRQ 5
  product code 464a rev 00.13 date 10-09-00
Full duplex capable
  8K byte-wide RAM 5:3 Rx:Tx split, 100baseTX interface.
  Enabling bus-master transmits and whole-frame receives.
00:0a.0: scatter/gather enabled. h/w checksums enabled
eth0: using default media 100baseTX
eth0: command 0x5800 did not complete! Status=0xffff
eth0: command 0x2800 did not complete! Status=0xffff
eth0: command 0x3002 did not complete! Status=0xffff
eth0: command 0x3002 did not complete! Status=0xffff
eth0: command 0x3002 did not complete! Status=0xffff
eth0: command 0x3002 did not complete! Status=0xffff
eth0: command 0x3002 did not complete! Status=0xffff
eth0: command 0x3002 did not complete! Status=0xffff
eth0: command 0x3002 did not complete! Status=0xffff
eth0: command 0x3002 did not complete! Status=0xffff
eth0: command 0x3002 did not complete! Status=0xffff
eth0: command 0x3002 did not complete! Status=0xffff
eth0: command 0x3002 did not complete! Status=0xffff
eth0: command 0x3002 did not complete! Status=0xffff
eth0: command 0x3002 did not complete! Status=0xffff
eth0: command 0x3002 did not complete! Status=0xffff
eth0: command 0x3002 did not complete! Status=0xffff
eth0: command 0x3002 did not complete! Status=0xffff
NETDEV WATCHDOG: eth0: transmit timed out
eth0: transmit timed out, tx_status ff status ffff.
  diagnostics: net ffff media ffff dma ffffffff.
eth0: Transmitter encountered 16 collisions -- network cable problem?
eth0: Interrupt posted but not delivered -- IRQ blocked by another device?
  Flags; bus-master 1, dirty 0(0) current 16(0)
  Transmit list ffffffff vs. cf972200.
eth0: command 0x3002 did not complete! Status=0xffff
  0: @cf972200  length 8000002a status 0000002a
  1: @cf972240  length 8000002a status 0000002a
  2: @cf972280  length 8000002a status 0000002a
  3: @cf9722c0  length 8000002a status 0000002a
  4: @cf972300  length 8000002a status 0000002a
  5: @cf972340  length 8000002a status 0000002a
  6: @cf972380  length 8000002a status 0000002a
  7: @cf9723c0  length 8000002a status 0000002a
  8: @cf972400  length 8000002a status 0000002a
  9: @cf972440  length 8000002a status 0000002a
  10: @cf972480  length 8000002a status 0000002a
  11: @cf9724c0  length 8000002a status 0000002a
  12: @cf972500  length 8000002a status 0000002a
  13: @cf972540  length 8000002a status 0000002a
  14: @cf972580  length 8000002a status 8000002a
  15: @cf9725c0  length 8000002a status 8000002a
eth0: command 0x5800 did not complete! Status=0xffff
eth0: Resetting the Tx ring pointer.
NETDEV WATCHDOG: eth0: transmit timed out
eth0: transmit timed out, tx_status ff status ffff.
  diagnostics: net ffff media ffff dma ffffffff.
eth0: Transmitter encountered 16 collisions -- network cable problem?
eth0: Interrupt posted but not delivered -- IRQ blocked by another device?
  Flags; bus-master 1, dirty 0(0) current 16(0)
  Transmit list ffffffff vs. cf972200.
eth0: command 0x3002 did not complete! Status=0xffff
  0: @cf972200  length 8000002a status 0000002a
  1: @cf972240  length 8000002a status 0000002a
  2: @cf972280  length 8000002a status 0000002a
  3: @cf9722c0  length 8000002a status 0000002a
  4: @cf972300  length 8000002a status 0000002a
  5: @cf972340  length 8000002a status 0000002a
  6: @cf972380  length 8000002a status 0000002a
  7: @cf9723c0  length 8000002a status 0000002a
  8: @cf972400  length 8000002a status 0000002a
  9: @cf972440  length 8000002a status 0000002a
  10: @cf972480  length 8000002a status 0000002a
  11: @cf9724c0  length 8000002a status 0000002a
  12: @cf972500  length 8000002a status 0000002a
  13: @cf972540  length 8000002a status 0000002a
  14: @cf972580  length 8000002a status 8000002a
  15: @cf9725c0  length 8000002a status 8000002a
eth0: command 0x5800 did not complete! Status=0xffff
eth0: Resetting the Tx ring pointer.
NETDEV WATCHDOG: eth0: transmit timed out
eth0: transmit timed out, tx_status ff status ffff.
  diagnostics: net ffff media ffff dma ffffffff.
eth0: Transmitter encountered 16 collisions -- network cable problem?
eth0: Interrupt posted but not delivered -- IRQ blocked by another device?
  Flags; bus-master 1, dirty 0(0) current 16(0)
  Transmit list ffffffff vs. cf972200.
eth0: command 0x3002 did not complete! Status=0xffff
  0: @cf972200  length 8000002a status 0000002a
  1: @cf972240  length 8000002a status 0000002a
  2: @cf972280  length 8000002a status 0000002a
  3: @cf9722c0  length 8000002a status 0000002a
  4: @cf972300  length 8000002a status 0000002a
  5: @cf972340  length 8000002a status 0000002a
  6: @cf972380  length 8000002a status 0000002a
  7: @cf9723c0  length 8000002a status 0000002a
  8: @cf972400  length 8000002a status 0000002a
  9: @cf972440  length 8000002a status 0000002a
  10: @cf972480  length 8000002a status 0000002a
  11: @cf9724c0  length 8000002a status 0000002a
  12: @cf972500  length 8000002a status 0000002a
  13: @cf972540  length 8000002a status 0000002a
  14: @cf972580  length 8000002a status 8000002a
  15: @cf9725c0  length 8000002a status 8000002a
eth0: command 0x5800 did not complete! Status=0xffff
eth0: Resetting the Tx ring pointer.
NETDEV WATCHDOG: eth0: transmit timed out
eth0: transmit timed out, tx_status ff status ffff.
  diagnostics: net ffff media ffff dma ffffffff.
eth0: Transmitter encountered 16 collisions -- network cable problem?
eth0: Interrupt posted but not delivered -- IRQ blocked by another device?
  Flags; bus-master 1, dirty 0(0) current 16(0)
  Transmit list ffffffff vs. cf972200.
eth0: command 0x3002 did not complete! Status=0xffff
  0: @cf972200  length 8000002a status 0000002a
  1: @cf972240  length 8000002a status 0000002a
  2: @cf972280  length 8000002a status 0000002a
  3: @cf9722c0  length 8000002a status 0000002a
  4: @cf972300  length 8000002a status 0000002a
  5: @cf972340  length 8000002a status 0000002a
  6: @cf972380  length 8000002a status 0000002a
  7: @cf9723c0  length 8000002a status 0000002a
  8: @cf972400  length 8000002a status 0000002a
  9: @cf972440  length 8000002a status 0000002a
  10: @cf972480  length 8000002a status 0000002a
  11: @cf9724c0  length 8000002a status 0000002a
  12: @cf972500  length 8000002a status 0000002a
  13: @cf972540  length 8000002a status 0000002a
  14: @cf972580  length 8000002a status 8000002a
  15: @cf9725c0  length 8000002a status 8000002a
eth0: command 0x5800 did not complete! Status=0xffff
eth0: Resetting the Tx ring pointer.
NETDEV WATCHDOG: eth0: transmit timed out
eth0: transmit timed out, tx_status ff status ffff.
  diagnostics: net ffff media ffff dma ffffffff.
eth0: Transmitter encountered 16 collisions -- network cable problem?
eth0: Interrupt posted but not delivered -- IRQ blocked by another device?
  Flags; bus-master 1, dirty 0(0) current 16(0)
  Transmit list ffffffff vs. cf972200.
eth0: command 0x3002 did not complete! Status=0xffff
  0: @cf972200  length 8000002a status 0000002a
  1: @cf972240  length 8000002a status 0000002a
  2: @cf972280  length 8000002a status 0000002a
  3: @cf9722c0  length 8000002a status 0000002a
  4: @cf972300  length 8000002a status 0000002a
  5: @cf972340  length 8000002a status 0000002a
  6: @cf972380  length 8000002a status 0000002a
  7: @cf9723c0  length 8000002a status 0000002a
  8: @cf972400  length 8000002a status 0000002a
  9: @cf972440  length 8000002a status 0000002a
  10: @cf972480  length 8000002a status 0000002a
  11: @cf9724c0  length 8000002a status 0000002a
  12: @cf972500  length 8000002a status 0000002a
  13: @cf972540  length 8000002a status 0000002a
  14: @cf972580  length 8000002a status 8000002a
  15: @cf9725c0  length 8000002a status 8000002a
eth0: command 0x5800 did not complete! Status=0xffff
eth0: Resetting the Tx ring pointer.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: WOL with 3c59x and 2.4.6-pre6 breaks WOL
  2001-06-29 14:04 WOL with 3c59x and 2.4.6-pre6 breaks WOL Tobias Ringstrom
@ 2001-07-02 15:44 ` Andrew Morton
  2001-07-02 16:02   ` Jeff Garzik
  0 siblings, 1 reply; 3+ messages in thread
From: Andrew Morton @ 2001-07-02 15:44 UTC (permalink / raw)
  To: Tobias Ringstrom; +Cc: Kernel Mailing List

Tobias Ringstrom wrote:
> 
> I just tried 2.4.6-pre6 this morning, and found out that when I enable
> WOL (using enable_wol=1), my 3c905c-tx does not work at all any more.
> It worked just fine with 2.4.5.  Without enable_wol=1, I have no problems.
> 
> It is my guess that this is very easy to reproduce, but if not, please ask
> me for more details.  I'm attaching the dmesg output.  I'll be gone until
> monday.

Seems that the new PM code has broken the driver.  It
wasn't doing the right thing in the first place.

Please use 2.4.6-pre8 plus this patch, let me know.

--- linux-2.4.6-pre8/drivers/pci/pci.c	Sun Jul  1 16:11:25 2001
+++ linux-akpm/drivers/pci/pci.c	Tue Jul  3 01:28:35 2001
@@ -425,7 +425,7 @@ int pci_enable_wake(struct pci_dev *dev,
 
 	if (enable) value |= PCI_PM_CTRL_PME_STATUS;
 	else value &= ~PCI_PM_CTRL_PME_STATUS;
-
+	value |= PCI_PM_CTRL_PME_ENABLE;
 	pci_write_config_word(dev, pm + PCI_PM_CTRL, value);
 	
 	return 0;
--- linux-2.4.6-pre8/drivers/net/3c59x.c	Sun Jul  1 16:11:24 2001
+++ linux-akpm/drivers/net/3c59x.c	Tue Jul  3 01:29:08 2001
@@ -760,6 +760,7 @@ struct vortex_private {
 	u16 io_size;						/* Size of PCI region (for release_region) */
 	spinlock_t lock;					/* Serialise access to device & its vortex_private */
 	spinlock_t mdio_lock;				/* Serialise access to mdio hardware */
+	u32 power_state[16];
 };
 
 /* The action to take with a media selection timer tick.
@@ -1239,9 +1240,6 @@ static int __devinit vortex_probe1(struc
 		}
 	}
 
-	if (pdev && vp->enable_wol && (vp->capabilities & CapPwrMgmt))
-		acpi_set_WOL(dev);
-
 	if (vp->capabilities & CapBusMaster) {
 		vp->full_bus_master_tx = 1;
 		printk(KERN_INFO"  Enabling bus-master transmits and %s receives.\n",
@@ -1279,6 +1277,10 @@ 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) {
+		pci_save_state(vp->pdev, vp->power_state);
+		acpi_set_WOL(dev);
+	}
 	retval = register_netdev(dev);
 	if (retval == 0)
 		return 0;
@@ -1331,8 +1333,10 @@ vortex_up(struct net_device *dev)
 	unsigned int config;
 	int i;
 
-	if (vp->pdev && vp->enable_wol)			/* AKPM: test not needed? */
+	if (vp->pdev && vp->enable_wol) {
 		pci_set_power_state(vp->pdev, 0);	/* Go active */
+		pci_restore_state(vp->pdev, vp->power_state);
+	}
 
 	/* Before initializing select the active media port. */
 	EL3WINDOW(3);
@@ -1516,9 +1520,6 @@ vortex_open(struct net_device *dev)
 	int i;
 	int retval;
 
-	if (vp->pdev && vp->enable_wol)				/* AKPM: test not needed? */
-		pci_set_power_state(vp->pdev, 0);		/* Go active */
-
 	/* Use the now-standard shared IRQ implementation. */
 	if ((retval = request_irq(dev->irq, vp->full_bus_master_rx ?
 				&boomerang_interrupt : &vortex_interrupt, SA_SHIRQ, dev->name, dev))) {
@@ -2452,8 +2453,10 @@ vortex_down(struct net_device *dev)
 	if (vp->full_bus_master_tx)
 		outl(0, ioaddr + DownListPtr);
 
-	if (vp->pdev && vp->enable_wol && (vp->capabilities & CapPwrMgmt))
+	if (vp->pdev && vp->enable_wol) {
+		pci_save_state(vp->pdev, vp->power_state);
 		acpi_set_WOL(dev);
+	}
 }
 
 static int
@@ -2808,8 +2811,10 @@ static void acpi_set_WOL(struct net_devi
 	/* The RxFilter must accept the WOL frames. */
 	outw(SetRxFilter|RxStation|RxMulticast|RxBroadcast, ioaddr + EL3_CMD);
 	outw(RxEnable, ioaddr + EL3_CMD);
+
 	/* Change the power state to D3; RxEnable doesn't take effect. */
-	pci_set_power_state(vp->pdev, 0x8103);
+	pci_enable_wake(vp->pdev, 0, 1);
+	pci_set_power_state(vp->pdev, 3);
 }

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: WOL with 3c59x and 2.4.6-pre6 breaks WOL
  2001-07-02 15:44 ` Andrew Morton
@ 2001-07-02 16:02   ` Jeff Garzik
  0 siblings, 0 replies; 3+ messages in thread
From: Jeff Garzik @ 2001-07-02 16:02 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Tobias Ringstrom, Kernel Mailing List, mochel, Linus Torvalds

Andrew Morton wrote:
> --- linux-2.4.6-pre8/drivers/pci/pci.c  Sun Jul  1 16:11:25 2001
> +++ linux-akpm/drivers/pci/pci.c        Tue Jul  3 01:28:35 2001
> @@ -425,7 +425,7 @@ int pci_enable_wake(struct pci_dev *dev,
> 
>         if (enable) value |= PCI_PM_CTRL_PME_STATUS;
>         else value &= ~PCI_PM_CTRL_PME_STATUS;
> -
> +       value |= PCI_PM_CTRL_PME_ENABLE;
>         pci_write_config_word(dev, pm + PCI_PM_CTRL, value);
> 
>         return 0;

wrong but it seems you spotted a bug in the code -- set/clear _ENABLE
right above your change here.  maybe read and write _STATUS
unconditionally, for paranoia.

-- 
Jeff Garzik      | The LSB is a bunch of crap.
Building 1024    | E-mail for details.
MandrakeSoft     |

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2001-07-02 16:03 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-06-29 14:04 WOL with 3c59x and 2.4.6-pre6 breaks WOL Tobias Ringstrom
2001-07-02 15:44 ` Andrew Morton
2001-07-02 16:02   ` Jeff Garzik

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).