mlx4_core: Wait 1 second after reset before accessing device
authorEli Cohen <eli@mellanox.co.il>
Mon, 13 Aug 2007 14:57:03 +0000 (17:57 +0300)
committerRoland Dreier <rolandd@cisco.com>
Mon, 13 Aug 2007 15:47:44 +0000 (08:47 -0700)
Put a 1000 msec delay after resetting the device before attempting to
do config cycles on it.  Not waiting causes system hangs on some
chipsets, e.g. Intel E7520, when the driver is loaded.

Signed-off-by: Eli Cohen <eli@mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/net/mlx4/reset.c

index e4dfd4b11a4a2f41616a7aecd199f91227e84e61..e199715fabd0947d6014a9b068bd583aa3745eb6 100644 (file)
@@ -119,6 +119,9 @@ int mlx4_reset(struct mlx4_dev *dev)
        writel(MLX4_RESET_VALUE, reset + MLX4_RESET_OFFSET);
        iounmap(reset);
 
+       /* Docs say to wait one second before accessing device */
+       msleep(1000);
+
        end = jiffies + MLX4_RESET_TIMEOUT_JIFFIES;
        do {
                if (!pci_read_config_word(dev->pdev, PCI_VENDOR_ID, &vendor) &&