tulip: explicity set to D0 power state during init
authorSteven Walter <stevenrwalter@gmail.com>
Mon, 31 May 2010 17:11:53 +0000 (17:11 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 1 Jun 2010 07:15:50 +0000 (00:15 -0700)
During the first suspend the chip would refuse to enter D3.  Subsequent
suspends worked okay.  During resume the chip is commanded into D0.
Doing so during initialization fixes the initial suspend.

Signed-off-by: Steven Walter <stevenrwalter@gmail.com>
Signed-off-by: Grant Grundler <grundler@parisc-linux.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/tulip/tulip_core.c

index 254643ed945e60e068336dc7d8218fada93798b3..bd3b41daa89299dee17922299d761410948db8e7 100644 (file)
@@ -1381,6 +1381,13 @@ static int __devinit tulip_init_one (struct pci_dev *pdev,
                return i;
        }
 
+       /* The chip will fail to enter a low-power state later unless
+        * first explicitly commanded into D0 */
+       if (pci_set_power_state(pdev, PCI_D0)) {
+               printk (KERN_NOTICE PFX
+                       "Failed to set power state to D0\n");
+       }
+
        irq = pdev->irq;
 
        /* alloc_etherdev ensures aligned and zeroed private structures */