Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2dc1deb6 authored by Sathya Perla's avatar Sathya Perla Committed by David S. Miller
Browse files

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: default avatarSathya Perla <sathya.perla@emulex.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent d9be4f7a
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -2390,7 +2390,7 @@ int be_cmd_get_cntl_attributes(struct be_adapter *adapter)
}
}


/* Uses mbox */
/* Uses mbox */
int be_cmd_check_native_mode(struct be_adapter *adapter)
int be_cmd_req_native_mode(struct be_adapter *adapter)
{
{
	struct be_mcc_wrb *wrb;
	struct be_mcc_wrb *wrb;
	struct be_cmd_req_set_func_cap *req;
	struct be_cmd_req_set_func_cap *req;
+1 −1
Original line number Original line Diff line number Diff line
@@ -1545,7 +1545,7 @@ extern int be_cmd_set_qos(struct be_adapter *adapter, u32 bps, u32 domain);
extern void be_detect_dump_ue(struct be_adapter *adapter);
extern void be_detect_dump_ue(struct be_adapter *adapter);
extern int be_cmd_get_die_temperature(struct be_adapter *adapter);
extern int be_cmd_get_die_temperature(struct be_adapter *adapter);
extern int be_cmd_get_cntl_attributes(struct be_adapter *adapter);
extern int be_cmd_get_cntl_attributes(struct be_adapter *adapter);
extern int be_cmd_check_native_mode(struct be_adapter *adapter);
extern int be_cmd_req_native_mode(struct be_adapter *adapter);
extern int be_cmd_get_reg_len(struct be_adapter *adapter, u32 *log_size);
extern int be_cmd_get_reg_len(struct be_adapter *adapter, u32 *log_size);
extern void be_cmd_get_regs(struct be_adapter *adapter, u32 buf_len, void *buf);
extern void be_cmd_get_regs(struct be_adapter *adapter, u32 buf_len, void *buf);
+4 −2
Original line number Original line Diff line number Diff line
@@ -2511,6 +2511,8 @@ static int be_setup(struct be_adapter *adapter)
	int status;
	int status;
	u8 mac[ETH_ALEN];
	u8 mac[ETH_ALEN];


	be_cmd_req_native_mode(adapter);

	cap_flags = en_flags = BE_IF_FLAGS_UNTAGGED |
	cap_flags = en_flags = BE_IF_FLAGS_UNTAGGED |
				BE_IF_FLAGS_BROADCAST |
				BE_IF_FLAGS_BROADCAST |
				BE_IF_FLAGS_MULTICAST;
				BE_IF_FLAGS_MULTICAST;
@@ -2618,6 +2620,8 @@ static int be_clear(struct be_adapter *adapter)


	be_cmd_if_destroy(adapter, adapter->if_handle,  0);
	be_cmd_if_destroy(adapter, adapter->if_handle,  0);


	adapter->be3_native = 0;

	/* tell fw we're done with firing cmds */
	/* tell fw we're done with firing cmds */
	be_cmd_fw_clean(adapter);
	be_cmd_fw_clean(adapter);
	return 0;
	return 0;
@@ -3215,8 +3219,6 @@ static int be_get_config(struct be_adapter *adapter)
	if (status)
	if (status)
		return status;
		return status;


	be_cmd_check_native_mode(adapter);

	if ((num_vfs && adapter->sriov_enabled) ||
	if ((num_vfs && adapter->sriov_enabled) ||
		(adapter->function_mode & 0x400) ||
		(adapter->function_mode & 0x400) ||
		lancer_chip(adapter) || !be_physfn(adapter)) {
		lancer_chip(adapter) || !be_physfn(adapter)) {