The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
diff -u -r1.662 -r1.664
--- ipw2100_main.c	24 Mar 2004 17:47:34 -0000	1.662
+++ ipw2100_main.c	24 Mar 2004 22:42:51 -0000	1.664
@@ -5616,10 +5616,18 @@
 {
 	struct net_device *dev = pci_get_drvdata(pdev);
 	struct ipw2100_priv *priv = dev->priv;
+	u32 val;
 	
 	pci_set_power_state(pdev, 0);
 	pci_restore_state(pdev, priv->pm_state);
 	
+        /* Suspend/Resume resets the PCI configuration space, so we have to
+	 * re-disable the RETRY_TIMEOUT register (0x41) to keep 
+	 * PCI Tx retries from interfering with C3 CPU state */
+	pci_read_config_dword(pdev, 0x40, &val); 
+	if ((val & 0x0000ff00) != 0) 
+		pci_write_config_dword(pdev, 0x40, val & 0xffff00ff);
+
 	if (netif_running(dev))
 		ipw2100_up(priv);