mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-26 09:30:53 +07:00
qlcnic: handshake with card after fw load
Instead of delaying rcv handshake till interface comes up, do it just after fw load. Signed-off-by: Amit Kumar Salecha <amit.salecha@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
9665982885
commit
900c6cfffa
@ -1105,7 +1105,6 @@ int qlcnic_wol_supported(struct qlcnic_adapter *adapter);
|
||||
int qlcnic_config_led(struct qlcnic_adapter *adapter, u32 state, u32 rate);
|
||||
|
||||
/* Functions from qlcnic_init.c */
|
||||
int qlcnic_phantom_init(struct qlcnic_adapter *adapter);
|
||||
int qlcnic_load_firmware(struct qlcnic_adapter *adapter);
|
||||
int qlcnic_need_fw_reset(struct qlcnic_adapter *adapter);
|
||||
void qlcnic_request_firmware(struct qlcnic_adapter *adapter);
|
||||
|
@ -1138,7 +1138,7 @@ qlcnic_release_firmware(struct qlcnic_adapter *adapter)
|
||||
adapter->fw = NULL;
|
||||
}
|
||||
|
||||
int qlcnic_phantom_init(struct qlcnic_adapter *adapter)
|
||||
static int qlcnic_cmd_peg_ready(struct qlcnic_adapter *adapter)
|
||||
{
|
||||
u32 val;
|
||||
int retries = 60;
|
||||
@ -1163,7 +1163,8 @@ int qlcnic_phantom_init(struct qlcnic_adapter *adapter)
|
||||
QLCWR32(adapter, CRB_CMDPEG_STATE, PHAN_INITIALIZE_FAILED);
|
||||
|
||||
out_err:
|
||||
dev_err(&adapter->pdev->dev, "firmware init failed\n");
|
||||
dev_err(&adapter->pdev->dev, "Command Peg initialization not "
|
||||
"complete, state: 0x%x.\n", val);
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
@ -1196,6 +1197,10 @@ int qlcnic_init_firmware(struct qlcnic_adapter *adapter)
|
||||
{
|
||||
int err;
|
||||
|
||||
err = qlcnic_cmd_peg_ready(adapter);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
err = qlcnic_receive_peg_ready(adapter);
|
||||
if (err)
|
||||
return err;
|
||||
|
@ -758,6 +758,7 @@ qlcnic_start_firmware(struct qlcnic_adapter *adapter)
|
||||
|
||||
if (first_boot != 0x55555555) {
|
||||
QLCWR32(adapter, CRB_CMDPEG_STATE, 0);
|
||||
QLCWR32(adapter, CRB_RCVPEG_STATE, 0);
|
||||
qlcnic_pinit_from_rom(adapter);
|
||||
msleep(1);
|
||||
}
|
||||
@ -780,7 +781,7 @@ qlcnic_start_firmware(struct qlcnic_adapter *adapter)
|
||||
|
||||
wait_init:
|
||||
/* Handshake with the card before we register the devices. */
|
||||
err = qlcnic_phantom_init(adapter);
|
||||
err = qlcnic_init_firmware(adapter);
|
||||
if (err)
|
||||
goto err_out;
|
||||
|
||||
@ -962,9 +963,6 @@ qlcnic_attach(struct qlcnic_adapter *adapter)
|
||||
if (adapter->is_up == QLCNIC_ADAPTER_UP_MAGIC)
|
||||
return 0;
|
||||
|
||||
err = qlcnic_init_firmware(adapter);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
err = qlcnic_napi_add(adapter, netdev);
|
||||
if (err)
|
||||
|
Loading…
Reference in New Issue
Block a user