diff options
author | Sathya Perla <sathya.perla@emulex.com> | 2011-07-19 15:52:33 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-07-22 00:32:54 -0400 |
commit | 2dc1deb659d1fc29aaafc2c0b987547d6b383602 (patch) | |
tree | e1e7c3f06d4cf32d5b1903b649846bcea3e69fba /drivers/net/benet | |
parent | d9be4f7a6f5a8da3133b832eca41c3591420b1ca (diff) |
be2net: request native mode each time the card is reset
Currently be3-native mode is requested only in probe(). It must be requested, each time the card is reset either after an EEH error or after
sleep/hibernation.
Also, the be_cmd_check_native_mode() is better named be_cmd_req_native_mode()
Signed-off-by: Sathya Perla <sathya.perla@emulex.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/benet')
-rw-r--r-- | drivers/net/benet/be_cmds.c | 2 | ||||
-rw-r--r-- | drivers/net/benet/be_cmds.h | 2 | ||||
-rw-r--r-- | drivers/net/benet/be_main.c | 6 |
3 files changed, 6 insertions, 4 deletions
diff --git a/drivers/net/benet/be_cmds.c b/drivers/net/benet/be_cmds.c index f520a5c75032..054fa67bc4e3 100644 --- a/drivers/net/benet/be_cmds.c +++ b/drivers/net/benet/be_cmds.c | |||
@@ -2390,7 +2390,7 @@ err: | |||
2390 | } | 2390 | } |
2391 | 2391 | ||
2392 | /* Uses mbox */ | 2392 | /* Uses mbox */ |
2393 | int be_cmd_check_native_mode(struct be_adapter *adapter) | 2393 | int be_cmd_req_native_mode(struct be_adapter *adapter) |
2394 | { | 2394 | { |
2395 | struct be_mcc_wrb *wrb; | 2395 | struct be_mcc_wrb *wrb; |
2396 | struct be_cmd_req_set_func_cap *req; | 2396 | struct be_cmd_req_set_func_cap *req; |
diff --git a/drivers/net/benet/be_cmds.h b/drivers/net/benet/be_cmds.h index 1151df6b0020..8e4d48824fe9 100644 --- a/drivers/net/benet/be_cmds.h +++ b/drivers/net/benet/be_cmds.h | |||
@@ -1545,7 +1545,7 @@ extern int be_cmd_set_qos(struct be_adapter *adapter, u32 bps, u32 domain); | |||
1545 | extern void be_detect_dump_ue(struct be_adapter *adapter); | 1545 | extern void be_detect_dump_ue(struct be_adapter *adapter); |
1546 | extern int be_cmd_get_die_temperature(struct be_adapter *adapter); | 1546 | extern int be_cmd_get_die_temperature(struct be_adapter *adapter); |
1547 | extern int be_cmd_get_cntl_attributes(struct be_adapter *adapter); | 1547 | extern int be_cmd_get_cntl_attributes(struct be_adapter *adapter); |
1548 | extern int be_cmd_check_native_mode(struct be_adapter *adapter); | 1548 | extern int be_cmd_req_native_mode(struct be_adapter *adapter); |
1549 | extern int be_cmd_get_reg_len(struct be_adapter *adapter, u32 *log_size); | 1549 | extern int be_cmd_get_reg_len(struct be_adapter *adapter, u32 *log_size); |
1550 | extern void be_cmd_get_regs(struct be_adapter *adapter, u32 buf_len, void *buf); | 1550 | extern void be_cmd_get_regs(struct be_adapter *adapter, u32 buf_len, void *buf); |
1551 | 1551 | ||
diff --git a/drivers/net/benet/be_main.c b/drivers/net/benet/be_main.c index ae2d2622a18e..c411bb1845fd 100644 --- a/drivers/net/benet/be_main.c +++ b/drivers/net/benet/be_main.c | |||
@@ -2511,6 +2511,8 @@ static int be_setup(struct be_adapter *adapter) | |||
2511 | int status; | 2511 | int status; |
2512 | u8 mac[ETH_ALEN]; | 2512 | u8 mac[ETH_ALEN]; |
2513 | 2513 | ||
2514 | be_cmd_req_native_mode(adapter); | ||
2515 | |||
2514 | cap_flags = en_flags = BE_IF_FLAGS_UNTAGGED | | 2516 | cap_flags = en_flags = BE_IF_FLAGS_UNTAGGED | |
2515 | BE_IF_FLAGS_BROADCAST | | 2517 | BE_IF_FLAGS_BROADCAST | |
2516 | BE_IF_FLAGS_MULTICAST; | 2518 | BE_IF_FLAGS_MULTICAST; |
@@ -2618,6 +2620,8 @@ static int be_clear(struct be_adapter *adapter) | |||
2618 | 2620 | ||
2619 | be_cmd_if_destroy(adapter, adapter->if_handle, 0); | 2621 | be_cmd_if_destroy(adapter, adapter->if_handle, 0); |
2620 | 2622 | ||
2623 | adapter->be3_native = 0; | ||
2624 | |||
2621 | /* tell fw we're done with firing cmds */ | 2625 | /* tell fw we're done with firing cmds */ |
2622 | be_cmd_fw_clean(adapter); | 2626 | be_cmd_fw_clean(adapter); |
2623 | return 0; | 2627 | return 0; |
@@ -3215,8 +3219,6 @@ static int be_get_config(struct be_adapter *adapter) | |||
3215 | if (status) | 3219 | if (status) |
3216 | return status; | 3220 | return status; |
3217 | 3221 | ||
3218 | be_cmd_check_native_mode(adapter); | ||
3219 | |||
3220 | if ((num_vfs && adapter->sriov_enabled) || | 3222 | if ((num_vfs && adapter->sriov_enabled) || |
3221 | (adapter->function_mode & 0x400) || | 3223 | (adapter->function_mode & 0x400) || |
3222 | lancer_chip(adapter) || !be_physfn(adapter)) { | 3224 | lancer_chip(adapter) || !be_physfn(adapter)) { |