[PATCH] Flush MMIO writes in reset sequence
authorGrant Grundler <grundler@parisc-linux.org>
Fri, 8 Sep 2006 18:15:37 +0000 (11:15 -0700)
committerJeff Garzik <jeff@garzik.org>
Mon, 11 Sep 2006 13:05:37 +0000 (09:05 -0400)
The obvious safe registers to read is one from PCI config space.

Signed-off-by: Grant Grundler <grundler@parisc-linux.org>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
Signed-off-by: Valerie Henson <val_henson@linux.intel.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/net/tulip/tulip_core.c

index 2f181809bde24837e64c20dbb3ed29f43a897cb0..6a7ca8695ff2a81ca130b50be760a571710f9c51 100644 (file)
@@ -295,12 +295,14 @@ static void tulip_up(struct net_device *dev)
 
        /* Reset the chip, holding bit 0 set at least 50 PCI cycles. */
        iowrite32(0x00000001, ioaddr + CSR0);
+       pci_read_config_dword(tp->pdev, PCI_COMMAND, &i);  /* flush write */
        udelay(100);
 
        /* Deassert reset.
           Wait the specified 50 PCI cycles after a reset by initializing
           Tx and Rx queues and the address filter list. */
        iowrite32(tp->csr0, ioaddr + CSR0);
+       pci_read_config_dword(tp->pdev, PCI_COMMAND, &i);  /* flush write */
        udelay(100);
 
        if (tulip_debug > 1)