diff options
author | Eli Cohen <eli@mellanox.co.il> | 2007-08-13 17:57:03 +0300 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2007-08-13 08:47:44 -0700 |
commit | 947b2a8083a03e6fff448ce8928956015614855e (patch) | |
tree | a5dc653181c0029c11c2d45ac417c67a15573b21 | |
parent | 6958e827f187c9c5cd39af075567f74f02bf3dd1 (diff) | |
download | op-kernel-dev-947b2a8083a03e6fff448ce8928956015614855e.zip op-kernel-dev-947b2a8083a03e6fff448ce8928956015614855e.tar.gz |
mlx4_core: Wait 1 second after reset before accessing device
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>
-rw-r--r-- | drivers/net/mlx4/reset.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/mlx4/reset.c b/drivers/net/mlx4/reset.c index e4dfd4b..e199715 100644 --- a/drivers/net/mlx4/reset.c +++ b/drivers/net/mlx4/reset.c @@ -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) && |