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);