diff options
author | Yuval Mintz <yuvalmin@broadcom.com> | 2012-08-09 00:37:26 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-08-09 19:19:34 -0400 |
commit | 2070ffa2c8d4dc17cd8fc4b30d2710bcde27b051 (patch) | |
tree | c4ad7b4e4ed9aa197a2452b61582283675340d30 /drivers | |
parent | 8eee694c3e667e6f0856d9c8525208058f9d42bf (diff) |
bnx2x: Fix recovery flow cleanup during probe
During probe, every function probed clears the recovery registers from
all functions on its path - thus signaling that given a future recovery
event, there will be no need to wait for those functions.
This is a flawed behaviour - each function should only be responsible
for its own bit.
Since this registers are handled during the load/unload routines,
this cleanup is removed altogether.
Signed-off-by: Yuval Mintz <yuvalmin@broadcom.com>
Signed-off-by: Ariel Elior <ariele@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 17 |
1 files changed, 0 insertions, 17 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c index 5384a6dd155f..02b5a343b195 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | |||
@@ -4041,20 +4041,6 @@ static bool bnx2x_get_load_status(struct bnx2x *bp, int engine) | |||
4041 | return val != 0; | 4041 | return val != 0; |
4042 | } | 4042 | } |
4043 | 4043 | ||
4044 | /* | ||
4045 | * Reset the load status for the current engine. | ||
4046 | */ | ||
4047 | static void bnx2x_clear_load_status(struct bnx2x *bp) | ||
4048 | { | ||
4049 | u32 val; | ||
4050 | u32 mask = (BP_PATH(bp) ? BNX2X_PATH1_LOAD_CNT_MASK : | ||
4051 | BNX2X_PATH0_LOAD_CNT_MASK); | ||
4052 | bnx2x_acquire_hw_lock(bp, HW_LOCK_RESOURCE_RECOVERY_REG); | ||
4053 | val = REG_RD(bp, BNX2X_RECOVERY_GLOB_REG); | ||
4054 | REG_WR(bp, BNX2X_RECOVERY_GLOB_REG, val & (~mask)); | ||
4055 | bnx2x_release_hw_lock(bp, HW_LOCK_RESOURCE_RECOVERY_REG); | ||
4056 | } | ||
4057 | |||
4058 | static void _print_next_block(int idx, const char *blk) | 4044 | static void _print_next_block(int idx, const char *blk) |
4059 | { | 4045 | { |
4060 | pr_cont("%s%s", idx ? ", " : "", blk); | 4046 | pr_cont("%s%s", idx ? ", " : "", blk); |
@@ -11428,9 +11414,6 @@ static int __devinit bnx2x_init_dev(struct pci_dev *pdev, | |||
11428 | if (!chip_is_e1x) | 11414 | if (!chip_is_e1x) |
11429 | REG_WR(bp, PGLUE_B_REG_INTERNAL_PFID_ENABLE_TARGET_READ, 1); | 11415 | REG_WR(bp, PGLUE_B_REG_INTERNAL_PFID_ENABLE_TARGET_READ, 1); |
11430 | 11416 | ||
11431 | /* Reset the load counter */ | ||
11432 | bnx2x_clear_load_status(bp); | ||
11433 | |||
11434 | dev->watchdog_timeo = TX_TIMEOUT; | 11417 | dev->watchdog_timeo = TX_TIMEOUT; |
11435 | 11418 | ||
11436 | dev->netdev_ops = &bnx2x_netdev_ops; | 11419 | dev->netdev_ops = &bnx2x_netdev_ops; |