]> git.hungrycats.org Git - linux/commitdiff
[PATCH] via-rhine: Really call rhine_power_init()
authorRoger Luethi <rl@hellgate.ch>
Tue, 10 Aug 2004 02:57:16 +0000 (19:57 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Tue, 10 Aug 2004 02:57:16 +0000 (19:57 -0700)
Without this patch, mainline via-rhine cannot wake the chip if some other
driver puts it to D3. The problem has hit quite a few people already.

This is a fix for the heisenbug with via-rhine refusing to work
sometimes. Patch "[9/9] Restructure reset code" contained a change made
necessary by patch [8/9]. Mainline merged [8/9] for 2.6.8 and is still
missing the fix, while -mm got it with [9/9].

Jesper Juhl provided crucial test data when no one else was able to
reproduce the symptoms.

Signed-off-by: Roger Luethi <rl@hellgate.ch>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/net/via-rhine.c

index 386f083f8455d0ed08909005d110d3aaf9228f6e..6c92063013595ab5a5febec9c8a50d2e6cbff579 100644 (file)
@@ -748,6 +748,8 @@ static int __devinit rhine_init_one(struct pci_dev *pdev,
        }
 #endif /* USE_MMIO */
        dev->base_addr = ioaddr;
+       rp = netdev_priv(dev);
+       rp->quirks = quirks;
 
        rhine_power_init(dev);
 
@@ -792,10 +794,8 @@ static int __devinit rhine_init_one(struct pci_dev *pdev,
 
        dev->irq = pdev->irq;
 
-       rp = netdev_priv(dev);
        spin_lock_init(&rp->lock);
        rp->pdev = pdev;
-       rp->quirks = quirks;
        rp->mii_if.dev = dev;
        rp->mii_if.mdio_read = mdio_read;
        rp->mii_if.mdio_write = mdio_write;