qlcnic: Reset firmware API lock at driver load time
Some firmware versions fails to reset the lock during initialization. Force reset firmware API lock during driver probe to ensure lock availability. Signed-off-by: Sony Chacko <sony.chacko@qlogic.com> Signed-off-by: Shahed Shaikh <shahed.shaikh@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
ed2da03c69
Коммит
2c97e9e263
|
@ -2374,6 +2374,14 @@ void qlcnic_set_drv_version(struct qlcnic_adapter *adapter)
|
|||
qlcnic_fw_cmd_set_drv_version(adapter, fw_cmd);
|
||||
}
|
||||
|
||||
/* Reset firmware API lock */
|
||||
static void qlcnic_reset_api_lock(struct qlcnic_adapter *adapter)
|
||||
{
|
||||
qlcnic_api_lock(adapter);
|
||||
qlcnic_api_unlock(adapter);
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
qlcnic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||
{
|
||||
|
@ -2476,6 +2484,7 @@ qlcnic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|||
if (qlcnic_82xx_check(adapter)) {
|
||||
qlcnic_check_vf(adapter, ent);
|
||||
adapter->portnum = adapter->ahw->pci_func;
|
||||
qlcnic_reset_api_lock(adapter);
|
||||
err = qlcnic_start_firmware(adapter);
|
||||
if (err) {
|
||||
dev_err(&pdev->dev, "Loading fw failed.Please Reboot\n"
|
||||
|
|
Загрузка…
Ссылка в новой задаче